feat: the pathwise variation process - #494
Merged
Merged
Conversation
Add `variationProcess X a`: at time `t` and outcome `ω`, the total variation of the path `s ↦ X s ω` on `[a, t]`, defined as `(eVariationOn (X · ω) (Set.Icc a t)).toReal`. Since `Set.Icc a t` is empty for `t < a`, the process vanishes below `a`, which makes it adapted without assuming the index type has a bottom element. API: * `variationProcess_nonneg`, `variationProcess_of_le`; * `monotone_variationProcess`; * `continuous_variationProcess`, with one-sided `continuousWithinAt_*`; * `MeasureTheory.StronglyAdapted.variationProcess` (adaptedness); * `isStronglyProgressive_variationProcess`. This is the process used in Kallenberg, Proposition 18.2, to reduce a continuous local martingale of locally finite variation to a bounded-variation stopping argument. Split out of RemyDegenne#490 for review; the file depends only on Mathlib. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Redefine `variationProcess X a t ω` as `variationOnFromTo (X · ω) Set.univ a t` (signed) instead of the clamped `(eVariationOn (Set.Icc a t)).toReal`. Consequences: * `variationProcess_nonneg` and `variationProcess_eq_toReal_eVariationOn_Icc` now require `a ≤ t`; * continuity and monotonicity become uniform (no `a`-vs-point case split); * adaptedness is stated pointwise as `MeasureTheory.StronglyAdapted.stronglyMeasurable_variationProcess` for `a ≤ t` (global `StronglyAdapted` no longer holds: below `a` the value depends on the path over `[t, a]`); * progressive measurability is deferred (see the TODO in the module doc). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
`Set` is already open; remove `Finset` from the `open` list (it is only used qualified, as `Finset.range`/`Finset.sum`) so `Icc`, `univ`, `Iic`, … resolve to `Set` without the prefix. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Since `variationProcess X a · ω = variationOnFromTo (X · ω) univ a`, right-continuity is exactly Mathlib's `BoundedVariationOn.continuousWithinAt_variationOnFromTo_Ici`, so `continuousWithinAt_variationProcess_Ici` becomes a one-liner. This requires the continuity hypotheses to be the global `BoundedVariationOn univ` that lemma takes (rather than `LocallyBoundedVariationOn`); the left-continuity proof then also simplifies to a single uniform argument (no interval-bracketing case split). Drops the now-unused `eVariationOn_Icc_ne_top` helper. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jul 20, 2026
CoolRmal
marked this pull request as ready for review
July 26, 2026 03:42
…into variation-process
1 task
`countable_setOf_isolated_right_within` was deprecated (2026-07-09) in favour of `countable_setOfPred_isolated_right_within`. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
Author
|
@RemyDegenne Sorry for the delay, I spent a lot of time golfing the AI-generated proof. The mathlib PR is here: leanprover-community/mathlib4#42102 |
Owner
|
Can you split the file in two? One for results that are about variation of a function, and another one for the new variation process. |
Move the results about the variation of a function (`eVariationOn_*`, `measurable_eVariationOn_*` and the auxiliary `nhdsGT_subtype_eq_bot_iff`) into `BrownianMotion/Auxiliary/EVariationOn.lean`, leaving `BrownianMotion/StochasticIntegral/VariationProcess.lean` with only `variationProcess` and its properties. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
I just split the file. |
Owner
|
I moved the measurability statements to the file about the process. Thanks for this PR! |
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.
Adds the pathwise variation process
variationProcess X a: at timetand outcomeω, the signed variationvariationOnFromTo (X · ω) Set.univ a tof the paths ↦ X s ω.Main definition
variationProcessMain results
variationProcess_nonneg— nonnegativity, fora ≤ t;monotone_variationProcess— monotone in time, for paths of locally bounded variation;MeasureTheory.StronglyAdapted.measurable_variationProcess_of_continuous,..._of_continuousWithinAt_Ioi,..._of_continuousWithinAt_Iio— fora ≤ t, the value at timetof the variation process of a strongly adapted process is𝓕 t-measurable.Measurability: two sets of assumptions
The variation over a set of times is an uncountable supremum, so measurability is obtained by computing it over a countable dense set of times instead (
measurable_eVariationOn_of_countable). Which dense sets suffice depends on the regularity of the paths, and this file provides two independent results:eVariationOn_eq_comp_val_of_dense,measurable_eVariationOn_of_continuousWithinAt;eVariationOn_eq_comp_val_of_dense_Ioi,measurable_eVariationOn_of_continuousWithinAt_Ioi, together with the left-continuous counterpartseVariationOn_eq_comp_val_of_dense_Iioandmeasurable_eVariationOn_of_continuousWithinAt_Iio.Neither hypothesis implies the other, and the second genuinely needs second countability: a separable linearly ordered set can have uncountably many right isolated points (e.g. https://topology.pi-base.org/spaces/S000093)