An
(abstract-elements tree) → alternation
Function:
(defun abstract-elements (tree) (declare (xargs :guard (treep tree))) (b* (((fun (fail)) (abstract-fail)) ((unless (tree-case tree :nonleaf)) (fail)) (treess (tree-nonleaf->branches tree)) ((unless (consp treess)) (fail)) (trees (car treess)) ((unless (consp trees)) (fail)) (tree (car trees))) (abstract-alternation tree)))
Theorem:
(defthm alternationp-of-abstract-elements (b* ((alternation (abstract-elements tree))) (alternationp alternation)) :rule-classes :rewrite)