(vl-finish-unparameterized-modules x elabindex &key (config 'config)) → (mv new-x new-elabindex)
Function:
(defun vl-finish-unparameterized-modules-fn (x elabindex config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (vl-modulelist-p x) (vl-simpconfig-p config)))) (let ((__function__ 'vl-finish-unparameterized-modules)) (declare (ignorable __function__)) (if (atom x) (mv nil elabindex) (b* (((mv x1 elabindex) (vl-finish-unparameterized-module (car x) elabindex)) ((mv rest elabindex) (vl-finish-unparameterized-modules (cdr x) elabindex))) (mv (cons x1 rest) elabindex)))))
Theorem:
(defthm vl-modulelist-p-of-vl-finish-unparameterized-modules.new-x (b* (((mv ?new-x ?new-elabindex) (vl-finish-unparameterized-modules-fn x elabindex config))) (vl-modulelist-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-finish-unparameterized-modules-fn-of-vl-modulelist-fix-x (equal (vl-finish-unparameterized-modules-fn (vl-modulelist-fix x) elabindex config) (vl-finish-unparameterized-modules-fn x elabindex config)))
Theorem:
(defthm vl-finish-unparameterized-modules-fn-vl-modulelist-equiv-congruence-on-x (implies (vl-modulelist-equiv x x-equiv) (equal (vl-finish-unparameterized-modules-fn x elabindex config) (vl-finish-unparameterized-modules-fn x-equiv elabindex config))) :rule-classes :congruence)
Theorem:
(defthm vl-finish-unparameterized-modules-fn-of-vl-simpconfig-fix-config (equal (vl-finish-unparameterized-modules-fn x elabindex (vl-simpconfig-fix config)) (vl-finish-unparameterized-modules-fn x elabindex config)))
Theorem:
(defthm vl-finish-unparameterized-modules-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-finish-unparameterized-modules-fn x elabindex config) (vl-finish-unparameterized-modules-fn x elabindex config-equiv))) :rule-classes :congruence)