Logic form of ipasir-reinit. See ipasir for usage.
(ipasir-reinit$a solver) → new-solver
Function:
(defun ipasir-reinit$a (solver) (declare (xargs :guard (ipasir$a-p solver))) (declare (xargs :guard (and (eq (ipasir-get-status$a solver) :undef) (ipasir-some-history$a solver)))) (let ((__function__ 'ipasir-reinit$a)) (declare (ignorable __function__)) (b* (((ipasir$a solver))) (make-ipasir$a :status :input :callback-count 0 :history (cons :reinit solver.history)))))
Theorem:
(defthm ipasir$a-p-of-ipasir-reinit$a (b* ((new-solver (ipasir-reinit$a solver))) (ipasir$a-p new-solver)) :rule-classes :rewrite)
Theorem:
(defthm ipasir-reinit$a-status (b* ((?new-solver (ipasir-reinit$a solver))) (equal (ipasir$a->status new-solver) :input)))
Theorem:
(defthm ipasir-reinit$a-formula (b* ((?new-solver (ipasir-reinit$a solver))) (equal (ipasir$a->formula new-solver) nil)))
Theorem:
(defthm ipasir-reinit$a-assumption (b* ((?new-solver (ipasir-reinit$a solver))) (equal (ipasir$a->assumption new-solver) nil)))
Theorem:
(defthm ipasir-reinit$a-new-clause (b* ((?new-solver (ipasir-reinit$a solver))) (equal (ipasir$a->new-clause new-solver) nil)))
Theorem:
(defthm ipasir-reinit$a-of-ipasir$a-fix-solver (equal (ipasir-reinit$a (ipasir$a-fix solver)) (ipasir-reinit$a solver)))
Theorem:
(defthm ipasir-reinit$a-ipasir$a-equiv-congruence-on-solver (implies (ipasir$a-equiv solver solver-equiv) (equal (ipasir-reinit$a solver) (ipasir-reinit$a solver-equiv))) :rule-classes :congruence)