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