(vl-finish-unparameterized-class x elabindex &key (config 'config)) → (mv new-mod new-elabindex)
Function:
(defun vl-finish-unparameterized-class-fn (x elabindex config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (vl-class-p x) (vl-simpconfig-p config)))) (let ((__function__ 'vl-finish-unparameterized-class)) (declare (ignorable __function__)) (b* (((vl-class x)) (warnings x.warnings) (blob (vl-class->genblob x)) ((wmv warnings elabindex new-blob :ctx x.name) (vl-genblob-finish-unparam blob elabindex nil config)) (mod (vl-genblob->class new-blob x)) (mod (change-vl-class mod :warnings warnings)) (elabindex (vl-elabindex-push mod)) (elabindex (vl-elabindex-undo))) (mv mod elabindex))))
Theorem:
(defthm vl-class-p-of-vl-finish-unparameterized-class.new-mod (b* (((mv ?new-mod ?new-elabindex) (vl-finish-unparameterized-class-fn x elabindex config))) (vl-class-p new-mod)) :rule-classes :rewrite)
Theorem:
(defthm vl-finish-unparameterized-class-fn-of-vl-class-fix-x (equal (vl-finish-unparameterized-class-fn (vl-class-fix x) elabindex config) (vl-finish-unparameterized-class-fn x elabindex config)))
Theorem:
(defthm vl-finish-unparameterized-class-fn-vl-class-equiv-congruence-on-x (implies (vl-class-equiv x x-equiv) (equal (vl-finish-unparameterized-class-fn x elabindex config) (vl-finish-unparameterized-class-fn x-equiv elabindex config))) :rule-classes :congruence)
Theorem:
(defthm vl-finish-unparameterized-class-fn-of-vl-simpconfig-fix-config (equal (vl-finish-unparameterized-class-fn x elabindex (vl-simpconfig-fix config)) (vl-finish-unparameterized-class-fn x elabindex config)))
Theorem:
(defthm vl-finish-unparameterized-class-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-finish-unparameterized-class-fn x elabindex config) (vl-finish-unparameterized-class-fn x elabindex config-equiv))) :rule-classes :congruence)