(vl-importlist-find-implicit-item name x design) → (mv package item)
Function:
(defun vl-importlist-find-implicit-item (name x design) (declare (xargs :guard (and (stringp name) (vl-importlist-p x) (vl-maybe-design-p design)))) (let ((__function__ 'vl-importlist-find-implicit-item)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv nil nil)) ((vl-import x1) (car x)) ((unless (eq x1.part :vl-import*)) (vl-importlist-find-implicit-item name (cdr x) design)) (package (and design (vl-design-scope-find-package x1.pkg design))) ((unless package) (mv x1.pkg nil)) (item (vl-package-scope-find-item (string-fix name) package))) (if item (mv x1.pkg item) (vl-importlist-find-implicit-item name (cdr x) design)))))
Theorem:
(defthm return-type-of-vl-importlist-find-implicit-item.package (b* (((mv common-lisp::?package ?item) (vl-importlist-find-implicit-item name x design))) (iff (stringp package) package)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-vl-importlist-find-implicit-item.item (b* (((mv common-lisp::?package ?item) (vl-importlist-find-implicit-item name x design))) (iff (vl-scopeitem-p item) item)) :rule-classes :rewrite)
Theorem:
(defthm maybe-string-type-of-vl-importlist-find-implicit-item-package (b* (((mv common-lisp::?package ?item) (vl-importlist-find-implicit-item name x design))) (or (stringp package) (not package))) :rule-classes :type-prescription)
Theorem:
(defthm vl-importlist-find-implicit-item-of-str-fix-name (equal (vl-importlist-find-implicit-item (str-fix name) x design) (vl-importlist-find-implicit-item name x design)))
Theorem:
(defthm vl-importlist-find-implicit-item-streqv-congruence-on-name (implies (streqv name name-equiv) (equal (vl-importlist-find-implicit-item name x design) (vl-importlist-find-implicit-item name-equiv x design))) :rule-classes :congruence)
Theorem:
(defthm vl-importlist-find-implicit-item-of-vl-importlist-fix-x (equal (vl-importlist-find-implicit-item name (vl-importlist-fix x) design) (vl-importlist-find-implicit-item name x design)))
Theorem:
(defthm vl-importlist-find-implicit-item-vl-importlist-equiv-congruence-on-x (implies (vl-importlist-equiv x x-equiv) (equal (vl-importlist-find-implicit-item name x design) (vl-importlist-find-implicit-item name x-equiv design))) :rule-classes :congruence)
Theorem:
(defthm vl-importlist-find-implicit-item-of-vl-maybe-design-fix-design (equal (vl-importlist-find-implicit-item name x (vl-maybe-design-fix design)) (vl-importlist-find-implicit-item name x design)))
Theorem:
(defthm vl-importlist-find-implicit-item-vl-maybe-design-equiv-congruence-on-design (implies (vl-maybe-design-equiv design design-equiv) (equal (vl-importlist-find-implicit-item name x design) (vl-importlist-find-implicit-item name x design-equiv))) :rule-classes :congruence)