(vl-create-unparameterized-module x name final-paramdecls final-ports elabindex ledger &key (config 'config)) → (mv new-mod keylist new-elabindex ledger)
Function:
(defun vl-create-unparameterized-module-fn (x name final-paramdecls final-ports elabindex ledger config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (vl-module-p x) (stringp name) (vl-paramdecllist-p final-paramdecls) (vl-portlist-p final-ports) (vl-unparam-ledger-p ledger) (vl-simpconfig-p config)))) (let ((__function__ 'vl-create-unparameterized-module)) (declare (ignorable __function__)) (b* ((name (string-fix name)) (x (change-vl-module x :name name :paramdecls final-paramdecls :ports final-ports)) ((vl-module x)) (warnings x.warnings) (blob (vl-module->genblob x)) ((wmv warnings keylist new-blob elabindex ledger :ctx name) (vl-genblob-resolve blob elabindex ledger nil)) (mod (vl-genblob->module new-blob x)) (mod (change-vl-module mod :warnings warnings))) (mv mod keylist elabindex ledger))))
Theorem:
(defthm vl-module-p-of-vl-create-unparameterized-module.new-mod (b* (((mv ?new-mod ?keylist ?new-elabindex ?ledger) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config))) (vl-module-p new-mod)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-instkeylist-p-of-vl-create-unparameterized-module.keylist (b* (((mv ?new-mod ?keylist ?new-elabindex ?ledger) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config))) (vl-unparam-instkeylist-p keylist)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-ledger-p-of-vl-create-unparameterized-module.ledger (b* (((mv ?new-mod ?keylist ?new-elabindex ?ledger) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config))) (vl-unparam-ledger-p ledger)) :rule-classes :rewrite)
Theorem:
(defthm vl-create-unparameterized-module-fn-of-vl-module-fix-x (equal (vl-create-unparameterized-module-fn (vl-module-fix x) name final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config)))
Theorem:
(defthm vl-create-unparameterized-module-fn-vl-module-equiv-congruence-on-x (implies (vl-module-equiv x x-equiv) (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x-equiv name final-paramdecls final-ports elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-create-unparameterized-module-fn-of-str-fix-name (equal (vl-create-unparameterized-module-fn x (str-fix name) final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config)))
Theorem:
(defthm vl-create-unparameterized-module-fn-streqv-congruence-on-name (implies (streqv name name-equiv) (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name-equiv final-paramdecls final-ports elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-create-unparameterized-module-fn-of-vl-paramdecllist-fix-final-paramdecls (equal (vl-create-unparameterized-module-fn x name (vl-paramdecllist-fix final-paramdecls) final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config)))
Theorem:
(defthm vl-create-unparameterized-module-fn-vl-paramdecllist-equiv-congruence-on-final-paramdecls (implies (vl-paramdecllist-equiv final-paramdecls final-paramdecls-equiv) (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls-equiv final-ports elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-create-unparameterized-module-fn-of-vl-portlist-fix-final-ports (equal (vl-create-unparameterized-module-fn x name final-paramdecls (vl-portlist-fix final-ports) elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config)))
Theorem:
(defthm vl-create-unparameterized-module-fn-vl-portlist-equiv-congruence-on-final-ports (implies (vl-portlist-equiv final-ports final-ports-equiv) (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports-equiv elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-create-unparameterized-module-fn-of-vl-unparam-ledger-fix-ledger (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex (vl-unparam-ledger-fix ledger) config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config)))
Theorem:
(defthm vl-create-unparameterized-module-fn-vl-unparam-ledger-equiv-congruence-on-ledger (implies (vl-unparam-ledger-equiv ledger ledger-equiv) (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger-equiv config))) :rule-classes :congruence)
Theorem:
(defthm vl-create-unparameterized-module-fn-of-vl-simpconfig-fix-config (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger (vl-simpconfig-fix config)) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config)))
Theorem:
(defthm vl-create-unparameterized-module-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config) (vl-create-unparameterized-module-fn x name final-paramdecls final-ports elabindex ledger config-equiv))) :rule-classes :congruence)