FTY version of check-lambda-call.
(fty-check-lambda-call term) → (mv yes/no formals body args)
Function:
(defun fty-check-lambda-call (term) (declare (xargs :guard (pseudo-termp term))) (let ((__function__ 'fty-check-lambda-call)) (declare (ignorable __function__)) (check-lambda-call (pseudo-term-fix term))))
Theorem:
(defthm booleanp-of-fty-check-lambda-call.yes/no (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm symbol-listp-of-fty-check-lambda-call.formals (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (symbol-listp formals)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-termp-of-fty-check-lambda-call.body (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (pseudo-termp body)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-term-listp-of-fty-check-lambda-call.args (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (pseudo-term-listp args)) :rule-classes :rewrite)
Theorem:
(defthm len-of-fty-check-lambda-calls.formals-is-args (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (equal (len formals) (len args))))
Theorem:
(defthm len-of-fty-check-lambda-calls.args-is-formals (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (equal (len args) (len formals))))
Theorem:
(defthm true-listp-of-fty-check-lambda-call.formals (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (true-listp formals)) :rule-classes :type-prescription)
Theorem:
(defthm true-listp-of-fty-check-lambda-call.args (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (true-listp args)) :rule-classes :type-prescription)
Theorem:
(defthm pseudo-term-count-of-check-lambda-call.body (implies (pseudo-termp term) (b* (((mv yes/no & body &) (check-lambda-call term))) (implies yes/no (< (pseudo-term-count body) (pseudo-term-count term))))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-fty-check-lambda-call.body (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (implies yes/no (< (pseudo-term-count body) (pseudo-term-count term)))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-list-count-of-check-lambda-call.args (implies (pseudo-termp term) (b* (((mv yes/no & & args) (check-lambda-call term))) (implies yes/no (< (pseudo-term-list-count args) (pseudo-term-count term))))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-list-count-of-fty-check-lambda-call.args (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (implies yes/no (< (pseudo-term-list-count args) (pseudo-term-count term)))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-check-lambda-call (implies (pseudo-termp term) (b* (((mv yes/no & body args) (check-lambda-call term))) (implies yes/no (< (+ (pseudo-term-count body) (pseudo-term-list-count args)) (pseudo-term-count term))))) :rule-classes :linear)
Theorem:
(defthm pseudo-term-count-of-fty-check-lambda-call (b* (((mv ?yes/no ?formals ?body acl2::?args) (fty-check-lambda-call term))) (implies yes/no (< (+ (pseudo-term-count body) (pseudo-term-list-count args)) (pseudo-term-count term)))) :rule-classes :linear)