Abstract a
(abs-relation-constraint tree) → c
Function:
(defun abs-relation-constraint (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-relation-constraint)) (declare (ignorable __function__)) (b* (((okf (abnf::tree-list-tuple4 sub)) (check-tree-nonleaf-4 tree "relation-constraint")) ((okf tree) (check-tree-list-1 sub.1st)) ((okf id) (abs-identifier tree)) ((okf tree) (check-tree-list-1 sub.2nd)) ((okf &) (check-tree-schars tree "(")) ((okf tree) (check-tree-list-1 sub.3rd)) ((okf expressions) (abs-?-expression-*-comma-expression tree)) ((okf tree) (check-tree-list-1 sub.4th)) ((okf &) (check-tree-schars tree ")"))) (make-constraint-relation :name id :args expressions))))
Theorem:
(defthm constraint-resultp-of-abs-relation-constraint (b* ((c (abs-relation-constraint tree))) (constraint-resultp c)) :rule-classes :rewrite)
Theorem:
(defthm abs-relation-constraint-of-tree-fix-tree (equal (abs-relation-constraint (abnf::tree-fix tree)) (abs-relation-constraint tree)))
Theorem:
(defthm abs-relation-constraint-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-relation-constraint tree) (abs-relation-constraint tree-equiv))) :rule-classes :congruence)