(vl-portdecl-sign-list portdecls vardecls warnings) → (mv successp warnings new-ports new-vars)
Function:
(defun vl-portdecl-sign-list (portdecls vardecls warnings) (declare (xargs :guard (and (vl-portdecllist-p portdecls) (vl-vardecllist-p vardecls) (vl-warninglist-p warnings)))) (declare (xargs :guard (equal (vl-portdecllist->names portdecls) (vl-vardecllist->names vardecls)))) (let ((__function__ 'vl-portdecl-sign-list)) (declare (ignorable __function__)) (b* (((when (atom portdecls)) (mv t (ok) nil nil)) ((mv okp1 warnings port1 var1) (vl-portdecl-sign-1 (car portdecls) (car vardecls) warnings)) ((mv okp2 warnings ports2 vars2) (vl-portdecl-sign-list (cdr portdecls) (cdr vardecls) warnings))) (mv (and okp1 okp2) warnings (cons port1 ports2) (cons var1 vars2)))))
Theorem:
(defthm booleanp-of-vl-portdecl-sign-list.successp (b* (((mv ?successp ?warnings ?new-ports ?new-vars) (vl-portdecl-sign-list portdecls vardecls warnings))) (booleanp successp)) :rule-classes :type-prescription)
Theorem:
(defthm vl-warninglist-p-of-vl-portdecl-sign-list.warnings (b* (((mv ?successp ?warnings ?new-ports ?new-vars) (vl-portdecl-sign-list portdecls vardecls warnings))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-portdecllist-p-of-vl-portdecl-sign-list.new-ports (b* (((mv ?successp ?warnings ?new-ports ?new-vars) (vl-portdecl-sign-list portdecls vardecls warnings))) (vl-portdecllist-p new-ports)) :rule-classes :rewrite)
Theorem:
(defthm vl-vardecllist-p-of-vl-portdecl-sign-list.new-vars (b* (((mv ?successp ?warnings ?new-ports ?new-vars) (vl-portdecl-sign-list portdecls vardecls warnings))) (vl-vardecllist-p new-vars)) :rule-classes :rewrite)
Theorem:
(defthm true-listp-of-vl-portdecl-sign-list.new-ports (b* (((mv ?successp ?warnings ?new-ports ?new-vars) (vl-portdecl-sign-list portdecls vardecls warnings))) (true-listp new-ports)) :rule-classes :type-prescription)
Theorem:
(defthm true-listp-of-vl-portdecl-sign-list.new-vars (b* (((mv ?successp ?warnings ?new-ports ?new-vars) (vl-portdecl-sign-list portdecls vardecls warnings))) (true-listp new-vars)) :rule-classes :type-prescription)
Theorem:
(defthm vl-portdecl-sign-list-of-vl-portdecllist-fix-portdecls (equal (vl-portdecl-sign-list (vl-portdecllist-fix portdecls) vardecls warnings) (vl-portdecl-sign-list portdecls vardecls warnings)))
Theorem:
(defthm vl-portdecl-sign-list-vl-portdecllist-equiv-congruence-on-portdecls (implies (vl-portdecllist-equiv portdecls portdecls-equiv) (equal (vl-portdecl-sign-list portdecls vardecls warnings) (vl-portdecl-sign-list portdecls-equiv vardecls warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-portdecl-sign-list-of-vl-vardecllist-fix-vardecls (equal (vl-portdecl-sign-list portdecls (vl-vardecllist-fix vardecls) warnings) (vl-portdecl-sign-list portdecls vardecls warnings)))
Theorem:
(defthm vl-portdecl-sign-list-vl-vardecllist-equiv-congruence-on-vardecls (implies (vl-vardecllist-equiv vardecls vardecls-equiv) (equal (vl-portdecl-sign-list portdecls vardecls warnings) (vl-portdecl-sign-list portdecls vardecls-equiv warnings))) :rule-classes :congruence)
Theorem:
(defthm vl-portdecl-sign-list-of-vl-warninglist-fix-warnings (equal (vl-portdecl-sign-list portdecls vardecls (vl-warninglist-fix warnings)) (vl-portdecl-sign-list portdecls vardecls warnings)))
Theorem:
(defthm vl-portdecl-sign-list-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-portdecl-sign-list portdecls vardecls warnings) (vl-portdecl-sign-list portdecls vardecls warnings-equiv))) :rule-classes :congruence)