Logic form of ipasir-failed. See ipasir for usage.
(ipasir-failed$a solver lit) → *
Function:
(defun ipasir-failed$a (solver lit) (declare (xargs :guard (and (ipasir$a-p solver) (litp lit)))) (declare (xargs :guard (and (eq (ipasir-get-status$a solver) :unsat) (member lit (ipasir-solved-assumption$a solver))))) (let ((__function__ 'ipasir-failed$a)) (declare (ignorable __function__)) (b* (((ipasir$a solver)) (lit (lit-fix lit))) (if (member lit solver.solution) 1 0))))
Theorem:
(defthm ipasir-failed$a-of-ipasir$a-fix-solver (equal (ipasir-failed$a (ipasir$a-fix solver) lit) (ipasir-failed$a solver lit)))
Theorem:
(defthm ipasir-failed$a-ipasir$a-equiv-congruence-on-solver (implies (ipasir$a-equiv solver solver-equiv) (equal (ipasir-failed$a solver lit) (ipasir-failed$a solver-equiv lit))) :rule-classes :congruence)
Theorem:
(defthm ipasir-failed$a-of-lit-fix-lit (equal (ipasir-failed$a solver (lit-fix lit)) (ipasir-failed$a solver lit)))
Theorem:
(defthm ipasir-failed$a-lit-equiv-congruence-on-lit (implies (lit-equiv lit lit-equiv) (equal (ipasir-failed$a solver lit) (ipasir-failed$a solver lit-equiv))) :rule-classes :congruence)