Check if a term is a call of mbt$.
(check-mbt$-call term) → (mv yes/no arg)
If it is, return its argument.
If it is not, all results are
In translated terms,
Function:
(defun check-mbt$-call (term) (declare (xargs :guard (pseudo-termp term))) (let ((__function__ 'check-mbt$-call)) (declare (ignorable __function__)) (case-match term (('return-last ''mbe1-raw ''t ('if x ''t ''nil)) (mv t x)) (& (mv nil nil)))))
Theorem:
(defthm booleanp-of-check-mbt$-call.yes/no (b* (((mv ?yes/no ?arg) (check-mbt$-call term))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-termp-of-check-mbt$-call.arg (implies (and (pseudo-termp term)) (b* (((mv ?yes/no ?arg) (check-mbt$-call term))) (pseudo-termp arg))) :rule-classes :rewrite)
Theorem:
(defthm acl2-count-of-check-mbt$-call.arg (b* (((mv ?yes/no ?arg) (check-mbt$-call term))) (implies yes/no (< (acl2-count arg) (acl2-count term)))) :rule-classes :linear)