A
(abstract-?repeat tree) → range
When the
Function:
(defun abstract-?repeat (tree) (declare (xargs :guard (treep tree))) (b* (((fun (fail)) (prog2$ (abstract-fail) (repeat-range 0 (nati-finite 0)))) ((unless (tree-case tree :nonleaf)) (fail)) (treess (tree-nonleaf->branches tree)) ((when (endp treess)) (repeat-range 1 (nati-finite 1))) (trees (car treess)) ((unless (consp trees)) (fail)) (subtree (car trees))) (abstract-repeat subtree)))
Theorem:
(defthm repeat-rangep-of-abstract-?repeat (b* ((range (abstract-?repeat tree))) (repeat-rangep range)) :rule-classes :rewrite)