Validate a list of zero or more designators.
(valid-designor-list designors target-type table ienv) → (mv erp new-designors new-target-type return-types new-table)
The target type passed as argument is the current type that the designators must be applicable to. The target type returned as result is the type resulting from the application of the designators.
Theorem:
(defthm valid-designor-list.new-target-type-not-function (b* (((mv acl2::?erp ?new-designors ?new-target-type ?return-types ?new-table) (valid-designor-list designors target-type table ienv))) (implies (not erp) (not (equal (type-kind new-target-type) :function)))))
Theorem:
(defthm valid-designor-list.new-target-type-not-void (b* (((mv acl2::?erp ?new-designors ?new-target-type ?return-types ?new-table) (valid-designor-list designors target-type table ienv))) (implies (not erp) (not (equal (type-kind new-target-type) :void)))))