Specification of the circuit.
Function:
(defun boolean-neq-spec (x y z prime) (declare (xargs :guard (and (primep prime) (pfield::fep x prime) (pfield::fep y prime) (pfield::fep z prime)))) (declare (ignore prime)) (declare (xargs :guard (and (bitp x) (bitp y)))) (let ((__function__ 'boolean-neq-spec)) (declare (ignorable __function__)) (equal z (if (= x y) 0 1))))
Theorem:
(defthm booleanp-of-boolean-neq-spec (b* ((yes/no (boolean-neq-spec x y z prime))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm bitp-z-when-boolean-neq-spec (implies (and (boolean-neq-spec x y z prime) (bitp x) (bitp y)) (bitp z)))