(t-aig-and a b) ands together the FAIGs
(t-aig-and a b) → *
Function:
(defun t-aig-and (a b) (declare (xargs :guard t)) (let ((__function__ 't-aig-and)) (declare (ignorable __function__)) (b* (((faig a1 a0) a) ((faig b1 b0) b)) (cons (aig-and a1 b1) (aig-or a0 b0)))))
Theorem:
(defthm faig-eval-of-t-aig-and (equal (faig-eval (t-aig-and a b) env) (t-aig-and (faig-eval a env) (faig-eval b env))))
Theorem:
(defthm faig-fix-equiv-implies-equal-t-aig-and-1 (implies (faig-fix-equiv a a-equiv) (equal (t-aig-and a b) (t-aig-and a-equiv b))) :rule-classes (:congruence))
Theorem:
(defthm faig-fix-equiv-implies-equal-t-aig-and-2 (implies (faig-fix-equiv b b-equiv) (equal (t-aig-and a b) (t-aig-and a b-equiv))) :rule-classes (:congruence))
Theorem:
(defthm faig-equiv-implies-faig-equiv-t-aig-and-2 (implies (faig-equiv b b-equiv) (faig-equiv (t-aig-and a b) (t-aig-and a b-equiv))) :rule-classes (:congruence))
Theorem:
(defthm faig-equiv-implies-faig-equiv-t-aig-and-1 (implies (faig-equiv a a-equiv) (faig-equiv (t-aig-and a b) (t-aig-and a-equiv b))) :rule-classes (:congruence))