Repository navigation
feat: n observations are worth n times one when one observation attains the smallest relative entropy #421
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
lmlexplore-automation
merged 7 commits into
LeanMachineLearning:main
from
RemyDegenne:evr/growth-single-letter
Nov 15, 2026
+116
−0
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
d6db50c
feat: n observations are worth n times one when one observation attai…
RemyDegenne 363193d
fix: general forms under bipolarRate ≤ maxLogGrowth 1, reuse iterated…
RemyDegenne 136dbdf
doc: state precisely what the weaker bipolar-rate hypothesis gives
RemyDegenne 225a577
refactor: place the general growth bounds next to their neighbours in…
RemyDegenne e214833
Merge remote-tracking branch 'origin/main' into evr/growth-single-letter
RemyDegenne f8046a0
fix: import BipolarRate.Basic after its move on main
RemyDegenne f7b3921
doc: state the probability-measure null in the SingleLetter module do…
RemyDegenne File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
|
RemyDegenne marked this conversation as resolved.
Resolved
RemyDegenne marked this conversation as resolved.
Resolved
RemyDegenne marked this conversation as resolved.
Resolved
RemyDegenne marked this conversation as resolved.
Resolved
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| /- | ||
| Copyright (c) 2026 LMLExplore contributors. All rights reserved. | ||
| Released under Apache 2.0 license as described in the file LICENSE. | ||
| Authors: LMLExplore contributors | ||
| -/ | ||
| module | ||
|
|
||
| public import LMLExplore.EValues.BipolarRate.Basic | ||
|
|
||
| /-! | ||
| # When one observation attains the smallest relative entropy | ||
|
|
||
| For a probability measure `Q₁` and a null `S₁` of probability measures on a measurable space, | ||
| the maximal expected logarithm `maxLogGrowth Q₁ S₁ n` of an `n`-sample e-variable is at least `n` | ||
| times that of one observation, by superadditivity, and at most `n` times the smallest relative | ||
| entropy from `Q₁` to the null. If one observation already attains the smallest relative entropy, | ||
| that is, if `⨅ P ∈ S₁, klDiv Q₁ P ≤ maxLogGrowth Q₁ S₁ 1`, the three quantities agree: for every | ||
| `n ≠ 0`, `n` observations are worth exactly `n` times one, and the bipolar rate is the smallest | ||
| relative entropy [EVR26, Note 11, Theorem 9]. No semicontinuity, convexity or compactness of the | ||
| null is assumed. The weaker hypothesis `bipolarRate Q₁ S₁ ≤ maxLogGrowth Q₁ S₁ 1` already gives | ||
| `bipolarRate Q₁ S₁ = maxLogGrowth Q₁ S₁ 1` for any null and, for a null of finite measures, | ||
| `maxLogGrowth Q₁ S₁ n = n * maxLogGrowth Q₁ S₁ 1` for `n ≠ 0`. | ||
|
|
||
| For a weakly compact convex null the hypothesis holds [RR26, Proposition 4.5]. | ||
|
|
||
| ## Main statements | ||
|
|
||
| * `ProbabilityTheory.bipolarRate_eq_maxLogGrowth_one_of_le`: if the bipolar rate is at most the | ||
| growth of one observation, the two are equal. | ||
| * `ProbabilityTheory.maxLogGrowth_eq_mul_of_bipolarRate_le`: if the bipolar rate is at most the | ||
| growth of one observation, then `maxLogGrowth Q₁ S₁ n = n * maxLogGrowth Q₁ S₁ 1` for `n ≠ 0`. | ||
| * `ProbabilityTheory.bipolarRate_eq_iInf_klDiv_of_iInf_klDiv_le_maxLogGrowth_one`: if one | ||
| observation attains the smallest relative entropy, the bipolar rate is the smallest relative | ||
| entropy [EVR26, Note 11, Theorem 9]. | ||
| * `ProbabilityTheory.maxLogGrowth_eq_mul_of_iInf_klDiv_le_maxLogGrowth_one`: and then | ||
| `maxLogGrowth Q₁ S₁ n = n * maxLogGrowth Q₁ S₁ 1` for `n ≠ 0` [EVR26, Note 11, Theorem 9]. | ||
|
|
||
| ## References | ||
|
|
||
| * [EVR26] *Answers to open questions in e-values and anytime-valid inference*, Note 11, and its | ||
| Lean library `EValuesResearch`, github.com/RemyDegenne/evalues_research, 2026. | ||
| * [RR26] A. Ram and A. Ramdas, *The optimal betting wealth growth rate*, arXiv:2604.25280v1. | ||
| -/ | ||
|
|
||
| public section | ||
|
|
||
| open MeasureTheory InformationTheory | ||
| open scoped ENNReal | ||
|
|
||
| namespace ProbabilityTheory | ||
|
|
||
| variable {𝓧 : Type*} {m𝓧 : MeasurableSpace 𝓧} {Q₁ : Measure 𝓧} {S₁ : Set (Measure 𝓧)} {n : ℕ} | ||
|
|
||
| /-- If the bipolar rate is at most the maximal expected logarithm of a one-observation | ||
| e-variable, the two are equal. -/ | ||
| theorem bipolarRate_eq_maxLogGrowth_one_of_le (h : bipolarRate Q₁ S₁ ≤ maxLogGrowth Q₁ S₁ 1) : | ||
| bipolarRate Q₁ S₁ = maxLogGrowth Q₁ S₁ 1 := | ||
| le_antisymm h (maxLogGrowth_one_le_bipolarRate Q₁ S₁) | ||
|
|
||
| /-- If the bipolar rate is at most the maximal expected logarithm of a one-observation | ||
| e-variable, then for `n ≠ 0`, `n` observations are worth `n` times one. -/ | ||
| theorem maxLogGrowth_eq_mul_of_bipolarRate_le (Q₁ : Measure 𝓧) [IsProbabilityMeasure Q₁] | ||
| (hS₁ : ∀ P ∈ S₁, IsFiniteMeasure P) (h : bipolarRate Q₁ S₁ ≤ maxLogGrowth Q₁ S₁ 1) | ||
| (hn : n ≠ 0) : maxLogGrowth Q₁ S₁ n = n * maxLogGrowth Q₁ S₁ 1 := | ||
| le_antisymm ((maxLogGrowth_le_mul_bipolarRate Q₁ S₁ hn).trans (by gcongr)) | ||
| (mul_maxLogGrowth_one_le Q₁ hS₁ n) | ||
|
|
||
| /-- If one observation attains the smallest relative entropy from `Q₁` to the null, the bipolar | ||
| rate is the maximal expected logarithm of a one-observation e-variable | ||
| [EVR26, Note 11, Theorem 9]. -/ | ||
| theorem bipolarRate_eq_maxLogGrowth_one_of_iInf_klDiv_le (Q₁ : Measure 𝓧) | ||
| [IsProbabilityMeasure Q₁] (hS₁ : ∀ P ∈ S₁, IsProbabilityMeasure P) | ||
| (h : ((⨅ P ∈ S₁, klDiv Q₁ P : ℝ≥0∞) : EReal) ≤ maxLogGrowth Q₁ S₁ 1) : | ||
| bipolarRate Q₁ S₁ = maxLogGrowth Q₁ S₁ 1 := | ||
| bipolarRate_eq_maxLogGrowth_one_of_le ((bipolarRate_le_iInf_klDiv Q₁ hS₁).trans h) | ||
|
|
||
| /-- If one observation attains the smallest relative entropy from `Q₁` to the null, the bipolar | ||
| rate is the smallest relative entropy [EVR26, Note 11, Theorem 9]. -/ | ||
| theorem bipolarRate_eq_iInf_klDiv_of_iInf_klDiv_le_maxLogGrowth_one (Q₁ : Measure 𝓧) | ||
| [IsProbabilityMeasure Q₁] (hS₁ : ∀ P ∈ S₁, IsProbabilityMeasure P) | ||
| (h : ((⨅ P ∈ S₁, klDiv Q₁ P : ℝ≥0∞) : EReal) ≤ maxLogGrowth Q₁ S₁ 1) : | ||
| bipolarRate Q₁ S₁ = ((⨅ P ∈ S₁, klDiv Q₁ P : ℝ≥0∞) : EReal) := | ||
| le_antisymm (bipolarRate_le_iInf_klDiv Q₁ hS₁) (h.trans (maxLogGrowth_one_le_bipolarRate Q₁ S₁)) | ||
|
|
||
| /-- If one observation attains the smallest relative entropy from `Q₁` to the null, then for | ||
| `n ≠ 0`, `n` observations are worth `n` times one: the maximal expected logarithm of an `n`-sample | ||
| e-variable is `n` times that of a one-observation e-variable. The common value may be infinite | ||
| [EVR26, Note 11, Theorem 9]. -/ | ||
| theorem maxLogGrowth_eq_mul_of_iInf_klDiv_le_maxLogGrowth_one (Q₁ : Measure 𝓧) | ||
| [IsProbabilityMeasure Q₁] (hS₁ : ∀ P ∈ S₁, IsProbabilityMeasure P) | ||
| (h : ((⨅ P ∈ S₁, klDiv Q₁ P : ℝ≥0∞) : EReal) ≤ maxLogGrowth Q₁ S₁ 1) (hn : n ≠ 0) : | ||
| maxLogGrowth Q₁ S₁ n = n * maxLogGrowth Q₁ S₁ 1 := | ||
| maxLogGrowth_eq_mul_of_bipolarRate_le Q₁ (fun P hP ↦ have := hS₁ P hP; inferInstance) | ||
| ((bipolarRate_le_iInf_klDiv Q₁ hS₁).trans h) hn | ||
|
|
||
| end ProbabilityTheory |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.