Abstract a
(abs-function-parameter tree) → fpar
Function:
(defun abs-function-parameter (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-function-parameter)) (declare (ignorable __function__)) (b* (((okf (abnf::tree-list-tuple4 sub)) (abnf::check-tree-nonleaf-4 tree "function-parameter")) ((okf sort) (b* (((okf tree) (abnf::check-tree-list-1 sub.1st)) ((okf treess) (abnf::check-tree-nonleaf tree nil)) ((when (endp treess)) (var/const-sort-private)) ((okf trees) (abnf::check-tree-list-list-1 treess)) ((okf tree) (abnf::check-tree-list-1 trees)) (public? (abnf::check-tree-schars tree "public")) ((when (not (reserrp public?))) (var/const-sort-public)) (constant? (abnf::check-tree-schars tree "constant")) ((when (not (reserrp constant?))) (var/const-sort-constant)) (const? (abnf::check-tree-schars tree "const")) ((when (not (reserrp const?))) (var/const-sort-const))) (reserrf (list :found-subtree (abnf::tree-info-for-error tree))))) ((okf tree) (abnf::check-tree-list-1 sub.2nd)) ((okf name) (abs-identifier tree)) ((okf tree) (abnf::check-tree-list-1 sub.3rd)) ((okf &) (abnf::check-tree-ichars tree ":")) ((okf tree) (abnf::check-tree-list-1 sub.4th)) ((okf type) (abs-type tree))) (make-funparam :name name :sort sort :type type))))
Theorem:
(defthm funparam-resultp-of-abs-function-parameter (b* ((fpar (abs-function-parameter tree))) (funparam-resultp fpar)) :rule-classes :rewrite)
Theorem:
(defthm abs-function-parameter-of-tree-fix-tree (equal (abs-function-parameter (abnf::tree-fix tree)) (abs-function-parameter tree)))
Theorem:
(defthm abs-function-parameter-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-function-parameter tree) (abs-function-parameter tree-equiv))) :rule-classes :congruence)