(bfr-fix x &optional (bfrstate 'bfrstate)) → new-x
Function:
(defun bfr-fix-fn (x bfrstate) (declare (xargs :guard (and (bfrstate-p bfrstate) (bfr-p x)))) (let ((__function__ 'bfr-fix)) (declare (ignorable __function__)) (mbe :logic (bfrstate-case :aig (aig-fix x (bfrstate->bound bfrstate)) :bdd (ubdd-fix x (bfrstate->bound bfrstate)) :aignet (if (booleanp x) x (aignet-lit->bfr x))) :exec x)))
Theorem:
(defthm bfr-p-of-bfr-fix (b* ((new-x (bfr-fix-fn x bfrstate))) (bfr-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm bfr-fix-when-bfr-p (b* ((?new-x (bfr-fix-fn x bfrstate))) (implies (bfr-p x) (equal new-x x))))
Theorem:
(defthm bfr-fix-fn-of-bfrstate-fix-bfrstate (equal (bfr-fix-fn x (bfrstate-fix bfrstate)) (bfr-fix-fn x bfrstate)))
Theorem:
(defthm bfr-fix-fn-bfrstate-equiv-congruence-on-bfrstate (implies (bfrstate-equiv bfrstate bfrstate-equiv) (equal (bfr-fix-fn x bfrstate) (bfr-fix-fn x bfrstate-equiv))) :rule-classes :congruence)