Validate a list of declaration specifiers.
(valid-decl-spec-list declspecs type? tyspecs storspecs table ienv) → (mv erp new-declspecs type all-storspecs return-types new-table)
If validation is successful, we return the type determined by the type specifiers, and the list of storage class specifiers extracted from the declaration specifiers.
We go through each element of the list, threading the partial results through. When we reach the end of the list, if a type has been determined, we return it. Otherwise, we use a separate function to attempt to determine it from the collected type specifiers.
Theorem:
(defthm valid-decl-spec-list.all-storspecs-type-prescription (b* (((mv acl2::?erp ?new-declspecs ?type ?all-storspecs ?return-types ?new-table) (valid-decl-spec-list declspecs type? tyspecs storspecs table ienv))) (true-listp all-storspecs)) :rule-classes :type-prescription)