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