(vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss) → (mv warnings ports portdecls vardecls)
Function:
(defun vl-resolve-ansi-portdecls (x ports-acc portdecls-acc vardecls-acc ss) (declare (xargs :guard (and (vl-ansi-portdecllist-p x) (vl-portlist-p ports-acc) (vl-portdecllist-p portdecls-acc) (vl-vardecllist-p vardecls-acc) (vl-scopestack-p ss)))) (declare (xargs :guard (and (equal (len portdecls-acc) (len (vl-collect-regular-ports ports-acc))) (equal (len vardecls-acc) (len (vl-collect-regular-ports ports-acc)))))) (let ((__function__ 'vl-resolve-ansi-portdecls)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv nil (rev (vl-portlist-fix ports-acc)) (rev (vl-portdecllist-fix portdecls-acc)) (rev (vl-vardecllist-fix vardecls-acc)))) ((mv warnings1 port1 portdecls1 vardecls1) (vl-ansi-portdecl-resolve (car x) ports-acc portdecls-acc vardecls-acc ss)) ((mv warnings-rest ports portdecls vardecls) (vl-resolve-ansi-portdecls (cdr x) (cons port1 ports-acc) (append-without-guard portdecls1 portdecls-acc) (append-without-guard vardecls1 vardecls-acc) ss))) (mv (append-without-guard warnings1 warnings-rest) ports portdecls vardecls))))
Theorem:
(defthm vl-warninglist-p-of-vl-resolve-ansi-portdecls.warnings (b* (((mv ?warnings ?ports ?portdecls ?vardecls) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-portlist-p-of-vl-resolve-ansi-portdecls.ports (b* (((mv ?warnings ?ports ?portdecls ?vardecls) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss))) (vl-portlist-p ports)) :rule-classes :rewrite)
Theorem:
(defthm vl-portdecllist-p-of-vl-resolve-ansi-portdecls.portdecls (b* (((mv ?warnings ?ports ?portdecls ?vardecls) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss))) (vl-portdecllist-p portdecls)) :rule-classes :rewrite)
Theorem:
(defthm vl-vardecllist-p-of-vl-resolve-ansi-portdecls.vardecls (b* (((mv ?warnings ?ports ?portdecls ?vardecls) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss))) (vl-vardecllist-p vardecls)) :rule-classes :rewrite)
Theorem:
(defthm vl-resolve-ansi-portdecls-of-vl-ansi-portdecllist-fix-x (equal (vl-resolve-ansi-portdecls (vl-ansi-portdecllist-fix x) ports-acc portdecls-acc vardecls-acc ss) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss)))
Theorem:
(defthm vl-resolve-ansi-portdecls-vl-ansi-portdecllist-equiv-congruence-on-x (implies (vl-ansi-portdecllist-equiv x x-equiv) (equal (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss) (vl-resolve-ansi-portdecls x-equiv ports-acc portdecls-acc vardecls-acc ss))) :rule-classes :congruence)
Theorem:
(defthm vl-resolve-ansi-portdecls-of-vl-portlist-fix-ports-acc (equal (vl-resolve-ansi-portdecls x (vl-portlist-fix ports-acc) portdecls-acc vardecls-acc ss) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss)))
Theorem:
(defthm vl-resolve-ansi-portdecls-vl-portlist-equiv-congruence-on-ports-acc (implies (vl-portlist-equiv ports-acc ports-acc-equiv) (equal (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss) (vl-resolve-ansi-portdecls x ports-acc-equiv portdecls-acc vardecls-acc ss))) :rule-classes :congruence)
Theorem:
(defthm vl-resolve-ansi-portdecls-of-vl-portdecllist-fix-portdecls-acc (equal (vl-resolve-ansi-portdecls x ports-acc (vl-portdecllist-fix portdecls-acc) vardecls-acc ss) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss)))
Theorem:
(defthm vl-resolve-ansi-portdecls-vl-portdecllist-equiv-congruence-on-portdecls-acc (implies (vl-portdecllist-equiv portdecls-acc portdecls-acc-equiv) (equal (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc-equiv vardecls-acc ss))) :rule-classes :congruence)
Theorem:
(defthm vl-resolve-ansi-portdecls-of-vl-vardecllist-fix-vardecls-acc (equal (vl-resolve-ansi-portdecls x ports-acc portdecls-acc (vl-vardecllist-fix vardecls-acc) ss) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss)))
Theorem:
(defthm vl-resolve-ansi-portdecls-vl-vardecllist-equiv-congruence-on-vardecls-acc (implies (vl-vardecllist-equiv vardecls-acc vardecls-acc-equiv) (equal (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc-equiv ss))) :rule-classes :congruence)
Theorem:
(defthm vl-resolve-ansi-portdecls-of-vl-scopestack-fix-ss (equal (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc (vl-scopestack-fix ss)) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss)))
Theorem:
(defthm vl-resolve-ansi-portdecls-vl-scopestack-equiv-congruence-on-ss (implies (vl-scopestack-equiv ss ss-equiv) (equal (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss) (vl-resolve-ansi-portdecls x ports-acc portdecls-acc vardecls-acc ss-equiv))) :rule-classes :congruence)