Abstract a
(abs-variable-or-free-constant tree) → ret-id
Function:
(defun abs-variable-or-free-constant (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-variable-or-free-constant)) (declare (ignorable __function__)) (b* (((okf tree) (abnf::check-tree-nonleaf-1-1 tree "variable-or-free-constant")) ((okf rulename?) (abnf::check-tree-nonleaf? tree))) (cond ((equal rulename? "identifier") (b* (((okf id) (abs-identifier tree))) id)) (t (reserrf (list :found-subtree (abnf::tree-info-for-error tree))))))))
Theorem:
(defthm identifier-resultp-of-abs-variable-or-free-constant (b* ((ret-id (abs-variable-or-free-constant tree))) (identifier-resultp ret-id)) :rule-classes :rewrite)
Theorem:
(defthm abs-variable-or-free-constant-of-tree-fix-tree (equal (abs-variable-or-free-constant (abnf::tree-fix tree)) (abs-variable-or-free-constant tree)))
Theorem:
(defthm abs-variable-or-free-constant-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-variable-or-free-constant tree) (abs-variable-or-free-constant tree-equiv))) :rule-classes :congruence)