Accessor for the lambda body of a lambda call pseudo-term.
(pseudo-term-lambda->body x) → body
Function:
(defun pseudo-term-lambda->body (x) (declare (xargs :guard (pseudo-termp x))) (declare (xargs :guard (eq (pseudo-term-kind x) :lambda))) (let ((__function__ 'pseudo-term-lambda->body)) (declare (ignorable __function__)) (mbe :logic (and (eq (pseudo-term-kind x) :lambda) (pseudo-term-fix (caddr (car x)))) :exec (caddr (car x)))))
Theorem:
(defthm pseudo-termp-of-pseudo-term-lambda->body (b* ((body (pseudo-term-lambda->body x))) (pseudo-termp body)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-lambda->body-of-pseudo-term-lambda->fn (equal (pseudo-lambda->body (pseudo-term-lambda->fn x)) (pseudo-term-lambda->body x)))
Theorem:
(defthm acl2-count-of-pseudo-term-lambda->body (implies (equal (pseudo-term-kind x) :lambda) (< (acl2-count (pseudo-term-lambda->body x)) (acl2-count (pseudo-term-fix x)))) :rule-classes ((:linear :trigger-terms ((acl2-count (pseudo-term-lambda->body x))))))
Theorem:
(defthm pseudo-term-lambda->body-of-pseudo-term-fix-x (equal (pseudo-term-lambda->body (pseudo-term-fix x)) (pseudo-term-lambda->body x)))
Theorem:
(defthm pseudo-term-lambda->body-pseudo-term-equiv-congruence-on-x (implies (pseudo-term-equiv x x-equiv) (equal (pseudo-term-lambda->body x) (pseudo-term-lambda->body x-equiv))) :rule-classes :congruence)