Extend vl-load-description to try to load a list of descriptions.
(vl-load-descriptions names st state) → (mv st state)
Function:
(defun vl-load-descriptions (names st state) (declare (xargs :stobjs (state))) (declare (xargs :guard (and (string-listp names) (vl-loadstate-p st)))) (let ((__function__ 'vl-load-descriptions)) (declare (ignorable __function__)) (b* (((when (atom names)) (mv (vl-loadstate-fix st) state)) ((mv st state) (vl-load-description (car names) st state)) ((mv st state) (vl-load-descriptions (cdr names) st state))) (mv st state))))
Theorem:
(defthm vl-loadstate-p-of-vl-load-descriptions.st (b* (((mv ?st acl2::?state) (vl-load-descriptions names st state))) (vl-loadstate-p st)) :rule-classes :rewrite)
Theorem:
(defthm state-p1-of-vl-load-descriptions.state (implies (force (state-p1 state)) (b* (((mv ?st acl2::?state) (vl-load-descriptions names st state))) (state-p1 state))) :rule-classes :rewrite)
Theorem:
(defthm unique-names-after-vl-load-descriptions (b* (((mv new-st &) (vl-load-descriptions names st state))) (implies (uniquep (vl-descriptionlist->names (vl-loadstate->descs st))) (no-duplicatesp (vl-descriptionlist->names (vl-loadstate->descs new-st))))))