Abstract a
(abs-locator tree) → loc
Function:
(defun abs-locator (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-locator)) (declare (ignorable __function__)) (b* (((okf (abnf::tree-list-tuple3 sub)) (abnf::check-tree-nonleaf-3 tree "locator")) ((okf tree) (abnf::check-tree-list-1 sub.1st)) ((okf program) (abs-program-id tree)) ((okf tree) (abnf::check-tree-list-1 sub.2nd)) ((okf &) (abnf::check-tree-schars tree "/")) ((okf tree) (abnf::check-tree-list-1 sub.3rd)) ((okf name) (abs-identifier tree))) (make-locator :program program :name name))))
Theorem:
(defthm locator-resultp-of-abs-locator (b* ((loc (abs-locator tree))) (locator-resultp loc)) :rule-classes :rewrite)
Theorem:
(defthm abs-locator-of-tree-fix-tree (equal (abs-locator (abnf::tree-fix tree)) (abs-locator tree)))
Theorem:
(defthm abs-locator-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-locator tree) (abs-locator tree-equiv))) :rule-classes :congruence)