Construct a reduced BED for
(mk-op-x-x op arg) → bed
Function:
(defun mk-op-x-x (op arg) (declare (xargs :guard (bed-op-p op))) (let ((__function__ 'mk-op-x-x)) (declare (ignorable __function__)) (b* ((op (bed-op-fix$ op)) ((when (eql op (bed-op-true))) t) ((when (eql op (bed-op-ior))) arg) ((when (eql op (bed-op-orc2))) t) ((when (eql op (bed-op-arg1))) arg) ((when (eql op (bed-op-orc1))) t) ((when (eql op (bed-op-arg2))) arg) ((when (eql op (bed-op-eqv))) t) ((when (eql op (bed-op-and))) arg) ((when (eql op (bed-op-nand))) (mk-not arg)) ((when (eql op (bed-op-xor))) nil) ((when (eql op (bed-op-not2))) (mk-not arg)) ((when (eql op (bed-op-andc2))) nil) ((when (eql op (bed-op-not1))) (mk-not arg)) ((when (eql op (bed-op-andc1))) nil) ((when (eql op (bed-op-nor))) (mk-not arg)) ((when (eql op (bed-op-false))) nil)) (mk-op-raw op arg arg))))
Theorem:
(defthm bed-eval-of-mk-op-x-x (equal (bed-eval (mk-op-x-x op arg) env) (bed-eval (mk-op-raw op arg arg) env)))