Accessor for the name of pseudo-term variables.
(pseudo-term-var->name x) → name
Function:
(defun pseudo-term-var->name (x) (declare (xargs :guard (pseudo-termp x))) (declare (xargs :guard (eq (pseudo-term-kind x) :var))) (let ((__function__ 'pseudo-term-var->name)) (declare (ignorable __function__)) (mbe :logic (pseudo-var-fix (and (eq (pseudo-term-kind x) :var) x)) :exec x)))
Theorem:
(defthm pseudo-var-p-of-pseudo-term-var->name (b* ((name (pseudo-term-var->name x))) (pseudo-var-p name)) :rule-classes :type-prescription)
Theorem:
(defthm base-ev-when-pseudo-term-var (implies (equal (pseudo-term-kind x) :var) (equal (base-ev x a) (cdr (assoc (pseudo-term-var->name x) a)))))
Theorem:
(defthm pseudo-term-var->name-of-pseudo-term-fix-x (equal (pseudo-term-var->name (pseudo-term-fix x)) (pseudo-term-var->name x)))
Theorem:
(defthm pseudo-term-var->name-pseudo-term-equiv-congruence-on-x (implies (pseudo-term-equiv x x-equiv) (equal (pseudo-term-var->name x) (pseudo-term-var->name x-equiv))) :rule-classes :congruence)