Check if an initializer declarator has formal dynamic semantics, as part of a function declaration.
(init-declor-fun-formalp initdeclor) → yes/no
There must be no initializer, and the declarator must be supported. There must be no assembler name specifier and no attribute specifiers.
Function:
(defun init-declor-fun-formalp (initdeclor) (declare (xargs :guard (init-declorp initdeclor))) (declare (xargs :guard (init-declor-unambp initdeclor))) (let ((__function__ 'init-declor-fun-formalp)) (declare (ignorable __function__)) (b* (((init-declor initdeclor) initdeclor)) (and (declor-fun-formalp initdeclor.declor) (not initdeclor.asm?) (endp initdeclor.attribs) (not initdeclor.initer?)))))
Theorem:
(defthm booleanp-of-init-declor-fun-formalp (b* ((yes/no (init-declor-fun-formalp initdeclor))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm init-declor-fun-formalp-of-init-declor-fix-initdeclor (equal (init-declor-fun-formalp (init-declor-fix initdeclor)) (init-declor-fun-formalp initdeclor)))
Theorem:
(defthm init-declor-fun-formalp-init-declor-equiv-congruence-on-initdeclor (implies (init-declor-equiv initdeclor initdeclor-equiv) (equal (init-declor-fun-formalp initdeclor) (init-declor-fun-formalp initdeclor-equiv))) :rule-classes :congruence)