(aignet-lit->bfr x &optional (bfrstate 'bfrstate)) → bfr
Function:
(defun aignet-lit->bfr-fn (x bfrstate) (declare (xargs :guard (and (satlink::litp x) (bfrstate-p bfrstate)))) (declare (xargs :guard (and (bfrstate-mode-is :aignet) (<= (satlink::lit->var x) (bfrstate->bound bfrstate))))) (let ((__function__ 'aignet-lit->bfr)) (declare (ignorable __function__)) (b* ((x (bounded-lit-fix x (bfrstate->bound bfrstate)))) (case x (0 nil) (1 t) (t x)))))
Theorem:
(defthm return-type-of-aignet-lit->bfr (b* ((bfr (aignet-lit->bfr-fn x bfrstate))) (implies (bfrstate-mode-is :aignet) (bfr-p bfr))) :rule-classes :rewrite)
Theorem:
(defthm aignet-lit->bfr-of-consts (and (equal (aignet-lit->bfr 0) nil) (equal (aignet-lit->bfr 1) t)))
Theorem:
(defthm aignet-lit->bfr-fn-of-lit-fix-x (equal (aignet-lit->bfr-fn (satlink::lit-fix x) bfrstate) (aignet-lit->bfr-fn x bfrstate)))
Theorem:
(defthm aignet-lit->bfr-fn-lit-equiv-congruence-on-x (implies (satlink::lit-equiv x x-equiv) (equal (aignet-lit->bfr-fn x bfrstate) (aignet-lit->bfr-fn x-equiv bfrstate))) :rule-classes :congruence)
Theorem:
(defthm aignet-lit->bfr-fn-of-bfrstate-fix-bfrstate (equal (aignet-lit->bfr-fn x (bfrstate-fix bfrstate)) (aignet-lit->bfr-fn x bfrstate)))
Theorem:
(defthm aignet-lit->bfr-fn-bfrstate-equiv-congruence-on-bfrstate (implies (bfrstate-equiv bfrstate bfrstate-equiv) (equal (aignet-lit->bfr-fn x bfrstate) (aignet-lit->bfr-fn x bfrstate-equiv))) :rule-classes :congruence)