Validate a parameter declarator.
(valid-param-declor paramdeclor type table ienv) → (mv erp new-paramdeclor new-type ident? return-types uid? new-table)
The input type is the one resulting from the declaration specifiers of the parameter declaration of which the parameter declarator is part of. If validation is successful, we return a possibly refined type, and an optional identifier.
If the parameter declarator is a (non-abstract) declarator, we return the possibly refined type, the identifier, and the uid. If the parameter declarator is an abstract declarator, we return the possibly refined type but no identifier nor uid. If the parameter declarator is absent, we return the type unchanged and no identifier nor uid.
Theorem:
(defthm valid-param-declor.uid?-under-iff (b* (((mv acl2::?erp ?new-paramdeclor ?new-type ?ident? ?return-types ?uid? ?new-table) (valid-param-declor paramdeclor type table ienv))) (implies (not erp) (iff uid? ident?))))