All proofs
Project-declaredLean 4.33.0-rc1 · mathlib@0434c033

Mul measure Real exists lt le

ProbabilityTheory.mul_measureReal_exists_lt_le

Plain-language statement

One-sided maximal inequality along a finite skeleton for an adapted, integrable process g whose adapted {0,1}-weighted increment sums along idx have expectation at most K.

Exact Lean statement

lemma mul_measureReal_exists_lt_le [IsFiniteMeasure μ]
    {g : ι → Ω → ℝ} (hg : StronglyAdapted 𝓕 g) (hgint : ∀ s, Integrable (g s) μ)
    {n : ℕ} {idx : ℕ → ι} (hidx : Monotone idx) {K : ℝ}
    (hK : ∀ W : ℕ → Ω → ℝ, (∀ k, k < n → ∀ ω, W k ω = 0 ∨ W k ω = 1) →
      (∀ k, k < n → Measurable[𝓕 (idx k)] (W k)) →
      ∫ ω, (∑ k ∈ range n, W k ω * (g (idx (k + 1)) ω - g (idx k) ω)) ∂μ ≤ K) :
    lam * μ.real {ω | ∃ k ≤ n, lam < g (idx k) ω}
      ≤ K + ∫ ω, |g (idx 0) ω| ∂μ + ∫ ω, |g (idx n) ω| ∂μ

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
lemma mul_measureReal_exists_lt_le [IsFiniteMeasure μ]    {g : ι  Ω  } (hg : StronglyAdapted 𝓕 g) (hgint :  s, Integrable (g s) μ)    {n : } {idx :   ι} (hidx : Monotone idx) {K : }    (hK :  W :   Ω  , ( k, k < n   ω, W k ω = 0  W k ω = 1)       ( k, k < n  Measurable[𝓕 (idx k)] (W k))       ∫ ω, (∑ k  range n, W k ω * (g (idx (k + 1)) ω - g (idx k) ω)) ∂μ  K) :    lam * μ.real {ω |  k  n, lam < g (idx k) ω}       K + ∫ ω, |g (idx 0) ω| ∂μ + ∫ ω, |g (idx n) ω| ∂μ := by  set f :   Ω   := fun k ω  g (idx k) ω with hf  set W :   Ω   := fun k  {ω' |  j  k, f j ω'  lam}.indicator 1 with hW  have hW01 :  k, k < n   ω, W k ω = 0  W k ω = 1 := by    intro k _ ω    by_cases h : ω  {ω' |  j  k, f j ω'  lam}    · exact Or.inr (by rw [hW]; simp [Set.indicator_of_mem h])    · exact Or.inl (by rw [hW]; simp [Set.indicator_of_notMem h])  have hWmeas :  k, k < n  Measurable[𝓕 (idx k)] (W k) := by    intro k _    have hset : MeasurableSet[𝓕 (idx k)] {ω' |  j  k, f j ω'  lam} := by      have : {ω' |  j  k, f j ω'  lam} = ⋂ j  Iic k, f j ⁻¹' Set.Iic lam := by        ext ω'        simp [Set.mem_iInter]      rw [this]      refine MeasurableSet.biInter (Iic k).countable_toSet fun j hj  ?_      have hj' : j  k := mem_Iic.1 hj      exact (𝓕.mono (hidx hj')) _ ((hg (idx j)).measurable measurableSet_Iic)    exact (measurable_const.indicator hset)  have hWb :  k, k < n   ω, ‖W k ω‖  1 := by    intro k hk ω    rcases hW01 k hk ω with h | h <;> simp [h]  -- the stopped value  set tau : Ω   := fun ω  hittingBtwn f (Set.Ioi lam) 0 n ω with htau  set ftau : Ω   := fun ω  f (tau ω) ω with hftau  have htel :  ω, ftau ω = f 0 ω      + ∑ k  range n, W k ω * (g (idx (k + 1)) ω - g (idx k) ω) := by    intro ω    rw [hftau, htau]    have hterm k : W k ω * (g (idx (k + 1)) ω - g (idx k) ω)        = ({ω' |  j  k, f j ω'  lam}.indicator 1 ω : ) * (f (k + 1) ω - f k ω) := rfl    simp_rw [hterm]    rw [sum_indicator_mul_sub_eq_stopped f lam n ω]    ring  have hint_sum : Integrable      (fun ω  ∑ k  range n, W k ω * (g (idx (k + 1)) ω - g (idx k) ω)) μ :=    integrable_sum_weight_increments hgint      (fun k hk  ((hWmeas k hk).mono (𝓕.le _) le_rfl).aestronglyMeasurable) hWb  have hint_ftau : Integrable ftau μ := by    have : ftau = fun ω  f 0 ω        + ∑ k  range n, W k ω * (g (idx (k + 1)) ω - g (idx k) ω) := funext htel    rw [this]    exact (hgint _).add hint_sum  -- the event  set H : Set Ω := {ω |  k  n, lam < g (idx k) ω} with hH  have hHmeas : MeasurableSet H := by    have : H = ⋃ k  Iic n, (g (idx k)) ⁻¹' Set.Ioi lam := by ext; simp [hH]    rw [this]    exact MeasurableSet.biUnion (Iic n).countable_toSet fun k _       (𝓕.le _) _ ((hg (idx k)).measurable measurableSet_Ioi)  -- on `H`, the stopped value exceeds `lam`  have hHval :  ω  H, lam < ftau ω := by    intro ω hω    obtain k, hk, hkval :=    have hexists :  j  Set.Icc 0 n, f j ω  Set.Ioi lam := k, Nat.zero_le k, hk, hkval    exact hittingBtwn_mem_set hexists  -- off `H`, the stopped value is the terminal value  have hHcval :  ω  H, ftau ω = f n ω := by    intro ω hω    have hno :  j, j  n  f j ω  lam := by      intro j hj      by_contra hlt      exactj, hj, not_le.1 hlt    have h1 : tau ω = n := by      refine le_antisymm (hittingBtwn_le ω) (not_lt.1 fun hlt  ?_)      obtain j, hj, hjs := (hittingBtwn_lt_iff n le_rfl).1 hlt      exact absurd hjs (not_lt.2 (hno j hj.2.le))    change f (tau ω) ω = f n ω    rw [h1]  -- assemble  have hsplit : ∫ ω, ftau ω ∂μ = (∫ ω in H, ftau ω ∂μ) + ∫ ω in Hᶜ, ftau ω ∂μ :=    (integral_add_compl hHmeas hint_ftau).symm  have hlower : lam * μ.real H  ∫ ω in H, ftau ω ∂μ := by    calc lam * μ.real H = ∫ _ in H, lam ∂μ := by rw [setIntegral_const, smul_eq_mul, mul_comm]      _  ∫ ω in H, ftau ω ∂μ := by          refine setIntegral_mono_on (integrable_const lam).integrableOn            hint_ftau.integrableOn hHmeas fun ω hω  (hHval ω hω).le  have hcompl : -(∫ ω, |g (idx n) ω| ∂μ)  ∫ ω in Hᶜ, ftau ω ∂μ := by    have heq : ∫ ω in Hᶜ, ftau ω ∂μ = ∫ ω in Hᶜ, f n ω ∂μ :=      setIntegral_congr_fun hHmeas.compl fun ω hω  hHcval ω hω    rw [heq, neg_le]    calc -∫ ω in Hᶜ, f n ω ∂μ  |∫ ω in Hᶜ, f n ω ∂μ| := neg_le_abs _      _  ∫ ω in Hᶜ, |f n ω| ∂μ := abs_integral_le_integral_abs      _  ∫ ω, |g (idx n) ω| ∂μ :=          setIntegral_le_integral (hgint _).abs (ae_of_all _ fun ω  abs_nonneg _)  have htotal : ∫ ω, ftau ω ∂μ  K + ∫ ω, |g (idx 0) ω| ∂μ := by    have : ∫ ω, ftau ω ∂μ = (∫ ω, f 0 ω ∂μ)        + ∫ ω, (∑ k  range n, W k ω * (g (idx (k + 1)) ω - g (idx k) ω)) ∂μ := by      rw [ integral_add (hgint _) hint_sum]      exact integral_congr_ae (ae_of_all _ htel)    rw [this]    have h0 : ∫ ω, f 0 ω ∂μ  ∫ ω, |g (idx 0) ω| ∂μ :=      integral_mono (hgint _) (hgint _).abs fun ω  le_abs_self _    have hsum := hK W hW01 hWmeas    linarith  linarith [hsplit, hlower, hcompl, htotal]
Project
Brownian motion
License
Apache-2.0
Commit
5077304f5e73
Source
BrownianMotion/StochasticIntegral/Quasimartingale/MaximalInequality.lean:547-649

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.33.0-rc1

Continuous Within At Iio indicator Ioc

continuousWithinAt_Iio_indicator_Ioc

Plain-language statement

The indicator of a half-open interval Ioc a b with constant value c is left-continuous: when approached from the left it is eventually constant, so it is continuous within Iio t at t for every t.

probabilitystochastic processesmeasure theory

Source project: Brownian motion

Person-level attribution pending.

View proof record
Project-declaredLean 4.33.0-rc1

Dense comap val nhds Within Ioi ne Bot

Dense.comap_val_nhdsWithin_Ioi_neBot

Project documentation

This is an auxillary lemma used to prove Dense.monotone_of_isRightContinuous. It is saying that if D is a dense set and a, b are two points such that a < b, then the comap of 𝓝[Set.Ioi a] a under the inclusion D → α is nontrivial. Note that a < b is necessary as this is clearly not true if a is a top element.

probabilitystochastic processesmeasure theory

Source project: Brownian motion

Person-level attribution pending.

View proof record