(bounded-lit-fix x bound) → new-x
Function:
(defun bounded-lit-fix$inline (x bound) (declare (xargs :guard (and (satlink::litp x) (natp bound)))) (declare (xargs :guard (<= (satlink::lit->var x) bound))) (let ((__function__ 'bounded-lit-fix)) (declare (ignorable __function__)) (mbe :logic (if (<= (satlink::lit->var x) (nfix bound)) (satlink::lit-fix x) (satlink::make-lit 0 (satlink::lit->neg x))) :exec x)))
Theorem:
(defthm litp-of-bounded-lit-fix (b* ((new-x (bounded-lit-fix$inline x bound))) (satlink::litp new-x)) :rule-classes :type-prescription)
Theorem:
(defthm bound-of-bounded-lit-fix (b* ((?new-x (bounded-lit-fix$inline x bound))) (<= (satlink::lit->var new-x) (nfix bound))) :rule-classes :linear)
Theorem:
(defthm bounded-lit-fix-when-bounded (b* ((?new-x (bounded-lit-fix$inline x bound))) (implies (<= (satlink::lit->var x) (nfix bound)) (equal new-x (satlink::lit-fix x)))))
Theorem:
(defthm bounded-lit-fix$inline-of-lit-fix-x (equal (bounded-lit-fix$inline (satlink::lit-fix x) bound) (bounded-lit-fix$inline x bound)))
Theorem:
(defthm bounded-lit-fix$inline-lit-equiv-congruence-on-x (implies (satlink::lit-equiv x x-equiv) (equal (bounded-lit-fix$inline x bound) (bounded-lit-fix$inline x-equiv bound))) :rule-classes :congruence)
Theorem:
(defthm bounded-lit-fix$inline-of-nfix-bound (equal (bounded-lit-fix$inline x (nfix bound)) (bounded-lit-fix$inline x bound)))
Theorem:
(defthm bounded-lit-fix$inline-nat-equiv-congruence-on-bound (implies (acl2::nat-equiv bound bound-equiv) (equal (bounded-lit-fix$inline x bound) (bounded-lit-fix$inline x bound-equiv))) :rule-classes :congruence)