Check if all the initializers with optional designations in a list have formal dynamic semantics.
(desiniter-list-formalp desiniters) → yes/no
Function:
(defun desiniter-list-formalp (desiniters) (declare (xargs :guard (desiniter-listp desiniters))) (declare (xargs :guard (desiniter-list-unambp desiniters))) (let ((__function__ 'desiniter-list-formalp)) (declare (ignorable __function__)) (or (endp desiniters) (and (desiniter-formalp (car desiniters)) (desiniter-list-formalp (cdr desiniters))))))
Theorem:
(defthm booleanp-of-desiniter-list-formalp (b* ((yes/no (desiniter-list-formalp desiniters))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm desiniter-list-formalp-of-desiniter-list-fix-desiniters (equal (desiniter-list-formalp (desiniter-list-fix desiniters)) (desiniter-list-formalp desiniters)))
Theorem:
(defthm desiniter-list-formalp-desiniter-list-equiv-congruence-on-desiniters (implies (desiniter-list-equiv desiniters desiniters-equiv) (equal (desiniter-list-formalp desiniters) (desiniter-list-formalp desiniters-equiv))) :rule-classes :congruence)