(aabf-ite-bss-fn c v1 v0 man) → (mv vv new-man)
Function:
(defun aabf-ite-bss-fn (c v1 v0 man) (declare (xargs :guard (and (true-listp v1) (true-listp v0)))) (declare (xargs :guard (and (aabf-p c man) (aabflist-p v1 man) (aabflist-p v0 man)))) (let ((__function__ 'aabf-ite-bss-fn)) (declare (ignorable __function__)) (cond ((aabf-syntactically-equal c (aabf-false)) (mv (llist-fix v0) man)) ((aabf-syntactically-equal c (aabf-true)) (mv (llist-fix v1) man)) (t (aabf-ite-bss-fn-aux c v1 v0 man)))))
Theorem:
(defthm trivial-theorem-about-aabf-ite-bss-fn (b* nil (b* ((?ignore (aabf-ite-bss-fn c v1 v0 man))) t)) :rule-classes nil)
Theorem:
(defthm true-listp-of-aabf-ite-bss-fn.vv (b* (((mv ?vv ?new-man) (aabf-ite-bss-fn c v1 v0 man))) (true-listp vv)) :rule-classes :type-prescription)
Theorem:
(defthm aabf-extension-p-of-aabf-ite-bss-fn (b* (((mv ?vv ?new-man) (aabf-ite-bss-fn c v1 v0 man))) (aabf-extension-p new-man man)))
Theorem:
(defthm aabf-p-of-aabf-ite-bss-fn (b* (((mv vv new-man) (aabf-ite-bss-fn c v1 v0 man))) (implies (and (aabf-p c man) (aabflist-p v1 man) (aabflist-p v0 man)) (and (aabflist-p vv new-man)))))
Theorem:
(defthm aabf-eval-of-aabf-ite-bss-fn (b* (((mv vv new-man) (aabf-ite-bss-fn c v1 v0 man))) (implies (and (aabf-p c man) (aabflist-p v1 man) (aabflist-p v0 man)) (and (equal (bools->int (aabflist-eval vv env new-man)) (if (aabf-eval c env man) (bools->int (aabflist-eval v1 env man)) (bools->int (aabflist-eval v0 env man))))))))
Theorem:
(defthm aabf-pred-of-aabf-ite-bss-fn (b* (((mv vv new-man) (aabf-ite-bss-fn c v1 v0 man))) (implies (and (aabf-p c man) (aabflist-p v1 man) (aabflist-p v0 man) (aabf-pred c man) (aabflist-pred v1 man) (aabflist-pred v0 man)) (and (aabflist-pred vv new-man)))))