(vl-design-scope-find-definition name scope) → item
Function:
(defun vl-design-scope-find-definition (name scope) (declare (xargs :guard (and (stringp name) (vl-design-p scope)))) (let ((__function__ 'vl-design-scope-find-definition)) (declare (ignorable __function__)) (b* (((vl-design scope)) (?name (string-fix name))) (or (vl-find-module name scope.mods) (vl-find-udp name scope.udps) (vl-find-interface name scope.interfaces) (vl-find-program name scope.programs) (vl-find-class name scope.classes)))))
Theorem:
(defthm return-type-of-vl-design-scope-find-definition (b* ((item (vl-design-scope-find-definition name scope))) (iff (vl-scopedef-p item) item)) :rule-classes :rewrite)
Theorem:
(defthm vl-design-scope-find-definition-of-str-fix-name (equal (vl-design-scope-find-definition (str-fix name) scope) (vl-design-scope-find-definition name scope)))
Theorem:
(defthm vl-design-scope-find-definition-streqv-congruence-on-name (implies (streqv name name-equiv) (equal (vl-design-scope-find-definition name scope) (vl-design-scope-find-definition name-equiv scope))) :rule-classes :congruence)
Theorem:
(defthm vl-design-scope-find-definition-of-vl-design-fix-scope (equal (vl-design-scope-find-definition name (vl-design-fix scope)) (vl-design-scope-find-definition name scope)))
Theorem:
(defthm vl-design-scope-find-definition-vl-design-equiv-congruence-on-scope (implies (vl-design-equiv scope scope-equiv) (equal (vl-design-scope-find-definition name scope) (vl-design-scope-find-definition name scope-equiv))) :rule-classes :congruence)