(vl-user-signatures settings really-user-p warnings elabindex ledger &key (config 'config)) → (mv instkeys warnings new-elabindex ledger)
Function:
(defun vl-user-signatures-fn (settings really-user-p warnings elabindex ledger config) (declare (xargs :stobjs (elabindex))) (declare (xargs :guard (and (vl-user-paramsettings-p settings) (vl-warninglist-p warnings) (vl-unparam-ledger-p ledger) (vl-simpconfig-p config)))) (let ((__function__ 'vl-user-signatures)) (declare (ignorable __function__)) (if (atom settings) (mv nil (vl-warninglist-fix warnings) elabindex (vl-unparam-ledger-fix ledger)) (b* (((mv ?ok instkeys1 warnings elabindex ledger) (vl-user-signature (car settings) really-user-p warnings elabindex ledger)) ((mv instkeys warnings elabindex ledger) (vl-user-signatures (cdr settings) really-user-p warnings elabindex ledger))) (mv (append-without-guard instkeys1 instkeys) warnings elabindex ledger)))))
Theorem:
(defthm vl-unparam-instkeylist-p-of-vl-user-signatures.instkeys (b* (((mv ?instkeys ?warnings ?new-elabindex ?ledger) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config))) (vl-unparam-instkeylist-p instkeys)) :rule-classes :rewrite)
Theorem:
(defthm vl-warninglist-p-of-vl-user-signatures.warnings (b* (((mv ?instkeys ?warnings ?new-elabindex ?ledger) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm vl-unparam-ledger-p-of-vl-user-signatures.ledger (b* (((mv ?instkeys ?warnings ?new-elabindex ?ledger) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config))) (vl-unparam-ledger-p ledger)) :rule-classes :rewrite)
Theorem:
(defthm vl-user-signatures-fn-of-vl-user-paramsettings-fix-settings (equal (vl-user-signatures-fn (vl-user-paramsettings-fix settings) really-user-p warnings elabindex ledger config) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config)))
Theorem:
(defthm vl-user-signatures-fn-vl-user-paramsettings-equiv-congruence-on-settings (implies (vl-user-paramsettings-equiv settings settings-equiv) (equal (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config) (vl-user-signatures-fn settings-equiv really-user-p warnings elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-user-signatures-fn-of-vl-warninglist-fix-warnings (equal (vl-user-signatures-fn settings really-user-p (vl-warninglist-fix warnings) elabindex ledger config) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config)))
Theorem:
(defthm vl-user-signatures-fn-vl-warninglist-equiv-congruence-on-warnings (implies (vl-warninglist-equiv warnings warnings-equiv) (equal (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config) (vl-user-signatures-fn settings really-user-p warnings-equiv elabindex ledger config))) :rule-classes :congruence)
Theorem:
(defthm vl-user-signatures-fn-of-vl-unparam-ledger-fix-ledger (equal (vl-user-signatures-fn settings really-user-p warnings elabindex (vl-unparam-ledger-fix ledger) config) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config)))
Theorem:
(defthm vl-user-signatures-fn-vl-unparam-ledger-equiv-congruence-on-ledger (implies (vl-unparam-ledger-equiv ledger ledger-equiv) (equal (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger-equiv config))) :rule-classes :congruence)
Theorem:
(defthm vl-user-signatures-fn-of-vl-simpconfig-fix-config (equal (vl-user-signatures-fn settings really-user-p warnings elabindex ledger (vl-simpconfig-fix config)) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config)))
Theorem:
(defthm vl-user-signatures-fn-vl-simpconfig-equiv-congruence-on-config (implies (vl-simpconfig-equiv config config-equiv) (equal (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config) (vl-user-signatures-fn settings really-user-p warnings elabindex ledger config-equiv))) :rule-classes :congruence)