(vl-gateinstlist-gatesplit x nf warnings) → (mv warnings new-decls new-gateinsts nf)
Function:
(defun vl-gateinstlist-gatesplit (x nf warnings) (declare (xargs :guard (and (vl-gateinstlist-p x) (vl-namefactory-p nf) (vl-warninglist-p warnings)))) (let ((__function__ 'vl-gateinstlist-gatesplit)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv (ok) nil nil nf)) ((mv warnings decls1 gates1 nf) (vl-gateinst-gatesplit (car x) nf warnings)) ((mv warnings declsn gatesn nf) (vl-gateinstlist-gatesplit (cdr x) nf warnings))) (mv warnings (append decls1 declsn) (append gates1 gatesn) nf))))
Theorem:
(defthm vl-warninglist-p-of-vl-gateinstlist-gatesplit.warnings (b* (((mv ?warnings ?new-decls ?new-gateinsts ?nf) (vl-gateinstlist-gatesplit x nf warnings))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-vardecllist-p-of-vl-gateinstlist-gatesplit.new-decls (implies (and (force (vl-gateinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?warnings ?new-decls ?new-gateinsts ?nf) (vl-gateinstlist-gatesplit x nf warnings))) (vl-vardecllist-p new-decls))) :rule-classes :rewrite)
Theorem:
(defthm vl-gateinstlist-p-of-vl-gateinstlist-gatesplit.new-gateinsts (implies (and (force (vl-gateinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?warnings ?new-decls ?new-gateinsts ?nf) (vl-gateinstlist-gatesplit x nf warnings))) (vl-gateinstlist-p new-gateinsts))) :rule-classes :rewrite)
Theorem:
(defthm vl-namefactory-p-of-vl-gateinstlist-gatesplit.nf (implies (and (force (vl-gateinstlist-p x)) (force (vl-namefactory-p nf)) (force (vl-warninglist-p warnings))) (b* (((mv ?warnings ?new-decls ?new-gateinsts ?nf) (vl-gateinstlist-gatesplit x nf warnings))) (vl-namefactory-p nf))) :rule-classes :rewrite)
Theorem:
(defthm vl-gateinstlist-gatesplit-mvtypes-1 (true-listp (mv-nth 1 (vl-gateinstlist-gatesplit x nf warnings))) :rule-classes :type-prescription)
Theorem:
(defthm vl-gateinstlist-gatesplit-mvtypes-2 (true-listp (mv-nth 2 (vl-gateinstlist-gatesplit x nf warnings))) :rule-classes :type-prescription)