Logical function for bumping var activity (unmodeled side-effect)
(ipasir-bump-activity-vars$a solver vars num-bumps) → new-solver
Function:
(defun ipasir-bump-activity-vars$a (solver vars num-bumps) (declare (xargs :guard (and (ipasir$a-p solver) (nat-listp vars) (natp num-bumps)))) (declare (xargs :guard (not (equal (ipasir-get-status$a solver) :undef)))) (let ((__function__ 'ipasir-bump-activity-vars$a)) (declare (ignorable __function__)) (b* (((ipasir$a solver))) (change-ipasir$a solver :history (cons (list :bump-activity-vars vars (lnfix num-bumps)) solver.history)))))
Theorem:
(defthm ipasir$a-p-of-ipasir-bump-activity-vars$a (b* ((new-solver (ipasir-bump-activity-vars$a solver vars num-bumps))) (ipasir$a-p new-solver)) :rule-classes :rewrite)
Theorem:
(defthm ipasir-bump-activity-vars$a-of-ipasir$a-fix-solver (equal (ipasir-bump-activity-vars$a (ipasir$a-fix solver) vars num-bumps) (ipasir-bump-activity-vars$a solver vars num-bumps)))
Theorem:
(defthm ipasir-bump-activity-vars$a-ipasir$a-equiv-congruence-on-solver (implies (ipasir$a-equiv solver solver-equiv) (equal (ipasir-bump-activity-vars$a solver vars num-bumps) (ipasir-bump-activity-vars$a solver-equiv vars num-bumps))) :rule-classes :congruence)
Theorem:
(defthm ipasir-bump-activity-vars$a-of-nfix-num-bumps (equal (ipasir-bump-activity-vars$a solver vars (nfix num-bumps)) (ipasir-bump-activity-vars$a solver vars num-bumps)))
Theorem:
(defthm ipasir-bump-activity-vars$a-nat-equiv-congruence-on-num-bumps (implies (nat-equiv num-bumps num-bumps-equiv) (equal (ipasir-bump-activity-vars$a solver vars num-bumps) (ipasir-bump-activity-vars$a solver vars num-bumps-equiv))) :rule-classes :congruence)