Make a fast lookup table for items in a scope. Memoized
(vl-scope->scopeinfo scope design) → scopeinfo
Function:
(defun vl-scope->scopeinfo (scope design) (declare (xargs :guard (and (vl-scope-p scope) (vl-maybe-design-p design)))) (let ((__function__ 'vl-scope->scopeinfo)) (declare (ignorable __function__)) (vl-scopeinfo-make-fast (vl-scope->scopeinfo-aux scope design))))
Theorem:
(defthm vl-scopeinfo-p-of-vl-scope->scopeinfo (b* ((scopeinfo (vl-scope->scopeinfo scope design))) (vl-scopeinfo-p scopeinfo)) :rule-classes :rewrite)
Theorem:
(defthm vl-scope->scopeinfo-correct (implies (stringp name) (equal (vl-scopeinfo-find-item name (vl-scope->scopeinfo scope design) design) (vl-scope-find-item name scope design))))
Theorem:
(defthm vl-scope->scopeinfo-of-vl-scope-fix-scope (equal (vl-scope->scopeinfo (vl-scope-fix scope) design) (vl-scope->scopeinfo scope design)))
Theorem:
(defthm vl-scope->scopeinfo-vl-scope-equiv-congruence-on-scope (implies (vl-scope-equiv scope scope-equiv) (equal (vl-scope->scopeinfo scope design) (vl-scope->scopeinfo scope-equiv design))) :rule-classes :congruence)
Theorem:
(defthm vl-scope->scopeinfo-of-vl-maybe-design-fix-design (equal (vl-scope->scopeinfo scope (vl-maybe-design-fix design)) (vl-scope->scopeinfo scope design)))
Theorem:
(defthm vl-scope->scopeinfo-vl-maybe-design-equiv-congruence-on-design (implies (vl-maybe-design-equiv design design-equiv) (equal (vl-scope->scopeinfo scope design) (vl-scope->scopeinfo scope design-equiv))) :rule-classes :congruence)