Equality of boolean values.
Function:
(defun bool-eq (left-operand right-operand) (declare (xargs :guard (and (boolp left-operand) (boolp right-operand)))) (let ((__function__ 'bool-eq)) (declare (ignorable __function__)) (b* ((x (bool->get left-operand)) (y (bool->get right-operand))) (bool (equal x y)))))
Theorem:
(defthm boolp-of-bool-eq (b* ((result (bool-eq left-operand right-operand))) (boolp result)) :rule-classes :rewrite)
Theorem:
(defthm bool-eq-of-bool-fix-left-operand (equal (bool-eq (bool-fix left-operand) right-operand) (bool-eq left-operand right-operand)))
Theorem:
(defthm bool-eq-bool-equiv-congruence-on-left-operand (implies (bool-equiv left-operand left-operand-equiv) (equal (bool-eq left-operand right-operand) (bool-eq left-operand-equiv right-operand))) :rule-classes :congruence)
Theorem:
(defthm bool-eq-of-bool-fix-right-operand (equal (bool-eq left-operand (bool-fix right-operand)) (bool-eq left-operand right-operand)))
Theorem:
(defthm bool-eq-bool-equiv-congruence-on-right-operand (implies (bool-equiv right-operand right-operand-equiv) (equal (bool-eq left-operand right-operand) (bool-eq left-operand right-operand-equiv))) :rule-classes :congruence)