Accessor for the lambda formals of a lambda call pseudo-term.
(pseudo-term-lambda->formals x) → formals
Function:
(defun pseudo-term-lambda->formals (x) (declare (xargs :guard (pseudo-termp x))) (declare (xargs :guard (eq (pseudo-term-kind x) :lambda))) (let ((__function__ 'pseudo-term-lambda->formals)) (declare (ignorable __function__)) (mbe :logic (and (eq (pseudo-term-kind x) :lambda) (replace-non-symbols-with-nil (cadr (car x)))) :exec (cadr (car x)))))
Theorem:
(defthm symbol-listp-of-pseudo-term-lambda->formals (b* ((formals (pseudo-term-lambda->formals x))) (symbol-listp formals)) :rule-classes (:rewrite :type-prescription))
Theorem:
(defthm len-of-pseudo-term-lambda->formals (implies (equal (pseudo-term-kind x) :lambda) (equal (len (pseudo-term-lambda->formals x)) (len (pseudo-term-call->args x)))))
Theorem:
(defthm pseudo-lambda->formals-of-pseudo-term-lambda->fn (equal (pseudo-lambda->formals (pseudo-term-lambda->fn x)) (pseudo-term-lambda->formals x)))
Theorem:
(defthm pseudo-term-lambda->formals-of-pseudo-term-fix-x (equal (pseudo-term-lambda->formals (pseudo-term-fix x)) (pseudo-term-lambda->formals x)))
Theorem:
(defthm pseudo-term-lambda->formals-pseudo-term-equiv-congruence-on-x (implies (pseudo-term-equiv x x-equiv) (equal (pseudo-term-lambda->formals x) (pseudo-term-lambda->formals x-equiv))) :rule-classes :congruence)