Replace any instance of a module with its inlined body.
(vl-inline-mod-in-modinsts sub x nf warnings) → (mv nf modinsts gateinsts assigns vardecls warnings)
Function:
(defun vl-inline-mod-in-modinsts (sub x nf warnings) (declare (xargs :guard (and (and (vl-module-p sub) (vl-ok-to-inline-p sub)) (vl-modinstlist-p x) (vl-namefactory-p nf) (vl-warninglist-p warnings)))) (let ((__function__ 'vl-inline-mod-in-modinsts)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv nf nil nil nil nil (ok))) ((mv nf modinsts1 gateinsts1 assigns1 vardecls1 warnings) (vl-inline-mod-in-modinst sub (car x) nf warnings)) ((mv nf modinsts2 gateinsts2 assigns2 vardecls2 warnings) (vl-inline-mod-in-modinsts sub (cdr x) nf warnings))) (mv nf (append modinsts1 modinsts2) (append gateinsts1 gateinsts2) (append assigns1 assigns2) (append vardecls1 vardecls2) warnings))))
Theorem:
(defthm vl-namefactory-p-of-vl-inline-mod-in-modinsts.nf (implies (and (force (if (vl-module-p sub) (vl-ok-to-inline-p sub) 'nil)) (force (vl-modinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?nf ?modinsts ?gateinsts ?assigns ?vardecls ?warnings) (vl-inline-mod-in-modinsts sub x nf warnings))) (vl-namefactory-p nf))) :rule-classes :rewrite)
Theorem:
(defthm vl-modinstlist-p-of-vl-inline-mod-in-modinsts.modinsts (implies (and (force (if (vl-module-p sub) (vl-ok-to-inline-p sub) 'nil)) (force (vl-modinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?nf ?modinsts ?gateinsts ?assigns ?vardecls ?warnings) (vl-inline-mod-in-modinsts sub x nf warnings))) (vl-modinstlist-p modinsts))) :rule-classes :rewrite)
Theorem:
(defthm vl-gateinstlist-p-of-vl-inline-mod-in-modinsts.gateinsts (implies (and (force (if (vl-module-p sub) (vl-ok-to-inline-p sub) 'nil)) (force (vl-modinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?nf ?modinsts ?gateinsts ?assigns ?vardecls ?warnings) (vl-inline-mod-in-modinsts sub x nf warnings))) (vl-gateinstlist-p gateinsts))) :rule-classes :rewrite)
Theorem:
(defthm vl-assignlist-p-of-vl-inline-mod-in-modinsts.assigns (implies (and (force (if (vl-module-p sub) (vl-ok-to-inline-p sub) 'nil)) (force (vl-modinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?nf ?modinsts ?gateinsts ?assigns ?vardecls ?warnings) (vl-inline-mod-in-modinsts sub x nf warnings))) (vl-assignlist-p assigns))) :rule-classes :rewrite)
Theorem:
(defthm vl-vardecllist-p-of-vl-inline-mod-in-modinsts.vardecls (implies (and (force (if (vl-module-p sub) (vl-ok-to-inline-p sub) 'nil)) (force (vl-modinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?nf ?modinsts ?gateinsts ?assigns ?vardecls ?warnings) (vl-inline-mod-in-modinsts sub x nf warnings))) (vl-vardecllist-p vardecls))) :rule-classes :rewrite)
Theorem:
(defthm vl-warninglist-p-of-vl-inline-mod-in-modinsts.warnings (b* (((mv ?nf ?modinsts ?gateinsts ?assigns ?vardecls ?warnings) (vl-inline-mod-in-modinsts sub x nf warnings))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-inline-mod-in-modinsts-mvtypes-1 (true-listp (mv-nth 1 (vl-inline-mod-in-modinsts sub x nf warnings))) :rule-classes :type-prescription)
Theorem:
(defthm vl-inline-mod-in-modinsts-mvtypes-2 (true-listp (mv-nth 2 (vl-inline-mod-in-modinsts sub x nf warnings))) :rule-classes :type-prescription)
Theorem:
(defthm vl-inline-mod-in-modinsts-mvtypes-3 (true-listp (mv-nth 3 (vl-inline-mod-in-modinsts sub x nf warnings))) :rule-classes :type-prescription)
Theorem:
(defthm vl-inline-mod-in-modinsts-mvtypes-4 (true-listp (mv-nth 4 (vl-inline-mod-in-modinsts sub x nf warnings))) :rule-classes :type-prescription)