Top level routine for adding implicit wires to a module's load items.
(vl-make-implicit-wires-main loaditems ifports ss warnings) → (mv newitems warnings)
Function:
(defun vl-make-implicit-wires-main (loaditems ifports ss warnings) (declare (xargs :guard (and (vl-genelementlist-p loaditems) (vl-interfaceportlist-p ifports) (vl-scopestack-p ss) (vl-warninglist-p warnings)))) (let ((__function__ 'vl-make-implicit-wires-main)) (declare (ignorable __function__)) (b* ((ifports (vl-interfaceportlist-fix ifports)) (decls (make-fast-alist (pairlis$ (vl-portlist->names ifports) (list-fix ifports)))) (st (make-vl-implicitst :decls decls :portdecls nil :wildpkgs nil :ss ss)) (newitems nil) (impitems nil) ((mv warnings st newitems impitems) (vl-genelementlist-make-implicit-wires loaditems st newitems impitems warnings)) (newitems (append newitems (vl-modelementlist->genelements impitems))) ((vl-implicitst st)) (newitems (vl-make-port-implicit-wires newitems st.decls nil)) (- (fast-alist-free st.portdecls)) (- (fast-alist-free st.decls))) (mv newitems warnings))))
Theorem:
(defthm vl-genelementlist-p-of-vl-make-implicit-wires-main.newitems (b* (((mv ?newitems ?warnings) (vl-make-implicit-wires-main loaditems ifports ss warnings))) (vl-genelementlist-p newitems)) :rule-classes :rewrite)
Theorem:
(defthm vl-warninglist-p-of-vl-make-implicit-wires-main.warnings (b* (((mv ?newitems ?warnings) (vl-make-implicit-wires-main loaditems ifports ss warnings))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-make-implicit-wires-main-of-vl-genelementlist-fix-loaditems (equal (vl-make-implicit-wires-main (vl-genelementlist-fix loaditems) ifports ss warnings) (vl-make-implicit-wires-main loaditems ifports ss warnings)))
Theorem:
(defthm vl-make-implicit-wires-main-vl-genelementlist-equiv-congruence-on-loaditems (implies (vl-genelementlist-equiv loaditems loaditems-equiv) (equal (vl-make-implicit-wires-main loaditems ifports ss warnings) (vl-make-implicit-wires-main loaditems-equiv ifports ss warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-make-implicit-wires-main-of-vl-interfaceportlist-fix-ifports (equal (vl-make-implicit-wires-main loaditems (vl-interfaceportlist-fix ifports) ss warnings) (vl-make-implicit-wires-main loaditems ifports ss warnings)))
Theorem:
(defthm vl-make-implicit-wires-main-vl-interfaceportlist-equiv-congruence-on-ifports (implies (vl-interfaceportlist-equiv ifports ifports-equiv) (equal (vl-make-implicit-wires-main loaditems ifports ss warnings) (vl-make-implicit-wires-main loaditems ifports-equiv ss warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-make-implicit-wires-main-of-vl-scopestack-fix-ss (equal (vl-make-implicit-wires-main loaditems ifports (vl-scopestack-fix ss) warnings) (vl-make-implicit-wires-main loaditems ifports ss warnings)))
Theorem:
(defthm vl-make-implicit-wires-main-vl-scopestack-equiv-congruence-on-ss (implies (vl-scopestack-equiv ss ss-equiv) (equal (vl-make-implicit-wires-main loaditems ifports ss warnings) (vl-make-implicit-wires-main loaditems ifports ss-equiv warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-make-implicit-wires-main-of-vl-warninglist-fix-warnings (equal (vl-make-implicit-wires-main loaditems ifports ss (vl-warninglist-fix warnings)) (vl-make-implicit-wires-main loaditems ifports ss warnings)))
Theorem:
(defthm vl-make-implicit-wires-main-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-make-implicit-wires-main loaditems ifports ss warnings) (vl-make-implicit-wires-main loaditems ifports ss warnings-equiv))) :rule-classes :congruence)