(vl-unparam-classlist x elabindex ledger warnings &key (config 'config)) → (mv successp warnings map keylist new-elabindex ledger)
Function:
(defun vl-unparam-classlist-fn (x elabindex ledger warnings config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (classname/paramslist-p x) (vl-unparam-ledger-p ledger) (vl-warninglist-p warnings) (vl-simpconfig-p config)))) (let ((__function__ 'vl-unparam-classlist)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv t (ok) nil nil elabindex (vl-unparam-ledger-fix ledger))) ((mv ok1 warnings name1 instkey1 elabindex ledger) (vl-unparam-class (car x) elabindex ledger warnings)) ((mv ok2 warnings map keylist elabindex ledger) (vl-unparam-classlist (cdr x) elabindex ledger warnings))) (mv (and ok1 ok2) warnings (hons-acons (classname/params-fix (car x)) name1 map) (if ok1 (cons instkey1 keylist) keylist) elabindex ledger))))
Theorem:
(defthm booleanp-of-vl-unparam-classlist.successp (b* (((mv ?successp ?warnings ?map ?keylist ?new-elabindex ?ledger) (vl-unparam-classlist-fn x elabindex ledger warnings config))) (booleanp successp)) :rule-classes :type-prescription)
Theorem:
(defthm vl-warninglist-p-of-vl-unparam-classlist.warnings (b* (((mv ?successp ?warnings ?map ?keylist ?new-elabindex ?ledger) (vl-unparam-classlist-fn x elabindex ledger warnings config))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm classname/params-unparam-map-p-of-vl-unparam-classlist.map (b* (((mv ?successp ?warnings ?map ?keylist ?new-elabindex ?ledger) (vl-unparam-classlist-fn x elabindex ledger warnings config))) (classname/params-unparam-map-p map)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-instkeylist-p-of-vl-unparam-classlist.keylist (b* (((mv ?successp ?warnings ?map ?keylist ?new-elabindex ?ledger) (vl-unparam-classlist-fn x elabindex ledger warnings config))) (vl-unparam-instkeylist-p keylist)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-ledger-p-of-vl-unparam-classlist.ledger (b* (((mv ?successp ?warnings ?map ?keylist ?new-elabindex ?ledger) (vl-unparam-classlist-fn x elabindex ledger warnings config))) (vl-unparam-ledger-p ledger)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-classlist-fn-of-classname/paramslist-fix-x (equal (vl-unparam-classlist-fn (classname/paramslist-fix x) elabindex ledger warnings config) (vl-unparam-classlist-fn x elabindex ledger warnings config)))
Theorem:
(defthm vl-unparam-classlist-fn-classname/paramslist-equiv-congruence-on-x (implies (classname/paramslist-equiv x x-equiv) (equal (vl-unparam-classlist-fn x elabindex ledger warnings config) (vl-unparam-classlist-fn x-equiv elabindex ledger warnings config))) :rule-classes :congruence)
Theorem:
(defthm vl-unparam-classlist-fn-of-vl-unparam-ledger-fix-ledger (equal (vl-unparam-classlist-fn x elabindex (vl-unparam-ledger-fix ledger) warnings config) (vl-unparam-classlist-fn x elabindex ledger warnings config)))
Theorem:
(defthm vl-unparam-classlist-fn-vl-unparam-ledger-equiv-congruence-on-ledger (implies (vl-unparam-ledger-equiv ledger ledger-equiv) (equal (vl-unparam-classlist-fn x elabindex ledger warnings config) (vl-unparam-classlist-fn x elabindex ledger-equiv warnings config))) :rule-classes :congruence)
Theorem:
(defthm vl-unparam-classlist-fn-of-vl-warninglist-fix-warnings (equal (vl-unparam-classlist-fn x elabindex ledger (vl-warninglist-fix warnings) config) (vl-unparam-classlist-fn x elabindex ledger warnings config)))
Theorem:
(defthm vl-unparam-classlist-fn-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-unparam-classlist-fn x elabindex ledger warnings config) (vl-unparam-classlist-fn x elabindex ledger warnings-equiv config))) :rule-classes :congruence)
Theorem:
(defthm vl-unparam-classlist-fn-of-vl-simpconfig-fix-config (equal (vl-unparam-classlist-fn x elabindex ledger warnings (vl-simpconfig-fix config)) (vl-unparam-classlist-fn x elabindex ledger warnings config)))
Theorem:
(defthm vl-unparam-classlist-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-unparam-classlist-fn x elabindex ledger warnings config) (vl-unparam-classlist-fn x elabindex ledger warnings config-equiv))) :rule-classes :congruence)