Repository navigation
feat: stopped processes, minima, mixtures and optional continuation of test supermartingales - #391
Merged
lmlexplore-automation[bot] merged 4 commits intoNov 14, 2026
Conversation
…f test supermartingales Co-Authored-By: Claude Code <noreply@github.com>
RemyDegenne
commented
Nov 14, 2026
RemyDegenne
commented
Nov 14, 2026
RemyDegenne
commented
Nov 14, 2026
RemyDegenne
commented
Nov 14, 2026
Contributor
Author
AI review — approvedEach rubric is judged independently by multiple review agents; the PR merges only once every rubric is green — any rubric that is not green (changes requested, blocked, errored, stale, or not yet run) blocks the merge. See the rubrics.
♻️ = approved on an earlier commit, re-run before merge. Reviewing this diff at head |
- Move `Adapted.stoppedProcess_of_discrete` to `Probability/Process/Stopping.lean` and restore the narrower import of `Probability/Process/Adapted.lean`. - Make `adapted_lintegral` public in `Probability/Process/Adapted.lean`, for any preorder index. - Weaken `IsTestMartingale.stoppedProcess_mul` to an adapted `B` with martingale steps, replace `IsTestMartingale.setLIntegral_mul_succ_eq` by `Adapted.setLIntegral_mul_succ_eq`, and derive `IsTestMartingale.stoppedProcess` as the case `B = 1`. - Fix the module and mixture docstrings. Co-Authored-By: Claude Code <noreply@github.com>
Add setLIntegral_mul_le_setLIntegral_mul_of_forall_setLIntegral_le and its _eq twin in MeasureTheory/Measure/WithDensity.lean, make IsENNSupermartingale.setLIntegral_mul_succ_le a one-line use of the first, and replace the misplaced Adapted.setLIntegral_mul_succ_eq by a direct use of the second in IsTestMartingale.stoppedProcess_mul. Co-Authored-By: Claude Code <noreply@github.com>
…cstring Drop the unproved claim that the closure properties transfer to e-processes. Co-Authored-By: Claude Code <noreply@github.com>
Merged
via the queue into
LeanMachineLearning:main
with commit Nov 14, 2026
dbc2bc0
23 of 25 checks passed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR completes the EValues Layer 2.1 milestone, Conditional e-variables, test supermartingales and wealth, with its last bullet: mixtures of a measurable family of test supermartingales over a probability measure, minima of two test supermartingales, stopped processes, and optional continuation [RW, Proposition 7.9]. It extends
EValues/TestSupermartingale.lean(merged in #385) and keeps its conventions:ℝ≥0∞values, set integrals, any filtration indexed byℕ, any nullS : Set (Measure Ω), and the namespaceProbabilityTheory.Roadmap: EValues
The new declarations:
ℱ n-measurableYands:IsENNSupermartingale.setLIntegral_mul_succ_le:∫⁻ ω in s, Y ω * M (n + 1) ω ∂P ≤ ∫⁻ ω in s, Y ω * M n ω ∂P.MeasureTheory.setLIntegral_mul_le_setLIntegral_mul_of_forall_setLIntegral_le, added toMeasureTheory/Measure/WithDensity.leanwith its twin…setLIntegral_mul_eq_setLIntegral_mul_of_forall_setLIntegral_eq. They are the set-integral forms of the existinglintegral_mul_{le,eq}_lintegral_mul_of_forall_setLIntegral_{le,eq}, for any sub-σ-algebram,m-measurableYands, and a.e.-measurable densities. The_eqlemma gives the martingale step ofIsTestMartingale.stoppedProcess_muldirectly.IsENNSupermartingale.inf:IsENNSupermartingale (M ⊓ N), named after Mathlib'sSubmartingale.sup.IsTestSupermartingale.inf: the minimum of a test supermartingale and anyℝ≥0∞-valued supermartingale is a test supermartingale, so in particular the minimum of two test supermartingales is one.τ : Ω → WithTop ℕand a processBwithB n = 1whenevern ≤ τ. ThenstoppedProcess A τ * Bis:ℝ≥0∞-supermartingale (IsENNSupermartingale.stoppedProcess_mul);Ais one andBis only anℝ≥0∞-valued supermartingale (IsTestSupermartingale.stoppedProcess_mul);Ais one andBis only adapted with martingale steps under everyP ∈ S(IsTestMartingale.stoppedProcess_mul). Asking forIsTestMartingale Bwould forceP univ ≤ 1, sinceB 0 = 1.ℱ n-measurable event{τ ≤ n}, as [RW] does. A single private lemma handles that split for both the supermartingale and the martingale versions.IsENNSupermartingale.stoppedProcess,IsTestSupermartingale.stoppedProcess,IsTestMartingale.stoppedProcess.B = 1.ℝ≥0∞, no integrability hypothesis):isENNSupermartingale_lintegral(any s-finiteπ),isTestSupermartingale_lintegralandisTestMartingale_lintegral(probabilityπ).M : Θ → ℕ → Ω → ℝ≥0∞with(θ, ω) ↦ M θ n ωmeasurable formΘ.prod (ℱ n), under every s-finite member of the null.MeasureTheory.Adapted.stoppedProcess_of_discrete, inProbability/Process/Stopping.lean. It is the measurable (Adapted) form of Mathlib'sStronglyAdapted.stoppedProcess_of_discrete, for second-countable pseudo-metrizable Borel value spaces. It goes throughAdapted.stronglyAdapted.MeasureTheory.adapted_lintegral, inProbability/Process/Adapted.lean: the mixturei ↦ ∫⁻ θ, M θ i · ∂πover an s-finiteπis adapted, for a filtration indexed by any preorder, when(θ, ω) ↦ M θ i ωis measurable formΘ.prod (f i). That file now also importsMathlib.MeasureTheory.Measure.Prod.Reuse: I searched the pinned Mathlib, Tau Ceti, LML, Statlib and
LMLExplore/for stopped, minimum and mixture closure ofℝ≥0∞-valued supermartingales, and for anAdapted(non-strong) stopped-process lemma. None exist. Mathlib'sSubmartingale.stoppedProcessandSupermartingaleAPI are real-valued and need integrability. Tau Ceti'sstoppedProcess_botcovers the time-0value. I use Mathlib's conditionalstoppedProcess_eq_of_leinsimpinstead, which needs no⊥ = 0conversion; an earlier private copy of that fact was dropped. The proofs use Mathlib'slintegral_inter_add_sdiff,setLIntegral_congr_fun,lintegral_lintegral_swap,Measurable.lintegral_prod_left',MeasurableSpace.prod_monoandstoppedProcess_eq_of_le/_of_ge. No proof is longer than 25 lines. No public declaration is removed or renamed.Milestone: EValues Layer 2.1. With this PR every bullet of Layer 2.1 is covered. Layer 2.2 (convergence and optional stopping in
ℝ≥0∞at stopping times inWithTop ℕ) comes next: it needs the stopped processes added here for its bounded-time step. The closure properties of e-processes in Layer 3.2 (minima, mixtures over measurable families, optional continuation) need the mixtures, minima and optional continuation, through the domination of e-processes by test supermartingales.Local checks (not CI):
tauceti-local-checks verify --policy ordinaryexited 0 on the current head.scope: scoped: against c6fc99ce9e747a4f7bdc32e73152e58a20048a09lake build --iofailsucceeded (8589 jobs).local-axioms: checked 4 changed module(s), 89 declaration(s); 0 violation(s)🤖 Prepared with Claude Code