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