(vl-modport-port-check-wellformed x ctx warnings internalnames) → (mv warnings internalnames)
Function:
(defun vl-modport-port-check-wellformed (x ctx warnings internalnames) (declare (xargs :guard (and (vl-modport-port-p x) (vl-modport-p ctx) (vl-warninglist-p warnings) (string-listp internalnames)))) (let ((__function__ 'vl-modport-port-check-wellformed)) (declare (ignorable __function__)) (b* ((internalnames (string-list-fix internalnames)) ((vl-modport-port x) (vl-modport-port-fix x)) ((unless x.expr) (mv (ok) internalnames)) ((unless (vl-portexpr-p x.expr)) (mv (fatal :type :vl-bad-port :msg "~a0: ill-formed expression for modport port: ~a1." :args (list (vl-modport-fix ctx) x)) internalnames))) (mv (ok) (append (vl-portexpr->internalnames x.expr) internalnames)))))
Theorem:
(defthm vl-warninglist-p-of-vl-modport-port-check-wellformed.warnings (b* (((mv ?warnings ?internalnames) (vl-modport-port-check-wellformed x ctx warnings internalnames))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm string-listp-of-vl-modport-port-check-wellformed.internalnames (b* (((mv ?warnings ?internalnames) (vl-modport-port-check-wellformed x ctx warnings internalnames))) (string-listp internalnames)) :rule-classes :rewrite)
Theorem:
(defthm vl-modport-port-check-wellformed-of-vl-modport-port-fix-x (equal (vl-modport-port-check-wellformed (vl-modport-port-fix x) ctx warnings internalnames) (vl-modport-port-check-wellformed x ctx warnings internalnames)))
Theorem:
(defthm vl-modport-port-check-wellformed-vl-modport-port-equiv-congruence-on-x (implies (vl-modport-port-equiv x x-equiv) (equal (vl-modport-port-check-wellformed x ctx warnings internalnames) (vl-modport-port-check-wellformed x-equiv ctx warnings internalnames))) :rule-classes :congruence)
Theorem:
(defthm vl-modport-port-check-wellformed-of-vl-modport-fix-ctx (equal (vl-modport-port-check-wellformed x (vl-modport-fix ctx) warnings internalnames) (vl-modport-port-check-wellformed x ctx warnings internalnames)))
Theorem:
(defthm vl-modport-port-check-wellformed-vl-modport-equiv-congruence-on-ctx (implies (vl-modport-equiv ctx ctx-equiv) (equal (vl-modport-port-check-wellformed x ctx warnings internalnames) (vl-modport-port-check-wellformed x ctx-equiv warnings internalnames))) :rule-classes :congruence)
Theorem:
(defthm vl-modport-port-check-wellformed-of-vl-warninglist-fix-warnings (equal (vl-modport-port-check-wellformed x ctx (vl-warninglist-fix warnings) internalnames) (vl-modport-port-check-wellformed x ctx warnings internalnames)))
Theorem:
(defthm vl-modport-port-check-wellformed-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-modport-port-check-wellformed x ctx warnings internalnames) (vl-modport-port-check-wellformed x ctx warnings-equiv internalnames))) :rule-classes :congruence)
Theorem:
(defthm vl-modport-port-check-wellformed-of-string-list-fix-internalnames (equal (vl-modport-port-check-wellformed x ctx warnings (string-list-fix internalnames)) (vl-modport-port-check-wellformed x ctx warnings internalnames)))
Theorem:
(defthm vl-modport-port-check-wellformed-string-list-equiv-congruence-on-internalnames (implies (str::string-list-equiv internalnames internalnames-equiv) (equal (vl-modport-port-check-wellformed x ctx warnings internalnames) (vl-modport-port-check-wellformed x ctx warnings internalnames-equiv))) :rule-classes :congruence)