Abstract a
(abs-?-finalizer tree) → final
Function:
(defun abs-?-finalizer (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-?-finalizer)) (declare (ignorable __function__)) (if (empty-optional-tree-p tree) nil (b* (((okf treess) (abnf::check-tree-nonleaf tree nil)) ((when (endp treess)) nil) ((okf trees) (abnf::check-tree-list-list-1 treess)) ((okf tree) (abnf::check-tree-list-1 trees))) (abs-finalizer tree)))))
Theorem:
(defthm finalizer-option-resultp-of-abs-?-finalizer (b* ((final (abs-?-finalizer tree))) (finalizer-option-resultp final)) :rule-classes :rewrite)
Theorem:
(defthm abs-?-finalizer-of-tree-fix-tree (equal (abs-?-finalizer (abnf::tree-fix tree)) (abs-?-finalizer tree)))
Theorem:
(defthm abs-?-finalizer-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-?-finalizer tree) (abs-?-finalizer tree-equiv))) :rule-classes :congruence)