Append together all the MSB bits for a list of wire names.
(vl-collect-msb-bits-for-wires names walist warnings) → (mv warnings wires)
Function:
(defun vl-collect-msb-bits-for-wires (names walist warnings) (declare (xargs :guard (and (string-listp names) (vl-wirealist-p walist) (vl-warninglist-p warnings)))) (let ((__function__ 'vl-collect-msb-bits-for-wires)) (declare (ignorable __function__)) (b* (((when (atom names)) (mv warnings nil)) (name1 (car names)) (entry1 (hons-get name1 walist)) (wires1 (cdr entry1)) ((mv warnings rest) (vl-collect-msb-bits-for-wires (cdr names) walist warnings)) (warnings (if entry1 warnings (warn :type :vl-design-wires :msg "No walist entry for ~s0." :args (list name1))))) (mv warnings (append wires1 rest)))))
Theorem:
(defthm vl-warninglist-p-of-vl-collect-msb-bits-for-wires.warnings (implies (vl-warninglist-p warnings) (b* (((mv ?warnings ?wires) (vl-collect-msb-bits-for-wires names walist warnings))) (vl-warninglist-p warnings))) :rule-classes :rewrite)
Theorem:
(defthm vl-emodwirelist-p-of-vl-collect-msb-bits-for-wires.wires (implies (vl-wirealist-p walist) (b* (((mv ?warnings ?wires) (vl-collect-msb-bits-for-wires names walist warnings))) (vl-emodwirelist-p wires))) :rule-classes :rewrite)