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