(empty-optional-tree-p tree) → y/n
Function:
(defun empty-optional-tree-p (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'empty-optional-tree-p)) (declare (ignorable __function__)) (and (abnf::tree-case tree :nonleaf) (equal (abnf::tree-nonleaf->rulename? tree) nil) (equal (abnf::tree-nonleaf->branches tree) nil))))
Theorem:
(defthm booleanp-of-empty-optional-tree-p (b* ((y/n (empty-optional-tree-p tree))) (booleanp y/n)) :rule-classes :rewrite)
Theorem:
(defthm empty-optional-tree-p-of-tree-fix-tree (equal (empty-optional-tree-p (abnf::tree-fix tree)) (empty-optional-tree-p tree)))
Theorem:
(defthm empty-optional-tree-p-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (empty-optional-tree-p tree) (empty-optional-tree-p tree-equiv))) :rule-classes :congruence)