(f-aig-ite* c a b) constructs a (more conservative) FAIG representing
(f-aig-ite* c a b) → *
This is a more-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))