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