Specification of the circuit.
We use an if, obviously.
Function:
(defun field-if-spec (x y z w prime) (declare (xargs :guard (and (primep prime) (pfield::fep x prime) (pfield::fep y prime) (pfield::fep z prime) (pfield::fep w prime)))) (declare (ignore prime)) (declare (xargs :guard (bitp x))) (let ((__function__ 'field-if-spec)) (declare (ignorable __function__)) (equal w (if (= x 1) y z))))
Theorem:
(defthm booleanp-of-field-if-spec (b* ((yes/no (field-if-spec x y z w prime))) (booleanp yes/no)) :rule-classes :rewrite)