Check if a structure declaration has formal dynamic semantics.
(strunispec-formalp strunispec) → yes/no
The name must be present, and each structure declaration must be supported.
Function:
(defun strunispec-formalp (strunispec) (declare (xargs :guard (strunispecp strunispec))) (declare (xargs :guard (strunispec-unambp strunispec))) (let ((__function__ 'strunispec-formalp)) (declare (ignorable __function__)) (b* (((strunispec strunispec) strunispec)) (and strunispec.name (ident-formalp strunispec.name) (structdecl-list-formalp strunispec.members)))))
Theorem:
(defthm booleanp-of-strunispec-formalp (b* ((yes/no (strunispec-formalp strunispec))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm strunispec-formalp-of-strunispec-fix-strunispec (equal (strunispec-formalp (strunispec-fix strunispec)) (strunispec-formalp strunispec)))
Theorem:
(defthm strunispec-formalp-strunispec-equiv-congruence-on-strunispec (implies (strunispec-equiv strunispec strunispec-equiv) (equal (strunispec-formalp strunispec) (strunispec-formalp strunispec-equiv))) :rule-classes :congruence)