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