feat: close the integral tendsto zero sorries in uniformIntegrable_predictableSeqTop (#451) - #484
feat: close the integral tendsto zero sorries in uniformIntegrable_predictableSeqTop (#451)#484raphaelrrcoelho wants to merge 9 commits into
Conversation
…redictableSeqTop` (RemyDegenne#451) fills the two `Tendsto.add` sorries via a new private helper `tendsto_iSup_setIntegral_tauMesh_zero` (uniform integrability + the `measure_tauMesh_lt_top_le` bound), and proves the prerequisite `isStoppingTime_tauMeshLift`.
|
awaiting-review |
|
May you tell me your AI usage for this PR? I am not against you using it, but I just want to make sure you carefully reviewed every single line of this PR. |
|
hi @CoolRmal. I directed Claude heavily here, both to translate the standard argument for this (see below) and for making sure it was idiomatic with the patterns in this repo. It wrote the lean code under my direction. I reviewed the results and they are aligned with the standard way to look at this. It's essentially a lift in the mesh stopping time t_n(c) to a F-stopping time, then show the two sup-over-mesh set-integrals tend to 0. It consumes the existing api rather than trying to re-proving anything. I've gone through the final diff and can walk through. happy to adjust naming/structure, or to split the isStoppingTime_tauMeshLift into smaller PRs. |
|
Maybe to share a little, I'm particularly interested in having this lane into the repo because it's usable for my personal project on financial math, which consumes this. |
CoolRmal
left a comment
There was a problem hiding this comment.
I think tendsto_iSup_setIntegral_tauMesh_zero is a very useful lemma to have. That said, I wonder if the proof could be reorganized a bit. At the moment, it feels somewhat tailored to this particular sorry, and I find it a little hard to see the overall structure of the argument from the code. In particular, the epsilon–delta details seem to obscure the main idea of the proof.
How about this? We basically want to show that
Let's make the following abstraction. You basically have a uniformly integrable collection of random variables indexed by the pair
lemma UniformIntegrable.eLpNorm_tendsto_zero_of_iSup_measure_tendsto_zero
{α ι κ Ω E} [MeasurableSpace Ω] {μ : Measure Ω} [NormedAddCommGroup E]
{X : α → Ω → E} {p : ℝ≥0∞} (hX : UniformIntegrable X p μ)
{A : κ → ι → Set Ω} {F : κ → ι → α} {l : Filter κ}
(hA : Tendsto (fun k ↦ ⨆ i, μ (A k i)) l (𝓝 0)) :
Tendsto (fun k ↦ ⨆ i, eLpNorm ((A k i).indicator (X (F k i))) p μ) l (𝓝 0) := by
sorry
I imagine this can be a very useful lemma to have in mathlib. I think it is much better if you leave the epsilon delta details inside this lemma, and apply this lemma to prove tendsto_iSup_setIntegral_tauMesh_zero. You probably need an additional assumption on p in UniformIntegrable.eLpNorm_tendsto_zero_of_iSup_measure_tendsto_zero, but I'll let you figure that out.
Co-authored-by: Yongxi (Aaron) Lin <97214596+CoolRmal@users.noreply.github.com>
Co-authored-by: Yongxi (Aaron) Lin <97214596+CoolRmal@users.noreply.github.com>
Co-authored-by: Yongxi (Aaron) Lin <97214596+CoolRmal@users.noreply.github.com>
|
I see. It makes sense. I was overly focused on the sorrys i'll lift the core into UniformIntegrable.eLpNorm_tendsto_zero_of_iSup_measure_tendsto_zero. the delta comes straight from the UnifIntegrable field. The only extra side-conditions i'll need are measurability of the sets and p diff drom inf. |
applies the remaining review suggestions on isStoppingTime_tauMeshLift (drop classical/hbot/hTdef, binder-form hequiv, coercion-free set-builders) and lifts the epsilon-delta core of tendsto_iSup_setIntegral_tauMesh_zero into a general UniformIntegrable.eLpNorm_tendsto_zero_of_iSup_measure_tendsto_zero, applied to recover the specific statement. Co-authored-by: Yongxi (Aaron) Lin <97214596+CoolRmal@users.noreply.github.com>
|
Can you resolve the conversation if you think you have addressed my comments? |
|
@CoolRmal I converted it to draft again so I can work on your feedback. I'm going for a rework on Plus I will drop the redundant haves (fold hmesh/hg_int in, remove the intermediate hnorm, etc), and switch to have-binders instead of intro, simpa, etc |
restructure the proof along the review's lines: (a) the |a|·L¹-norm identity, (b) the hitting sets shrinking in measure, (c) reduce to the L¹ norms vanishing via `suffices`. - fold the trivial two-step calc in `eLpNorm_tendsto_zero_of_iSup_measure_tendsto_zero` into `.trans_eq` - drop the redundant haves (fold hmesh/hg_int in, remove the intermediate hnorm) - have-binders instead of intro; `set` without `with`; simpa folds; `↦` over `=>` - replace the hand-rolled `𝓝 0` epsilon-delta in the measure step with a squeeze (`tendsto_of_tendsto_of_tendsto_of_le_of_le'`)
|
@CoolRmal just FYI, the PR is ready for review. |
keep both the new uniform-integrability helper lemmas and master's set_option backward.isDefEq.respectTransparency false. adopts the v4.33.0-rc1 toolchain from master; proofs not re-verified locally under it (CI will build).
closes #451.
fills the two
Tendsto.addsorries inuniformIntegrable_predictableSeqTop(theintegral tendsto zerostep). both summands are discharged by a new private helpertendsto_iSup_setIntegral_tauMesh_zero: for a non-positiveaand a levelb c → ∞, the supremum over meshes of∫ a * stoppedValueover{τₙ(b c) < ⊤}tends to0. it takes the uniform-integrabilityδfromhd, usesmeasure_tauMesh_lt_top_leto push every hitting set belowδoncecis large, and bounds each term through the L¹eLpNorm/setIntegralidentity. also provesisStoppingTime_tauMeshLift(the lift ofτₙ(c)to a𝓕-stopping time), which was asorryand is needed to applyhdto the lifted stopping times.