Apply the blankargs transform to a gate instance.
(vl-gateinst-blankargs x nf warnings) → (mv warnings new-x vardecls nf)
Function:
(defun vl-gateinst-blankargs (x nf warnings) (declare (xargs :guard (and (vl-gateinst-p x) (vl-namefactory-p nf) (vl-warninglist-p warnings)))) (let ((__function__ 'vl-gateinst-blankargs)) (declare (ignorable __function__)) (b* ((x (vl-gateinst-fix x)) (nf (vl-namefactory-fix nf)) ((when (vl-plainarglist-blankfree-p (vl-gateinst->args x))) (mv (ok) x nil nf)) ((vl-gateinst x) x) ((when x.range) (mv (fatal :type :vl-programming-error :msg "~a0: expected all instance arrays to be replicated, ~ but this gate instance has range ~a1." :args (list x x.range)) x nil nf)) ((mv new-args vardecls nf) (vl-gateinst-plainarglist-blankargs x.args nf x)) (x-prime (change-vl-gateinst x :args new-args))) (mv (ok) x-prime vardecls nf))))
Theorem:
(defthm vl-warninglist-p-of-vl-gateinst-blankargs.warnings (b* (((mv ?warnings ?new-x ?vardecls ?nf) (vl-gateinst-blankargs x nf warnings))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-gateinst-p-of-vl-gateinst-blankargs.new-x (b* (((mv ?warnings ?new-x ?vardecls ?nf) (vl-gateinst-blankargs x nf warnings))) (vl-gateinst-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm vl-vardecllist-p-of-vl-gateinst-blankargs.vardecls (b* (((mv ?warnings ?new-x ?vardecls ?nf) (vl-gateinst-blankargs x nf warnings))) (vl-vardecllist-p vardecls)) :rule-classes :rewrite)
Theorem:
(defthm vl-namefactory-p-of-vl-gateinst-blankargs.nf (b* (((mv ?warnings ?new-x ?vardecls ?nf) (vl-gateinst-blankargs x nf warnings))) (vl-namefactory-p nf)) :rule-classes :rewrite)
Theorem:
(defthm vl-gateinst-blankargs-mvtypes-2 (true-listp (mv-nth 2 (vl-gateinst-blankargs x nf warnings))) :rule-classes :type-prescription)
Theorem:
(defthm vl-gateinst-blankargs-of-vl-gateinst-fix-x (equal (vl-gateinst-blankargs (vl-gateinst-fix x) nf warnings) (vl-gateinst-blankargs x nf warnings)))
Theorem:
(defthm vl-gateinst-blankargs-vl-gateinst-equiv-congruence-on-x (implies (vl-gateinst-equiv x x-equiv) (equal (vl-gateinst-blankargs x nf warnings) (vl-gateinst-blankargs x-equiv nf warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-gateinst-blankargs-of-vl-namefactory-fix-nf (equal (vl-gateinst-blankargs x (vl-namefactory-fix nf) warnings) (vl-gateinst-blankargs x nf warnings)))
Theorem:
(defthm vl-gateinst-blankargs-vl-namefactory-equiv-congruence-on-nf (implies (vl-namefactory-equiv nf nf-equiv) (equal (vl-gateinst-blankargs x nf warnings) (vl-gateinst-blankargs x nf-equiv warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-gateinst-blankargs-of-vl-warninglist-fix-warnings (equal (vl-gateinst-blankargs x nf (vl-warninglist-fix warnings)) (vl-gateinst-blankargs x nf warnings)))
Theorem:
(defthm vl-gateinst-blankargs-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-gateinst-blankargs x nf warnings) (vl-gateinst-blankargs x nf warnings-equiv))) :rule-classes :congruence)