(vl-toplevel-signatures top-names warnings elabindex ledger &key (config 'config)) → (mv instkeys warnings new-elabindex ledger)
Function:
(defun vl-toplevel-signatures-fn (top-names warnings elabindex ledger config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (string-listp top-names) (vl-warninglist-p warnings) (vl-unparam-ledger-p ledger) (vl-simpconfig-p config)))) (let ((__function__ 'vl-toplevel-signatures)) (declare (ignorable __function__)) (b* (((vl-simpconfig config)) (top-names (case config.user-paramsettings-mode (:default (set-difference-equal (string-list-fix top-names) (alist-keys config.user-paramsettings))) (:include-toplevel (string-list-fix top-names)) (otherwise nil))) ((mv instkeys-user warnings elabindex ledger) (vl-user-signatures config.user-paramsettings t warnings elabindex ledger)) ((mv instkeys-top warnings elabindex ledger) (vl-user-signatures (vl-user-paramsettings-for-top-names top-names) nil warnings elabindex ledger))) (mv (append-without-guard instkeys-user instkeys-top) warnings elabindex ledger))))
Theorem:
(defthm vl-unparam-instkeylist-p-of-vl-toplevel-signatures.instkeys (b* (((mv ?instkeys ?warnings ?new-elabindex ?ledger) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config))) (vl-unparam-instkeylist-p instkeys)) :rule-classes :rewrite)
Theorem:
(defthm vl-warninglist-p-of-vl-toplevel-signatures.warnings (b* (((mv ?instkeys ?warnings ?new-elabindex ?ledger) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-ledger-p-of-vl-toplevel-signatures.ledger (b* (((mv ?instkeys ?warnings ?new-elabindex ?ledger) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config))) (vl-unparam-ledger-p ledger)) :rule-classes :rewrite)
Theorem:
(defthm vl-toplevel-signatures-fn-of-string-list-fix-top-names (equal (vl-toplevel-signatures-fn (string-list-fix top-names) warnings elabindex ledger config) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config)))
Theorem:
(defthm vl-toplevel-signatures-fn-string-list-equiv-congruence-on-top-names (implies (str::string-list-equiv top-names top-names-equiv) (equal (vl-toplevel-signatures-fn top-names warnings elabindex ledger config) (vl-toplevel-signatures-fn top-names-equiv warnings elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-toplevel-signatures-fn-of-vl-warninglist-fix-warnings (equal (vl-toplevel-signatures-fn top-names (vl-warninglist-fix warnings) elabindex ledger config) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config)))
Theorem:
(defthm vl-toplevel-signatures-fn-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-toplevel-signatures-fn top-names warnings elabindex ledger config) (vl-toplevel-signatures-fn top-names warnings-equiv elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-toplevel-signatures-fn-of-vl-unparam-ledger-fix-ledger (equal (vl-toplevel-signatures-fn top-names warnings elabindex (vl-unparam-ledger-fix ledger) config) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config)))
Theorem:
(defthm vl-toplevel-signatures-fn-vl-unparam-ledger-equiv-congruence-on-ledger (implies (vl-unparam-ledger-equiv ledger ledger-equiv) (equal (vl-toplevel-signatures-fn top-names warnings elabindex ledger config) (vl-toplevel-signatures-fn top-names warnings elabindex ledger-equiv config))) :rule-classes :congruence)
Theorem:
(defthm vl-toplevel-signatures-fn-of-vl-simpconfig-fix-config (equal (vl-toplevel-signatures-fn top-names warnings elabindex ledger (vl-simpconfig-fix config)) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config)))
Theorem:
(defthm vl-toplevel-signatures-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-toplevel-signatures-fn top-names warnings elabindex ledger config) (vl-toplevel-signatures-fn top-names warnings elabindex ledger config-equiv))) :rule-classes :congruence)