(f-aig-ite c a b) constructs a (less conservative) FAIG representing
(f-aig-ite c a b) → *
This is a less-conservative version of f-aig-ite* that emits
Function:
(defun f-aig-ite (c a b) (declare (xargs :guard t)) (let ((__function__ 'f-aig-ite)) (declare (ignorable __function__)) (b* ((c (f-aig-unfloat c)) (a (f-aig-unfloat a)) (b (f-aig-unfloat b))) (t-aig-ite c a b))))
Theorem:
(defthm faig-eval-of-f-aig-ite (equal (faig-eval (f-aig-ite c a b) env) (f-aig-ite (faig-eval c env) (faig-eval a env) (faig-eval b env))))
Theorem:
(defthm faig-fix-equiv-implies-equal-f-aig-ite-1 (implies (faig-fix-equiv c c-equiv) (equal (f-aig-ite c a b) (f-aig-ite c-equiv a b))) :rule-classes (:congruence))
Theorem:
(defthm faig-fix-equiv-implies-equal-f-aig-ite-2 (implies (faig-fix-equiv a a-equiv) (equal (f-aig-ite c a b) (f-aig-ite c a-equiv b))) :rule-classes (:congruence))
Theorem:
(defthm faig-fix-equiv-implies-equal-f-aig-ite-3 (implies (faig-fix-equiv b b-equiv) (equal (f-aig-ite c a b) (f-aig-ite c a b-equiv))) :rule-classes (:congruence))
Theorem:
(defthm faig-equiv-implies-faig-equiv-f-aig-ite-3 (implies (faig-equiv b b-equiv) (faig-equiv (f-aig-ite c a b) (f-aig-ite c a b-equiv))) :rule-classes (:congruence))
Theorem:
(defthm faig-equiv-implies-faig-equiv-f-aig-ite-2 (implies (faig-equiv a a-equiv) (faig-equiv (f-aig-ite c a b) (f-aig-ite c a-equiv b))) :rule-classes (:congruence))
Theorem:
(defthm faig-equiv-implies-faig-equiv-f-aig-ite-1 (implies (faig-equiv c c-equiv) (faig-equiv (f-aig-ite c a b) (f-aig-ite c-equiv a b))) :rule-classes (:congruence))