Like logcons for unsigned bvecs.
(bfr-ucons b x) → new-x
Function:
(defun bfr-ucons (b x) (declare (xargs :guard (true-listp x))) (let ((__function__ 'bfr-ucons)) (declare (ignorable __function__)) (if (and (atom x) (not b)) nil (cons b (llist-fix x)))))
Theorem:
(defthm true-listp-of-bfr-ucons (b* ((new-x (bfr-ucons b x))) (true-listp new-x)) :rule-classes :type-prescription)
Theorem:
(defthm bfr-list->u-of-bfr-ucons (equal (bfr-list->u (bfr-ucons b x) env) (logcons (bool->bit (bfr-eval b env)) (bfr-list->u x env))))
Theorem:
(defthm pbfr-list-depends-on-of-bfr-ucons (implies (and (not (pbfr-depends-on k p b)) (not (pbfr-list-depends-on k p x))) (not (pbfr-list-depends-on k p (bfr-ucons b x)))))
Theorem:
(defthm bfr-ucons-of-list-fix (equal (bfr-ucons b (list-fix x)) (bfr-ucons b x)))