(vl-check-portdecl-overlap-compatible portdecls ss) → warnings
Function:
(defun vl-check-portdecl-overlap-compatible (portdecls ss) (declare (xargs :guard (and (vl-portdecllist-p portdecls) (vl-scopestack-p ss)))) (let ((__function__ 'vl-check-portdecl-overlap-compatible)) (declare (ignorable __function__)) (b* (((when (atom portdecls)) nil) (warnings (vl-check-portdecl-overlap-compatible (cdr portdecls) ss)) ((vl-portdecl decl1) (vl-portdecl-fix (car portdecls))) (item1 (vl-scopestack-find-item decl1.name ss)) ((unless item1) (fatal :type :vl-programming-error :msg "~a0: port ~s1 has no corresponding variable declaration. ~ Thought this should never happen." :args (list decl1 decl1.name)))) warnings)))
Theorem:
(defthm vl-warninglist-p-of-vl-check-portdecl-overlap-compatible (b* ((warnings (vl-check-portdecl-overlap-compatible portdecls ss))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-check-portdecl-overlap-compatible-of-vl-portdecllist-fix-portdecls (equal (vl-check-portdecl-overlap-compatible (vl-portdecllist-fix portdecls) ss) (vl-check-portdecl-overlap-compatible portdecls ss)))
Theorem:
(defthm vl-check-portdecl-overlap-compatible-vl-portdecllist-equiv-congruence-on-portdecls (implies (vl-portdecllist-equiv portdecls portdecls-equiv) (equal (vl-check-portdecl-overlap-compatible portdecls ss) (vl-check-portdecl-overlap-compatible portdecls-equiv ss))) :rule-classes :congruence)
Theorem:
(defthm vl-check-portdecl-overlap-compatible-of-vl-scopestack-fix-ss (equal (vl-check-portdecl-overlap-compatible portdecls (vl-scopestack-fix ss)) (vl-check-portdecl-overlap-compatible portdecls ss)))
Theorem:
(defthm vl-check-portdecl-overlap-compatible-vl-scopestack-equiv-congruence-on-ss (implies (vl-scopestack-equiv ss ss-equiv) (equal (vl-check-portdecl-overlap-compatible portdecls ss) (vl-check-portdecl-overlap-compatible portdecls ss-equiv))) :rule-classes :congruence)