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