(aabf-rem-ss a b man) → (mv r new-man)
Function:
(defun aabf-rem-ss (a b man) (declare (xargs :guard (and (true-listp a) (true-listp b)))) (declare (xargs :guard (and (aabflist-p a man) (aabflist-p b man)))) (let ((__function__ 'aabf-rem-ss)) (declare (ignorable __function__)) (b* ((bound (aabf-integer-length-bound-s b man)) ((mv zero man) (aabf-=-ss b nil man)) ((when (aabf-syntactically-true-p zero man)) (mv (llist-fix a) man)) ((mv & babs bneg man) (aabf-sign-abs-not-s b man)) ((mv asign aabs & man) (aabf-sign-abs-not-s a man)) ((mv m man) (aabf-mod-ss-aux aabs babs bneg man))) (aabf-nest (aabf-ite-bss zero a (aabf-logext-ns bound (aabf-ite-bss asign (aabf-unary-minus-s m) m))) man))))
Theorem:
(defthm trivial-theorem-about-aabf-rem-ss (b* nil (b* ((?ignore (aabf-rem-ss a b man))) t)) :rule-classes nil)
Theorem:
(defthm true-listp-of-aabf-rem-ss.r (b* (((mv acl2::?r ?new-man) (aabf-rem-ss a b man))) (true-listp r)) :rule-classes :type-prescription)
Theorem:
(defthm aabf-extension-p-of-aabf-rem-ss (b* (((mv acl2::?r ?new-man) (aabf-rem-ss a b man))) (aabf-extension-p new-man man)))
Theorem:
(defthm aabf-p-of-aabf-rem-ss (b* (((mv r new-man) (aabf-rem-ss a b man))) (implies (and (aabflist-p a man) (aabflist-p b man)) (and (aabflist-p r new-man)))))
Theorem:
(defthm aabf-eval-of-aabf-rem-ss (b* (((mv r new-man) (aabf-rem-ss a b man))) (implies (and (aabflist-p a man) (aabflist-p b man)) (and (equal (bools->int (aabflist-eval r env new-man)) (rem (bools->int (aabflist-eval a env man)) (bools->int (aabflist-eval b env man))))))))
Theorem:
(defthm aabf-pred-of-aabf-rem-ss (b* (((mv r new-man) (aabf-rem-ss a b man))) (implies (and (aabflist-p a man) (aabflist-p b man) (aabflist-pred a man) (aabflist-pred b man)) (and (aabflist-pred r new-man)))))