Check if a direct declarator has formal dynamic semantics, as part of a block item declaration.
(dirdeclor-block-formalp dirdeclor) → yes/no
In c::exec-block-item, the declaration case requires an object (not function) declarator that is not an array declarator. So we can only have an identifier.
Function:
(defun dirdeclor-block-formalp (dirdeclor) (declare (xargs :guard (dirdeclorp dirdeclor))) (declare (xargs :guard (dirdeclor-unambp dirdeclor))) (let ((__function__ 'dirdeclor-block-formalp)) (declare (ignorable __function__)) (dirdeclor-case dirdeclor :ident)))
Theorem:
(defthm booleanp-of-dirdeclor-block-formalp (b* ((yes/no (dirdeclor-block-formalp dirdeclor))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm dirdeclor-block-formalp-of-dirdeclor-fix-dirdeclor (equal (dirdeclor-block-formalp (dirdeclor-fix dirdeclor)) (dirdeclor-block-formalp dirdeclor)))
Theorem:
(defthm dirdeclor-block-formalp-dirdeclor-equiv-congruence-on-dirdeclor (implies (dirdeclor-equiv dirdeclor dirdeclor-equiv) (equal (dirdeclor-block-formalp dirdeclor) (dirdeclor-block-formalp dirdeclor-equiv))) :rule-classes :congruence)