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