Abstract a
(abs-*-constraint trees) → constraints
Function:
(defun abs-*-constraint (trees) (declare (xargs :guard (abnf::tree-listp trees))) (let ((__function__ 'abs-*-constraint)) (declare (ignorable __function__)) (b* (((when (endp trees)) nil) ((okf constraint) (abs-constraint (car trees))) ((okf constraints) (abs-*-constraint (cdr trees)))) (cons constraint constraints))))
Theorem:
(defthm constraint-list-resultp-of-abs-*-constraint (b* ((constraints (abs-*-constraint trees))) (constraint-list-resultp constraints)) :rule-classes :rewrite)
Theorem:
(defthm constraint-listp-of-abs-*-constraint (b* ((?constraints (abs-*-constraint trees))) (implies (not (reserrp constraints)) (constraint-listp constraints))))
Theorem:
(defthm abs-*-constraint-of-tree-list-fix-trees (equal (abs-*-constraint (abnf::tree-list-fix trees)) (abs-*-constraint trees)))
Theorem:
(defthm abs-*-constraint-tree-list-equiv-congruence-on-trees (implies (abnf::tree-list-equiv trees trees-equiv) (equal (abs-*-constraint trees) (abs-*-constraint trees-equiv))) :rule-classes :congruence)