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