(vl-scopeinfo-resolve-params x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings &key (config 'config)) → (mv successp warnings final-params elabindex)
Function:
(defun vl-scopeinfo-resolve-params-fn (x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (vl-paramdecloverridelist-p x) (vl-scopeinfo-p scopeinfo) (vl-scopestack-p outer-ss) (vl-elabtraversal-p outer-scope-path) (vl-paramdecllist-p final-params-acc) (vl-warninglist-p warnings) (vl-simpconfig-p config)))) (let ((__function__ 'vl-scopeinfo-resolve-params)) (declare (ignorable __function__)) (b* ((outside-module-ss (vl-elabindex->ss)) (elabindex (vl-elabindex-update-ss (vl-scopestack-push (vl-scopeinfo-fix scopeinfo) outside-module-ss) elabindex)) ((when (atom x)) (mv t (ok) (revappend-without-guard (vl-paramdecllist-fix final-params-acc) nil) elabindex)) ((vl-paramdecloverride x1) (car x)) (warnings (ok)) ((mv ok warnings final-paramdecl elabindex) (vl-override-parameter x1.decl elabindex x1.override outer-ss outer-scope-path warnings)) ((vl-scopeinfo scopeinfo)) (new-scopeinfo (if ok (change-vl-scopeinfo scopeinfo :locals (hons-acons (vl-paramdecl->name final-paramdecl) final-paramdecl scopeinfo.locals)) scopeinfo)) (elabindex (vl-elabindex-update-ss outside-module-ss elabindex))) (vl-scopeinfo-resolve-params (cdr x) new-scopeinfo elabindex outer-ss outer-scope-path (cons final-paramdecl final-params-acc) warnings))))
Theorem:
(defthm vl-warninglist-p-of-vl-scopeinfo-resolve-params.warnings (b* (((mv ?successp ?warnings ?final-params ?elabindex) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-paramdecllist-p-of-vl-scopeinfo-resolve-params.final-params (b* (((mv ?successp ?warnings ?final-params ?elabindex) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config))) (vl-paramdecllist-p final-params)) :rule-classes :rewrite)
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-of-vl-paramdecloverridelist-fix-x (equal (vl-scopeinfo-resolve-params-fn (vl-paramdecloverridelist-fix x) scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config)))
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-vl-paramdecloverridelist-equiv-congruence-on-x (implies (vl-paramdecloverridelist-equiv x x-equiv) (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x-equiv scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config))) :rule-classes :congruence)
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-of-vl-scopeinfo-fix-scopeinfo (equal (vl-scopeinfo-resolve-params-fn x (vl-scopeinfo-fix scopeinfo) elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config)))
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-vl-scopeinfo-equiv-congruence-on-scopeinfo (implies (vl-scopeinfo-equiv scopeinfo scopeinfo-equiv) (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo-equiv elabindex outer-ss outer-scope-path final-params-acc warnings config))) :rule-classes :congruence)
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-of-vl-scopestack-fix-outer-ss (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex (vl-scopestack-fix outer-ss) outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config)))
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-vl-scopestack-equiv-congruence-on-outer-ss (implies (vl-scopestack-equiv outer-ss outer-ss-equiv) (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss-equiv outer-scope-path final-params-acc warnings config))) :rule-classes :congruence)
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-of-vl-elabtraversal-fix-outer-scope-path (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss (vl-elabtraversal-fix outer-scope-path) final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config)))
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-vl-elabtraversal-equiv-congruence-on-outer-scope-path (implies (vl-elabtraversal-equiv outer-scope-path outer-scope-path-equiv) (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path-equiv final-params-acc warnings config))) :rule-classes :congruence)
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-of-vl-paramdecllist-fix-final-params-acc (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path (vl-paramdecllist-fix final-params-acc) warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config)))
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-vl-paramdecllist-equiv-congruence-on-final-params-acc (implies (vl-paramdecllist-equiv final-params-acc final-params-acc-equiv) (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc-equiv warnings config))) :rule-classes :congruence)
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-of-vl-warninglist-fix-warnings (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc (vl-warninglist-fix warnings) config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config)))
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings-equiv config))) :rule-classes :congruence)
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-of-vl-simpconfig-fix-config (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings (vl-simpconfig-fix config)) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config)))
Theorem:
(defthm vl-scopeinfo-resolve-params-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config) (vl-scopeinfo-resolve-params-fn x scopeinfo elabindex outer-ss outer-scope-path final-params-acc warnings config-equiv))) :rule-classes :congruence)