Recognizer for valid Boolean Function Representation (bfr) objects.
(bfr-p x &optional (bfrstate 'bfrstate)) → *
Function:
(defun bfr-p-fn (x bfrstate) (declare (xargs :guard (bfrstate-p bfrstate))) (let ((__function__ 'bfr-p)) (declare (ignorable __function__)) (bfrstate-case :aig (aig-p x (bfrstate->bound bfrstate)) :bdd (ubddp x (bfrstate->bound bfrstate)) :aignet (or (booleanp x) (and (satlink::litp x) (not (eql x 0)) (not (eql x 1)) (<= (satlink::lit->var x) (bfrstate->bound bfrstate)))))))
Theorem:
(defthm bfr-p-of-constants (and (bfr-p t) (bfr-p nil)))
Theorem:
(defthm bfr-p-when-bfrstate>= (implies (and (bfrstate>= new old) (bfr-p x old)) (bfr-p x new)))
Theorem:
(defthm bfr-p-in-terms-of-aig-p (equal (bfr-p x (bfrstate (bfrmode :aig) bound)) (aig-p x bound)))
Theorem:
(defthm bfr-p-in-terms-of-ubddp (equal (bfr-p x (bfrstate (bfrmode :bdd) bound)) (ubddp x bound)))
Theorem:
(defthm bfr-p-fn-of-bfrstate-fix-bfrstate (equal (bfr-p-fn x (bfrstate-fix bfrstate)) (bfr-p-fn x bfrstate)))
Theorem:
(defthm bfr-p-fn-bfrstate-equiv-congruence-on-bfrstate (implies (bfrstate-equiv bfrstate bfrstate-equiv) (equal (bfr-p-fn x bfrstate) (bfr-p-fn x bfrstate-equiv))) :rule-classes :congruence)