FTY version of check-if-call.
(fty-check-if-call term) → (mv yes/no test then else)
Function:
(defun fty-check-if-call (term) (declare (xargs :guard (pseudo-termp term))) (let ((__function__ 'fty-check-if-call)) (declare (ignorable __function__)) (check-if-call (pseudo-term-fix term))))
Theorem:
(defthm booleanp-of-fty-check-if-call.yes/no (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-termp-of-fty-check-if-call.test (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (pseudo-termp test)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-termp-of-fty-check-if-call.then (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (pseudo-termp then)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-termp-of-fty-check-if-call.else (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (pseudo-termp else)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-term-count-of-check-if-call.test (implies (pseudo-termp term) (b* (((mv yes/no test & &) (check-if-call term))) (implies yes/no (< (pseudo-term-count test) (pseudo-term-count term))))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-fty-check-if-call.test (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (implies yes/no (< (pseudo-term-count test) (pseudo-term-count term)))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-check-if-call.then (implies (pseudo-termp term) (b* (((mv yes/no & then &) (check-if-call term))) (implies yes/no (< (pseudo-term-count then) (pseudo-term-count term))))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-fty-check-if-call.then (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (implies yes/no (< (pseudo-term-count then) (pseudo-term-count term)))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-check-if-call.else (implies (pseudo-termp term) (b* (((mv yes/no & & else) (check-if-call term))) (implies yes/no (< (pseudo-term-count else) (pseudo-term-count term))))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-fty-check-if-call.else (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (implies yes/no (< (pseudo-term-count else) (pseudo-term-count term)))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-check-if-call (implies (pseudo-termp term) (b* (((mv yes/no test then else) (check-if-call term))) (implies yes/no (< (+ (pseudo-term-count test) (pseudo-term-count then) (pseudo-term-count else)) (pseudo-term-count term))))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-fty-check-if-call (b* (((mv ?yes/no ?test ?then ?else) (fty-check-if-call term))) (implies yes/no (< (+ (pseudo-term-count test) (pseudo-term-count then) (pseudo-term-count else)) (pseudo-term-count term)))) :rule-classes :linear)