Top-level unparameterization transform.
(vl-design-unparameterize x) → new-x
Function:
(defun vl-design-unparameterize (x) (declare (xargs :guard (vl-design-p x))) (let ((__function__ 'vl-design-unparameterize)) (declare (ignorable __function__)) (b* (((vl-design x)) (ss (vl-scopestack-init x)) (topmods (vl-modulelist-toplevel x.mods)) ((mv top-sigs warnings) (vl-modulelist-default-signatures topmods ss x.warnings)) ((mv ?ok warnings1 new-mods donelist) (vl-unparameterize-main-list top-sigs nil 1000 ss)) (warnings (append warnings1 warnings))) (fast-alist-free donelist) (vl-scopestacks-free) (change-vl-design x :warnings warnings :mods new-mods))))
Theorem:
(defthm vl-design-p-of-vl-design-unparameterize (b* ((new-x (vl-design-unparameterize x))) (vl-design-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-unparameterize-of-vl-design-fix-x (equal (vl-design-unparameterize (vl-design-fix x)) (vl-design-unparameterize x)))
Theorem:
(defthm vl-design-unparameterize-vl-design-equiv-congruence-on-x (implies (vl-design-equiv x x-equiv) (equal (vl-design-unparameterize x) (vl-design-unparameterize x-equiv))) :rule-classes :congruence)