probability.martingale.convergence
⟷
Mathlib.Probability.Martingale.Convergence
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -115,12 +115,12 @@ then it does not frequently visit both below `a` and above `b`. -/
theorem not_frequently_of_upcrossings_lt_top (hab : a < b) (hω : upcrossings a b f ω ≠ ∞) :
¬((∃ᶠ n in atTop, f n ω < a) ∧ ∃ᶠ n in atTop, b < f n ω) :=
by
- rw [← lt_top_iff_ne_top, upcrossings_lt_top_iff] at hω
+ rw [← lt_top_iff_ne_top, upcrossings_lt_top_iff] at hω
replace hω : ∃ k, ∀ N, upcrossings_before a b f N ω < k
· obtain ⟨k, hk⟩ := hω
exact ⟨k + 1, fun N => lt_of_le_of_lt (hk N) k.lt_succ_self⟩
rintro ⟨h₁, h₂⟩
- rw [frequently_at_top] at h₁ h₂
+ rw [frequently_at_top] at h₁ h₂
refine' Classical.not_not.2 hω _
push_neg
intro k
@@ -156,7 +156,7 @@ theorem tendsto_of_uncrossing_lt_top (hf₁ : liminf (fun n => (‖f n ω‖₊
∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
by
by_cases h : is_bounded_under (· ≤ ·) at_top fun n => |f n ω|
- · rw [is_bounded_under_le_abs] at h
+ · rw [is_bounded_under_le_abs] at h
refine' tendsto_of_no_upcrossings Rat.denseRange_cast _ h.1 h.2
· intro a ha b hb hab
obtain ⟨⟨a, rfl⟩, ⟨b, rfl⟩⟩ := ha, hb
@@ -174,11 +174,11 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
by
refine' ae_lt_top (hf.adapted.measurable_upcrossings hab) _
have := hf.mul_lintegral_upcrossings_le_lintegral_pos_part a b
- rw [mul_comm, ← ENNReal.le_div_iff_mul_le] at this
+ rw [mul_comm, ← ENNReal.le_div_iff_mul_le] at this
· refine' (lt_of_le_of_lt this (ENNReal.div_lt_top _ _)).Ne
· have hR' : ∀ n, ∫⁻ ω, ‖f n ω - a‖₊ ∂μ ≤ R + ‖a‖₊ * μ Set.univ :=
by
- simp_rw [snorm_one_eq_lintegral_nnnorm] at hbdd
+ simp_rw [snorm_one_eq_lintegral_nnnorm] at hbdd
intro n
refine' (lintegral_mono _ : ∫⁻ ω, ‖f n ω - a‖₊ ∂μ ≤ ∫⁻ ω, ‖f n ω‖₊ + ‖a‖₊ ∂μ).trans _
· intro ω
@@ -474,7 +474,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
have hheq :=
@integral_add_compl _ _ (⨆ n, ℱ n) _ _ _ _ _ _ htmeas
(hlimint.trim hle strongly_measurable_limit_process)
- rw [add_comm, ← eq_sub_iff_add_eq] at hgeq hheq
+ rw [add_comm, ← eq_sub_iff_add_eq] at hgeq hheq
rw [set_integral_trim hle hgmeas htmeas.compl,
set_integral_trim hle strongly_measurable_limit_process htmeas.compl, hgeq, hheq, ←
set_integral_trim hle hgmeas htmeas, ←
@@ -517,7 +517,7 @@ theorem tendsto_ae_condexp (g : Ω → ℝ) :
integrable_condexp.tendsto_ae_condexp strongly_measurable_condexp
have heq : ∀ n, ∀ᵐ x ∂μ, (μ[μ[g|⨆ n, ℱ n]|ℱ n]) x = (μ[g|ℱ n]) x := fun n =>
condexp_condexp_of_le (le_iSup _ n) (iSup_le fun n => ℱ.le n)
- rw [← ae_all_iff] at heq
+ rw [← ae_all_iff] at heq
filter_upwards [HEq, ht] with x hxeq hxt
exact hxt.congr hxeq
#align measure_theory.tendsto_ae_condexp MeasureTheory.tendsto_ae_condexp
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -250,7 +250,31 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : S
almost everywhere to a `⨆ n, ℱ n`-measurable function. -/
theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
- ∀ᵐ ω ∂μ, Tendsto (fun n => f n ω) atTop (𝓝 (ℱ.limitProcess f μ ω)) := by classical
+ ∀ᵐ ω ∂μ, Tendsto (fun n => f n ω) atTop (𝓝 (ℱ.limitProcess f μ ω)) := by
+ classical
+ suffices ∃ g, strongly_measurable[⨆ n, ℱ n] g ∧ ∀ᵐ ω ∂μ, tendsto (fun n => f n ω) at_top (𝓝 (g ω))
+ by
+ rw [limit_process, dif_pos this]
+ exact (Classical.choose_spec this).2
+ set g' : Ω → ℝ := fun ω => if h : ∃ c, tendsto (fun n => f n ω) at_top (𝓝 c) then h.some else 0
+ have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
+ have hg' : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g' ω)) :=
+ by
+ filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with ω hω
+ simp_rw [g', dif_pos hω]
+ exact hω.some_spec
+ have hg'm : @ae_strongly_measurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
+ (@aemeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
+ (fun n =>
+ ((hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
+ le_rfl).AEMeasurable)
+ hg').AEStronglyMeasurable
+ obtain ⟨g, hgm, hae⟩ := hg'm
+ have hg : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g ω)) :=
+ by
+ filter_upwards [hae, hg'] with ω hω hg'ω
+ exact hω ▸ hg'ω
+ exact ⟨g, hgm, measure_eq_zero_of_trim_eq_zero hle hg⟩
#align measure_theory.submartingale.ae_tendsto_limit_process MeasureTheory.Submartingale.ae_tendsto_limitProcess
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -250,31 +250,7 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : S
almost everywhere to a `⨆ n, ℱ n`-measurable function. -/
theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
- ∀ᵐ ω ∂μ, Tendsto (fun n => f n ω) atTop (𝓝 (ℱ.limitProcess f μ ω)) := by
- classical
- suffices ∃ g, strongly_measurable[⨆ n, ℱ n] g ∧ ∀ᵐ ω ∂μ, tendsto (fun n => f n ω) at_top (𝓝 (g ω))
- by
- rw [limit_process, dif_pos this]
- exact (Classical.choose_spec this).2
- set g' : Ω → ℝ := fun ω => if h : ∃ c, tendsto (fun n => f n ω) at_top (𝓝 c) then h.some else 0
- have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
- have hg' : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g' ω)) :=
- by
- filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with ω hω
- simp_rw [g', dif_pos hω]
- exact hω.some_spec
- have hg'm : @ae_strongly_measurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
- (@aemeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
- (fun n =>
- ((hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
- le_rfl).AEMeasurable)
- hg').AEStronglyMeasurable
- obtain ⟨g, hgm, hae⟩ := hg'm
- have hg : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g ω)) :=
- by
- filter_upwards [hae, hg'] with ω hω hg'ω
- exact hω ▸ hg'ω
- exact ⟨g, hgm, measure_eq_zero_of_trim_eq_zero hle hg⟩
+ ∀ᵐ ω ∂μ, Tendsto (fun n => f n ω) atTop (𝓝 (ℱ.limitProcess f μ ω)) := by classical
#align measure_theory.submartingale.ae_tendsto_limit_process MeasureTheory.Submartingale.ae_tendsto_limitProcess
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -196,8 +196,8 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
refine' lintegral_mono fun ω => _
rw [ENNReal.ofReal_le_iff_le_toReal, ENNReal.coe_toReal, coe_nnnorm]
by_cases hnonneg : 0 ≤ f n ω - a
- · rw [LatticeOrderedGroup.pos_of_nonneg _ hnonneg, Real.norm_eq_abs, abs_of_nonneg hnonneg]
- · rw [LatticeOrderedGroup.pos_of_nonpos _ (not_le.1 hnonneg).le]
+ · rw [posPart_eq_self _ hnonneg, Real.norm_eq_abs, abs_of_nonneg hnonneg]
+ · rw [posPart_eq_zero _ (not_le.1 hnonneg).le]
exact norm_nonneg _
· simp only [Ne.def, ENNReal.coe_ne_top, not_false_iff]
· simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2022 Kexing Ying. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
-/
-import Mathbin.Probability.Martingale.Upcrossing
-import Mathbin.MeasureTheory.Function.UniformIntegrable
-import Mathbin.MeasureTheory.Constructions.Polish
+import Probability.Martingale.Upcrossing
+import MeasureTheory.Function.UniformIntegrable
+import MeasureTheory.Constructions.Polish
#align_import probability.martingale.convergence from "leanprover-community/mathlib"@"e8e130de9dba4ed6897183c3193c752ffadbcc77"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -196,10 +196,8 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
refine' lintegral_mono fun ω => _
rw [ENNReal.ofReal_le_iff_le_toReal, ENNReal.coe_toReal, coe_nnnorm]
by_cases hnonneg : 0 ≤ f n ω - a
- ·
- rw [LatticeOrderedCommGroup.pos_of_nonneg _ hnonneg, Real.norm_eq_abs,
- abs_of_nonneg hnonneg]
- · rw [LatticeOrderedCommGroup.pos_of_nonpos _ (not_le.1 hnonneg).le]
+ · rw [LatticeOrderedGroup.pos_of_nonneg _ hnonneg, Real.norm_eq_abs, abs_of_nonneg hnonneg]
+ · rw [LatticeOrderedGroup.pos_of_nonpos _ (not_le.1 hnonneg).le]
exact norm_nonneg _
· simp only [Ne.def, ENNReal.coe_ne_top, not_false_iff]
· simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2022 Kexing Ying. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
-
-! This file was ported from Lean 3 source module probability.martingale.convergence
-! leanprover-community/mathlib commit e8e130de9dba4ed6897183c3193c752ffadbcc77
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Probability.Martingale.Upcrossing
import Mathbin.MeasureTheory.Function.UniformIntegrable
import Mathbin.MeasureTheory.Constructions.Polish
+#align_import probability.martingale.convergence from "leanprover-community/mathlib"@"e8e130de9dba4ed6897183c3193c752ffadbcc77"
+
/-!
# Martingale convergence theorems
mathlib commit https://github.com/leanprover-community/mathlib/commit/6285167a053ad0990fc88e56c48ccd9fae6550eb
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
! This file was ported from Lean 3 source module probability.martingale.convergence
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
+! leanprover-community/mathlib commit e8e130de9dba4ed6897183c3193c752ffadbcc77
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.MeasureTheory.Constructions.Polish
# Martingale convergence theorems
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
The martingale convergence theorems are a collection of theorems characterizing the convergence
of a martingale provided it satisfies some boundedness conditions. This file contains the
almost everywhere martingale convergence theorem which provides an almost everywhere limit to
mathlib commit https://github.com/leanprover-community/mathlib/commit/0723536a0522d24fc2f159a096fb3304bef77472
@@ -109,6 +109,7 @@ submartingale converges to its `limit_process` almost everywhere.
-/
+#print MeasureTheory.not_frequently_of_upcrossings_lt_top /-
/-- If a stochastic process has bounded upcrossing from below `a` to above `b`,
then it does not frequently visit both below `a` and above `b`. -/
theorem not_frequently_of_upcrossings_lt_top (hab : a < b) (hω : upcrossings a b f ω ≠ ∞) :
@@ -133,14 +134,18 @@ theorem not_frequently_of_upcrossings_lt_top (hab : a < b) (hω : upcrossings a
Nat.succ_le_of_lt <|
lt_of_le_of_lt hN (upcrossings_before_lt_of_exists_upcrossing hab hN₁ hN₁' hN₂ hN₂')⟩
#align measure_theory.not_frequently_of_upcrossings_lt_top MeasureTheory.not_frequently_of_upcrossings_lt_top
+-/
+#print MeasureTheory.upcrossings_eq_top_of_frequently_lt /-
/-- A stochastic process that frequently visits below `a` and above `b` have infinite
upcrossings. -/
theorem upcrossings_eq_top_of_frequently_lt (hab : a < b) (h₁ : ∃ᶠ n in atTop, f n ω < a)
(h₂ : ∃ᶠ n in atTop, b < f n ω) : upcrossings a b f ω = ∞ :=
by_contradiction fun h => not_frequently_of_upcrossings_lt_top hab h ⟨h₁, h₂⟩
#align measure_theory.upcrossings_eq_top_of_frequently_lt MeasureTheory.upcrossings_eq_top_of_frequently_lt
+-/
+#print MeasureTheory.tendsto_of_uncrossing_lt_top /-
/-- A realization of a stochastic process with bounded upcrossings and bounded liminfs is
convergent.
@@ -160,7 +165,9 @@ theorem tendsto_of_uncrossing_lt_top (hf₁ : liminf (fun n => (‖f n ω‖₊
exact
False.elim ((hf₂ a b hab).Ne (upcrossings_eq_top_of_frequently_lt (Rat.cast_lt.2 hab) h₁ h₂))
#align measure_theory.tendsto_of_uncrossing_lt_top MeasureTheory.tendsto_of_uncrossing_lt_top
+-/
+#print MeasureTheory.Submartingale.upcrossings_ae_lt_top' /-
/-- An L¹-bounded submartingale has bounded upcrossings almost everywhere. -/
theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) (hab : a < b) : ∀ᵐ ω ∂μ, upcrossings a b f ω < ∞ :=
@@ -199,7 +206,9 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
· simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le, true_or_iff]
· simp only [Ne.def, ENNReal.ofReal_ne_top, not_false_iff, true_or_iff]
#align measure_theory.submartingale.upcrossings_ae_lt_top' MeasureTheory.Submartingale.upcrossings_ae_lt_top'
+-/
+#print MeasureTheory.Submartingale.upcrossings_ae_lt_top /-
theorem Submartingale.upcrossings_ae_lt_top [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) : ∀ᵐ ω ∂μ, ∀ a b : ℚ, a < b → upcrossings a b f ω < ∞ :=
by
@@ -207,7 +216,9 @@ theorem Submartingale.upcrossings_ae_lt_top [IsFiniteMeasure μ] (hf : Submartin
rintro a b hab
exact hf.upcrossings_ae_lt_top' hbdd (Rat.cast_lt.2 hab)
#align measure_theory.submartingale.upcrossings_ae_lt_top MeasureTheory.Submartingale.upcrossings_ae_lt_top
+-/
+#print MeasureTheory.Submartingale.exists_ae_tendsto_of_bdd /-
/-- An L¹-bounded submartingale converges almost everywhere. -/
theorem Submartingale.exists_ae_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) : ∀ᵐ ω ∂μ, ∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
@@ -218,7 +229,9 @@ theorem Submartingale.exists_ae_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submar
ω h₁ h₂
exact tendsto_of_uncrossing_lt_top h₂ h₁
#align measure_theory.submartingale.exists_ae_tendsto_of_bdd MeasureTheory.Submartingale.exists_ae_tendsto_of_bdd
+-/
+#print MeasureTheory.Submartingale.exists_ae_trim_tendsto_of_bdd /-
theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
∀ᵐ ω ∂μ.trim (sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : (⨆ n, ℱ n) ≤ m0),
@@ -232,7 +245,9 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : S
(@measurable_set_exists_tendsto _ _ _ _ _ _ (⨆ n, ℱ n) _ _ _ _ _ fun n =>
(hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩) le_rfl)
#align measure_theory.submartingale.exists_ae_trim_tendsto_of_bdd MeasureTheory.Submartingale.exists_ae_trim_tendsto_of_bdd
+-/
+#print MeasureTheory.Submartingale.ae_tendsto_limitProcess /-
/-- **Almost everywhere martingale convergence theorem**: An L¹-bounded submartingale converges
almost everywhere to a `⨆ n, ℱ n`-measurable function. -/
theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
@@ -263,13 +278,16 @@ theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submart
exact hω ▸ hg'ω
exact ⟨g, hgm, measure_eq_zero_of_trim_eq_zero hle hg⟩
#align measure_theory.submartingale.ae_tendsto_limit_process MeasureTheory.Submartingale.ae_tendsto_limitProcess
+-/
+#print MeasureTheory.Submartingale.memℒp_limitProcess /-
/-- The limiting process of an Lᵖ-bounded submartingale is Lᵖ. -/
theorem Submartingale.memℒp_limitProcess {p : ℝ≥0∞} (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) p μ ≤ R) : Memℒp (ℱ.limitProcess f μ) p μ :=
memℒp_limitProcess_of_snorm_bdd
(fun n => ((hf.StronglyMeasurable n).mono (ℱ.le n)).AEStronglyMeasurable) hbdd
#align measure_theory.submartingale.mem_ℒp_limit_process MeasureTheory.Submartingale.memℒp_limitProcess
+-/
end AeConvergence
@@ -341,6 +359,7 @@ and the a.e. limit of a submartingale coincide.
-/
+#print MeasureTheory.Submartingale.tendsto_snorm_one_limitProcess /-
/-- Part a of the **L¹ martingale convergence theorem**: a uniformly integrable submartingale
adapted to the filtration `ℱ` converges a.e. and in L¹ to an integrable function which is
measurable with respect to the σ-algebra `⨆ n, ℱ n`. -/
@@ -356,14 +375,18 @@ theorem Submartingale.tendsto_snorm_one_limitProcess (hf : Submartingale f ℱ
(mem_ℒp_limit_process_of_snorm_bdd hmeas hR) hunif.2.1
(tendsto_in_measure_of_tendsto_ae hmeas <| hf.ae_tendsto_limit_process hR)
#align measure_theory.submartingale.tendsto_snorm_one_limit_process MeasureTheory.Submartingale.tendsto_snorm_one_limitProcess
+-/
+#print MeasureTheory.Submartingale.ae_tendsto_limitProcess_of_uniformIntegrable /-
theorem Submartingale.ae_tendsto_limitProcess_of_uniformIntegrable (hf : Submartingale f ℱ μ)
(hunif : UniformIntegrable f 1 μ) :
∀ᵐ ω ∂μ, Tendsto (fun n => f n ω) atTop (𝓝 (ℱ.limitProcess f μ ω)) :=
let ⟨R, hR⟩ := hunif.2.2
hf.ae_tendsto_limitProcess hR
#align measure_theory.submartingale.ae_tendsto_limit_process_of_uniform_integrable MeasureTheory.Submartingale.ae_tendsto_limitProcess_of_uniformIntegrable
+-/
+#print MeasureTheory.Martingale.eq_condexp_of_tendsto_snorm /-
/-- If a martingale `f` adapted to `ℱ` converges in L¹ to `g`, then for all `n`, `f n` is almost
everywhere equal to `𝔼[g | ℱ n]`. -/
theorem Martingale.eq_condexp_of_tendsto_snorm {μ : Measure Ω} (hf : Martingale f ℱ μ)
@@ -386,7 +409,9 @@ theorem Martingale.eq_condexp_of_tendsto_snorm {μ : Measure Ω} (hf : Martingal
simp only [hx, Pi.sub_apply]
exact tendsto_nhds_unique (tendsto_atTop_of_eventually_const hev) ht
#align measure_theory.martingale.eq_condexp_of_tendsto_snorm MeasureTheory.Martingale.eq_condexp_of_tendsto_snorm
+-/
+#print MeasureTheory.Martingale.ae_eq_condexp_limitProcess /-
/-- Part b of the **L¹ martingale convergence theorem**: if `f` is a uniformly integrable martingale
adapted to the filtration `ℱ`, then for all `n`, `f n` is almost everywhere equal to the conditional
expectation of its limiting process wrt. `ℱ n`. -/
@@ -396,7 +421,9 @@ theorem Martingale.ae_eq_condexp_limitProcess (hf : Martingale f ℱ μ)
hf.eq_condexp_of_tendsto_snorm ((memℒp_limitProcess_of_snorm_bdd hbdd.1 hR).Integrable le_rfl)
(hf.Submartingale.tendsto_snorm_one_limitProcess hbdd) n
#align measure_theory.martingale.ae_eq_condexp_limit_process MeasureTheory.Martingale.ae_eq_condexp_limitProcess
+-/
+#print MeasureTheory.Integrable.tendsto_ae_condexp /-
/-- Part c of the **L¹ martingale convergnce theorem**: Given a integrable function `g` which
is measurable with respect to `⨆ n, ℱ n` where `ℱ` is a filtration, the martingale defined by
`𝔼[g | ℱ n]` converges almost everywhere to `g`.
@@ -461,7 +488,9 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
integral_Union (fun n => hle _ (hfmeas n)) hf hlimint.integrable_on]
exact tsum_congr fun n => HEq _ (measure_lt_top _ _)
#align measure_theory.integrable.tendsto_ae_condexp MeasureTheory.Integrable.tendsto_ae_condexp
+-/
+#print MeasureTheory.Integrable.tendsto_snorm_condexp /-
/-- Part c of the **L¹ martingale convergnce theorem**: Given a integrable function `g` which
is measurable with respect to `⨆ n, ℱ n` where `ℱ` is a filtration, the martingale defined by
`𝔼[g | ℱ n]` converges in L¹ to `g`.
@@ -478,7 +507,9 @@ theorem Integrable.tendsto_snorm_condexp (hg : Integrable g μ)
(fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AEStronglyMeasurable)
(hg.tendsto_ae_condexp hgmeas))
#align measure_theory.integrable.tendsto_snorm_condexp MeasureTheory.Integrable.tendsto_snorm_condexp
+-/
+#print MeasureTheory.tendsto_ae_condexp /-
/-- **Lévy's upward theorem**, almost everywhere version: given a function `g` and a filtration
`ℱ`, the sequence defined by `𝔼[g | ℱ n]` converges almost everywhere to `𝔼[g | ⨆ n, ℱ n]`. -/
theorem tendsto_ae_condexp (g : Ω → ℝ) :
@@ -492,7 +523,9 @@ theorem tendsto_ae_condexp (g : Ω → ℝ) :
filter_upwards [HEq, ht] with x hxeq hxt
exact hxt.congr hxeq
#align measure_theory.tendsto_ae_condexp MeasureTheory.tendsto_ae_condexp
+-/
+#print MeasureTheory.tendsto_snorm_condexp /-
/-- **Lévy's upward theorem**, L¹ version: given a function `g` and a filtration `ℱ`, the
sequence defined by `𝔼[g | ℱ n]` converges in L¹ to `𝔼[g | ⨆ n, ℱ n]`. -/
theorem tendsto_snorm_condexp (g : Ω → ℝ) :
@@ -506,6 +539,7 @@ theorem tendsto_snorm_condexp (g : Ω → ℝ) :
filter_upwards [HEq n] with x hxeq
simp only [hxeq, Pi.sub_apply]
#align measure_theory.tendsto_snorm_condexp MeasureTheory.tendsto_snorm_condexp
+-/
end L1Convergence
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -169,11 +169,11 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
have := hf.mul_lintegral_upcrossings_le_lintegral_pos_part a b
rw [mul_comm, ← ENNReal.le_div_iff_mul_le] at this
· refine' (lt_of_le_of_lt this (ENNReal.div_lt_top _ _)).Ne
- · have hR' : ∀ n, (∫⁻ ω, ‖f n ω - a‖₊ ∂μ) ≤ R + ‖a‖₊ * μ Set.univ :=
+ · have hR' : ∀ n, ∫⁻ ω, ‖f n ω - a‖₊ ∂μ ≤ R + ‖a‖₊ * μ Set.univ :=
by
simp_rw [snorm_one_eq_lintegral_nnnorm] at hbdd
intro n
- refine' (lintegral_mono _ : (∫⁻ ω, ‖f n ω - a‖₊ ∂μ) ≤ ∫⁻ ω, ‖f n ω‖₊ + ‖a‖₊ ∂μ).trans _
+ refine' (lintegral_mono _ : ∫⁻ ω, ‖f n ω - a‖₊ ∂μ ≤ ∫⁻ ω, ‖f n ω‖₊ + ‖a‖₊ ∂μ).trans _
· intro ω
simp_rw [sub_eq_add_neg, ← nnnorm_neg a, ← ENNReal.coe_add, ENNReal.coe_le_coe]
exact nnnorm_add_le _ _
@@ -421,7 +421,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
have :
∀ n s,
measurable_set[ℱ n] s →
- (∫ x in s, g x ∂μ) = ∫ x in s, ℱ.limit_process (fun n x => (μ[g|ℱ n]) x) μ x ∂μ :=
+ ∫ x in s, g x ∂μ = ∫ x in s, ℱ.limit_process (fun n x => (μ[g|ℱ n]) x) μ x ∂μ :=
by
intro n s hs
rw [← set_integral_condexp (ℱ.le n) hg hs, ← set_integral_condexp (ℱ.le n) hlimint hs]
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -162,7 +162,7 @@ theorem tendsto_of_uncrossing_lt_top (hf₁ : liminf (fun n => (‖f n ω‖₊
#align measure_theory.tendsto_of_uncrossing_lt_top MeasureTheory.tendsto_of_uncrossing_lt_top
/-- An L¹-bounded submartingale has bounded upcrossings almost everywhere. -/
-theorem Submartingale.upcrossings_ae_lt_top' [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) (hab : a < b) : ∀ᵐ ω ∂μ, upcrossings a b f ω < ∞ :=
by
refine' ae_lt_top (hf.adapted.measurable_upcrossings hab) _
@@ -200,7 +200,7 @@ theorem Submartingale.upcrossings_ae_lt_top' [FiniteMeasure μ] (hf : Submarting
· simp only [Ne.def, ENNReal.ofReal_ne_top, not_false_iff, true_or_iff]
#align measure_theory.submartingale.upcrossings_ae_lt_top' MeasureTheory.Submartingale.upcrossings_ae_lt_top'
-theorem Submartingale.upcrossings_ae_lt_top [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.upcrossings_ae_lt_top [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) : ∀ᵐ ω ∂μ, ∀ a b : ℚ, a < b → upcrossings a b f ω < ∞ :=
by
simp only [ae_all_iff, eventually_imp_distrib_left]
@@ -209,16 +209,17 @@ theorem Submartingale.upcrossings_ae_lt_top [FiniteMeasure μ] (hf : Submartinga
#align measure_theory.submartingale.upcrossings_ae_lt_top MeasureTheory.Submartingale.upcrossings_ae_lt_top
/-- An L¹-bounded submartingale converges almost everywhere. -/
-theorem Submartingale.exists_ae_tendsto_of_bdd [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.exists_ae_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) : ∀ᵐ ω ∂μ, ∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
by
filter_upwards [hf.upcrossings_ae_lt_top hbdd,
ae_bdd_liminf_at_top_of_snorm_bdd one_ne_zero
- (fun n => (hf.strongly_measurable n).Measurable.mono (ℱ.le n) le_rfl) hbdd]with ω h₁ h₂
+ (fun n => (hf.strongly_measurable n).Measurable.mono (ℱ.le n) le_rfl) hbdd] with
+ ω h₁ h₂
exact tendsto_of_uncrossing_lt_top h₂ h₁
#align measure_theory.submartingale.exists_ae_tendsto_of_bdd MeasureTheory.Submartingale.exists_ae_tendsto_of_bdd
-theorem Submartingale.exists_ae_trim_tendsto_of_bdd [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
∀ᵐ ω ∂μ.trim (sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : (⨆ n, ℱ n) ≤ m0),
∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
@@ -234,34 +235,33 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [FiniteMeasure μ] (hf : Sub
/-- **Almost everywhere martingale convergence theorem**: An L¹-bounded submartingale converges
almost everywhere to a `⨆ n, ℱ n`-measurable function. -/
-theorem Submartingale.ae_tendsto_limitProcess [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
∀ᵐ ω ∂μ, Tendsto (fun n => f n ω) atTop (𝓝 (ℱ.limitProcess f μ ω)) := by
classical
- suffices
- ∃ g, strongly_measurable[⨆ n, ℱ n] g ∧ ∀ᵐ ω ∂μ, tendsto (fun n => f n ω) at_top (𝓝 (g ω))
- by
- rw [limit_process, dif_pos this]
- exact (Classical.choose_spec this).2
- set g' : Ω → ℝ := fun ω => if h : ∃ c, tendsto (fun n => f n ω) at_top (𝓝 c) then h.some else 0
- have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
- have hg' : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g' ω)) :=
- by
- filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd]with ω hω
- simp_rw [g', dif_pos hω]
- exact hω.some_spec
- have hg'm : @ae_strongly_measurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
- (@aemeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
- (fun n =>
- ((hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
- le_rfl).AEMeasurable)
- hg').AEStronglyMeasurable
- obtain ⟨g, hgm, hae⟩ := hg'm
- have hg : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g ω)) :=
- by
- filter_upwards [hae, hg']with ω hω hg'ω
- exact hω ▸ hg'ω
- exact ⟨g, hgm, measure_eq_zero_of_trim_eq_zero hle hg⟩
+ suffices ∃ g, strongly_measurable[⨆ n, ℱ n] g ∧ ∀ᵐ ω ∂μ, tendsto (fun n => f n ω) at_top (𝓝 (g ω))
+ by
+ rw [limit_process, dif_pos this]
+ exact (Classical.choose_spec this).2
+ set g' : Ω → ℝ := fun ω => if h : ∃ c, tendsto (fun n => f n ω) at_top (𝓝 c) then h.some else 0
+ have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
+ have hg' : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g' ω)) :=
+ by
+ filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with ω hω
+ simp_rw [g', dif_pos hω]
+ exact hω.some_spec
+ have hg'm : @ae_strongly_measurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
+ (@aemeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
+ (fun n =>
+ ((hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
+ le_rfl).AEMeasurable)
+ hg').AEStronglyMeasurable
+ obtain ⟨g, hgm, hae⟩ := hg'm
+ have hg : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g ω)) :=
+ by
+ filter_upwards [hae, hg'] with ω hω hg'ω
+ exact hω ▸ hg'ω
+ exact ⟨g, hgm, measure_eq_zero_of_trim_eq_zero hle hg⟩
#align measure_theory.submartingale.ae_tendsto_limit_process MeasureTheory.Submartingale.ae_tendsto_limitProcess
/-- The limiting process of an Lᵖ-bounded submartingale is Lᵖ. -/
@@ -275,7 +275,7 @@ end AeConvergence
section L1Convergence
-variable [FiniteMeasure μ] {g : Ω → ℝ}
+variable [IsFiniteMeasure μ] {g : Ω → ℝ}
/-!
@@ -382,7 +382,7 @@ theorem Martingale.eq_condexp_of_tendsto_snorm {μ : Measure Ω} (hf : Martingal
have hev : ∀ m ≥ n, snorm (μ[f m - g|ℱ n]) 1 μ = snorm (f n - μ[g|ℱ n]) 1 μ :=
by
refine' fun m hm => snorm_congr_ae ((condexp_sub (hf.integrable m) hg).trans _)
- filter_upwards [hf.2 n m hm]with x hx
+ filter_upwards [hf.2 n m hm] with x hx
simp only [hx, Pi.sub_apply]
exact tendsto_nhds_unique (tendsto_atTop_of_eventually_const hev) ht
#align measure_theory.martingale.eq_condexp_of_tendsto_snorm MeasureTheory.Martingale.eq_condexp_of_tendsto_snorm
@@ -415,8 +415,8 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
(mem_ℒp_limit_process_of_snorm_bdd hunif.1 hR).Integrable le_rfl
suffices g =ᵐ[μ] ℱ.limit_process (fun n x => (μ[g|ℱ n]) x) μ
by
- filter_upwards [this,
- (martingale_condexp g ℱ μ).Submartingale.ae_tendsto_limitProcess hR]with x heq ht
+ filter_upwards [this, (martingale_condexp g ℱ μ).Submartingale.ae_tendsto_limitProcess hR] with
+ x heq ht
rwa [HEq]
have :
∀ n s,
@@ -426,7 +426,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
intro n s hs
rw [← set_integral_condexp (ℱ.le n) hg hs, ← set_integral_condexp (ℱ.le n) hlimint hs]
refine' set_integral_congr_ae (ℱ.le _ _ hs) _
- filter_upwards [(martingale_condexp g ℱ μ).ae_eq_condexp_limitProcess hunif n]with x hx _
+ filter_upwards [(martingale_condexp g ℱ μ).ae_eq_condexp_limitProcess hunif n] with x hx _
rwa [hx]
refine'
ae_eq_of_forall_set_integral_eq_of_sigma_finite' hle (fun s _ _ => hg.integrable_on)
@@ -489,7 +489,7 @@ theorem tendsto_ae_condexp (g : Ω → ℝ) :
have heq : ∀ n, ∀ᵐ x ∂μ, (μ[μ[g|⨆ n, ℱ n]|ℱ n]) x = (μ[g|ℱ n]) x := fun n =>
condexp_condexp_of_le (le_iSup _ n) (iSup_le fun n => ℱ.le n)
rw [← ae_all_iff] at heq
- filter_upwards [HEq, ht]with x hxeq hxt
+ filter_upwards [HEq, ht] with x hxeq hxt
exact hxt.congr hxeq
#align measure_theory.tendsto_ae_condexp MeasureTheory.tendsto_ae_condexp
@@ -503,7 +503,7 @@ theorem tendsto_snorm_condexp (g : Ω → ℝ) :
have heq : ∀ n, ∀ᵐ x ∂μ, (μ[μ[g|⨆ n, ℱ n]|ℱ n]) x = (μ[g|ℱ n]) x := fun n =>
condexp_condexp_of_le (le_iSup _ n) (iSup_le fun n => ℱ.le n)
refine' ht.congr fun n => snorm_congr_ae _
- filter_upwards [HEq n]with x hxeq
+ filter_upwards [HEq n] with x hxeq
simp only [hxeq, Pi.sub_apply]
#align measure_theory.tendsto_snorm_condexp MeasureTheory.tendsto_snorm_condexp
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -114,12 +114,12 @@ then it does not frequently visit both below `a` and above `b`. -/
theorem not_frequently_of_upcrossings_lt_top (hab : a < b) (hω : upcrossings a b f ω ≠ ∞) :
¬((∃ᶠ n in atTop, f n ω < a) ∧ ∃ᶠ n in atTop, b < f n ω) :=
by
- rw [← lt_top_iff_ne_top, upcrossings_lt_top_iff] at hω
+ rw [← lt_top_iff_ne_top, upcrossings_lt_top_iff] at hω
replace hω : ∃ k, ∀ N, upcrossings_before a b f N ω < k
· obtain ⟨k, hk⟩ := hω
exact ⟨k + 1, fun N => lt_of_le_of_lt (hk N) k.lt_succ_self⟩
rintro ⟨h₁, h₂⟩
- rw [frequently_at_top] at h₁ h₂
+ rw [frequently_at_top] at h₁ h₂
refine' Classical.not_not.2 hω _
push_neg
intro k
@@ -151,7 +151,7 @@ theorem tendsto_of_uncrossing_lt_top (hf₁ : liminf (fun n => (‖f n ω‖₊
∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
by
by_cases h : is_bounded_under (· ≤ ·) at_top fun n => |f n ω|
- · rw [is_bounded_under_le_abs] at h
+ · rw [is_bounded_under_le_abs] at h
refine' tendsto_of_no_upcrossings Rat.denseRange_cast _ h.1 h.2
· intro a ha b hb hab
obtain ⟨⟨a, rfl⟩, ⟨b, rfl⟩⟩ := ha, hb
@@ -167,11 +167,11 @@ theorem Submartingale.upcrossings_ae_lt_top' [FiniteMeasure μ] (hf : Submarting
by
refine' ae_lt_top (hf.adapted.measurable_upcrossings hab) _
have := hf.mul_lintegral_upcrossings_le_lintegral_pos_part a b
- rw [mul_comm, ← ENNReal.le_div_iff_mul_le] at this
+ rw [mul_comm, ← ENNReal.le_div_iff_mul_le] at this
· refine' (lt_of_le_of_lt this (ENNReal.div_lt_top _ _)).Ne
· have hR' : ∀ n, (∫⁻ ω, ‖f n ω - a‖₊ ∂μ) ≤ R + ‖a‖₊ * μ Set.univ :=
by
- simp_rw [snorm_one_eq_lintegral_nnnorm] at hbdd
+ simp_rw [snorm_one_eq_lintegral_nnnorm] at hbdd
intro n
refine' (lintegral_mono _ : (∫⁻ ω, ‖f n ω - a‖₊ ∂μ) ≤ ∫⁻ ω, ‖f n ω‖₊ + ‖a‖₊ ∂μ).trans _
· intro ω
@@ -449,7 +449,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
have hheq :=
@integral_add_compl _ _ (⨆ n, ℱ n) _ _ _ _ _ _ htmeas
(hlimint.trim hle strongly_measurable_limit_process)
- rw [add_comm, ← eq_sub_iff_add_eq] at hgeq hheq
+ rw [add_comm, ← eq_sub_iff_add_eq] at hgeq hheq
rw [set_integral_trim hle hgmeas htmeas.compl,
set_integral_trim hle strongly_measurable_limit_process htmeas.compl, hgeq, hheq, ←
set_integral_trim hle hgmeas htmeas, ←
@@ -488,7 +488,7 @@ theorem tendsto_ae_condexp (g : Ω → ℝ) :
integrable_condexp.tendsto_ae_condexp strongly_measurable_condexp
have heq : ∀ n, ∀ᵐ x ∂μ, (μ[μ[g|⨆ n, ℱ n]|ℱ n]) x = (μ[g|ℱ n]) x := fun n =>
condexp_condexp_of_le (le_iSup _ n) (iSup_le fun n => ℱ.le n)
- rw [← ae_all_iff] at heq
+ rw [← ae_all_iff] at heq
filter_upwards [HEq, ht]with x hxeq hxt
exact hxt.congr hxeq
#align measure_theory.tendsto_ae_condexp MeasureTheory.tendsto_ae_condexp
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -49,7 +49,7 @@ theorems.
open TopologicalSpace Filter MeasureTheory.Filtration
-open NNReal ENNReal MeasureTheory ProbabilityTheory BigOperators Topology
+open scoped NNReal ENNReal MeasureTheory ProbabilityTheory BigOperators Topology
namespace MeasureTheory
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -255,7 +255,7 @@ theorem Submartingale.ae_tendsto_limitProcess [FiniteMeasure μ] (hf : Submartin
(fun n =>
((hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
le_rfl).AEMeasurable)
- hg').AeStronglyMeasurable
+ hg').AEStronglyMeasurable
obtain ⟨g, hgm, hae⟩ := hg'm
have hg : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g ω)) :=
by
@@ -268,7 +268,7 @@ theorem Submartingale.ae_tendsto_limitProcess [FiniteMeasure μ] (hf : Submartin
theorem Submartingale.memℒp_limitProcess {p : ℝ≥0∞} (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) p μ ≤ R) : Memℒp (ℱ.limitProcess f μ) p μ :=
memℒp_limitProcess_of_snorm_bdd
- (fun n => ((hf.StronglyMeasurable n).mono (ℱ.le n)).AeStronglyMeasurable) hbdd
+ (fun n => ((hf.StronglyMeasurable n).mono (ℱ.le n)).AEStronglyMeasurable) hbdd
#align measure_theory.submartingale.mem_ℒp_limit_process MeasureTheory.Submartingale.memℒp_limitProcess
end AeConvergence
@@ -350,7 +350,7 @@ theorem Submartingale.tendsto_snorm_one_limitProcess (hf : Submartingale f ℱ
by
obtain ⟨R, hR⟩ := hunif.2.2
have hmeas : ∀ n, ae_strongly_measurable (f n) μ := fun n =>
- ((hf.strongly_measurable n).mono (ℱ.le _)).AeStronglyMeasurable
+ ((hf.strongly_measurable n).mono (ℱ.le _)).AEStronglyMeasurable
exact
tendsto_Lp_of_tendsto_in_measure _ le_rfl ENNReal.one_ne_top hmeas
(mem_ℒp_limit_process_of_snorm_bdd hmeas hR) hunif.2.1
@@ -373,7 +373,7 @@ theorem Martingale.eq_condexp_of_tendsto_snorm {μ : Measure Ω} (hf : Martingal
rw [← sub_ae_eq_zero, ←
snorm_eq_zero_iff
(((hf.strongly_measurable n).mono (ℱ.le _)).sub
- (strongly_measurable_condexp.mono (ℱ.le _))).AeStronglyMeasurable
+ (strongly_measurable_condexp.mono (ℱ.le _))).AEStronglyMeasurable
one_ne_zero]
have ht : tendsto (fun m => snorm (μ[f m - g|ℱ n]) 1 μ) at_top (𝓝 0) :=
haveI hint : ∀ m, integrable (f m - g) μ := fun m => (hf.integrable m).sub hg
@@ -472,10 +472,10 @@ theorem Integrable.tendsto_snorm_condexp (hg : Integrable g μ)
(hgmeas : strongly_measurable[⨆ n, ℱ n] g) :
Tendsto (fun n => snorm (μ[g|ℱ n] - g) 1 μ) atTop (𝓝 0) :=
tendsto_Lp_of_tendstoInMeasure _ le_rfl ENNReal.one_ne_top
- (fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AeStronglyMeasurable)
+ (fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AEStronglyMeasurable)
(memℒp_one_iff_integrable.2 hg) hg.uniformIntegrable_condexp_filtration.2.1
(tendstoInMeasure_of_tendsto_ae
- (fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AeStronglyMeasurable)
+ (fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AEStronglyMeasurable)
(hg.tendsto_ae_condexp hgmeas))
#align measure_theory.integrable.tendsto_snorm_condexp MeasureTheory.Integrable.tendsto_snorm_condexp
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -251,7 +251,7 @@ theorem Submartingale.ae_tendsto_limitProcess [FiniteMeasure μ] (hf : Submartin
simp_rw [g', dif_pos hω]
exact hω.some_spec
have hg'm : @ae_strongly_measurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
- (@aEMeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
+ (@aemeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
(fun n =>
((hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
le_rfl).AEMeasurable)
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -181,7 +181,7 @@ theorem Submartingale.upcrossings_ae_lt_top' [FiniteMeasure μ] (hf : Submarting
exact add_le_add (hbdd _) le_rfl
refine'
ne_of_lt
- (supᵢ_lt_iff.2
+ (iSup_lt_iff.2
⟨R + ‖a‖₊ * μ Set.univ,
ENNReal.add_lt_top.2
⟨ENNReal.coe_lt_top, ENNReal.mul_lt_top ennreal.coe_lt_top.ne (measure_ne_top _ _)⟩,
@@ -220,7 +220,7 @@ theorem Submartingale.exists_ae_tendsto_of_bdd [FiniteMeasure μ] (hf : Submarti
theorem Submartingale.exists_ae_trim_tendsto_of_bdd [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
- ∀ᵐ ω ∂μ.trim (supₛ_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : (⨆ n, ℱ n) ≤ m0),
+ ∀ᵐ ω ∂μ.trim (sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : (⨆ n, ℱ n) ≤ m0),
∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
by
rw [ae_iff, trim_measurable_set_eq]
@@ -229,7 +229,7 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [FiniteMeasure μ] (hf : Sub
exact
MeasurableSet.compl
(@measurable_set_exists_tendsto _ _ _ _ _ _ (⨆ n, ℱ n) _ _ _ _ _ fun n =>
- (hf.strongly_measurable n).Measurable.mono (le_supₛ ⟨n, rfl⟩) le_rfl)
+ (hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩) le_rfl)
#align measure_theory.submartingale.exists_ae_trim_tendsto_of_bdd MeasureTheory.Submartingale.exists_ae_trim_tendsto_of_bdd
/-- **Almost everywhere martingale convergence theorem**: An L¹-bounded submartingale converges
@@ -244,7 +244,7 @@ theorem Submartingale.ae_tendsto_limitProcess [FiniteMeasure μ] (hf : Submartin
rw [limit_process, dif_pos this]
exact (Classical.choose_spec this).2
set g' : Ω → ℝ := fun ω => if h : ∃ c, tendsto (fun n => f n ω) at_top (𝓝 c) then h.some else 0
- have hle : (⨆ n, ℱ n) ≤ m0 := supₛ_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
+ have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
have hg' : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g' ω)) :=
by
filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd]with ω hω
@@ -253,7 +253,7 @@ theorem Submartingale.ae_tendsto_limitProcess [FiniteMeasure μ] (hf : Submartin
have hg'm : @ae_strongly_measurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
(@aEMeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
(fun n =>
- ((hf.strongly_measurable n).Measurable.mono (le_supₛ ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
+ ((hf.strongly_measurable n).Measurable.mono (le_sSup ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
le_rfl).AEMeasurable)
hg').AeStronglyMeasurable
obtain ⟨g, hgm, hae⟩ := hg'm
@@ -407,7 +407,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
(hgmeas : strongly_measurable[⨆ n, ℱ n] g) :
∀ᵐ x ∂μ, Tendsto (fun n => (μ[g|ℱ n]) x) atTop (𝓝 (g x)) :=
by
- have hle : (⨆ n, ℱ n) ≤ m0 := supₛ_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
+ have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
have hunif : uniform_integrable (fun n => μ[g|ℱ n]) 1 μ :=
hg.uniform_integrable_condexp_filtration
obtain ⟨R, hR⟩ := hunif.2.2
@@ -433,7 +433,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
(fun s _ _ => hlimint.integrable_on) (fun s hs => _) hgmeas.ae_strongly_measurable'
strongly_measurable_limit_process.ae_strongly_measurable'
refine'
- @MeasurableSpace.induction_on_inter _ _ _ (⨆ n, ℱ n) (MeasurableSpace.measurableSpace_supᵢ_eq ℱ)
+ @MeasurableSpace.induction_on_inter _ _ _ (⨆ n, ℱ n) (MeasurableSpace.measurableSpace_iSup_eq ℱ)
_ _ _ _ _ _ hs
· rintro s ⟨n, hs⟩ t ⟨m, ht⟩ -
by_cases hnm : n ≤ m
@@ -487,7 +487,7 @@ theorem tendsto_ae_condexp (g : Ω → ℝ) :
have ht : ∀ᵐ x ∂μ, tendsto (fun n => (μ[μ[g|⨆ n, ℱ n]|ℱ n]) x) at_top (𝓝 ((μ[g|⨆ n, ℱ n]) x)) :=
integrable_condexp.tendsto_ae_condexp strongly_measurable_condexp
have heq : ∀ n, ∀ᵐ x ∂μ, (μ[μ[g|⨆ n, ℱ n]|ℱ n]) x = (μ[g|ℱ n]) x := fun n =>
- condexp_condexp_of_le (le_supᵢ _ n) (supᵢ_le fun n => ℱ.le n)
+ condexp_condexp_of_le (le_iSup _ n) (iSup_le fun n => ℱ.le n)
rw [← ae_all_iff] at heq
filter_upwards [HEq, ht]with x hxeq hxt
exact hxt.congr hxeq
@@ -501,7 +501,7 @@ theorem tendsto_snorm_condexp (g : Ω → ℝ) :
have ht : tendsto (fun n => snorm (μ[μ[g|⨆ n, ℱ n]|ℱ n] - μ[g|⨆ n, ℱ n]) 1 μ) at_top (𝓝 0) :=
integrable_condexp.tendsto_snorm_condexp strongly_measurable_condexp
have heq : ∀ n, ∀ᵐ x ∂μ, (μ[μ[g|⨆ n, ℱ n]|ℱ n]) x = (μ[g|ℱ n]) x := fun n =>
- condexp_condexp_of_le (le_supᵢ _ n) (supᵢ_le fun n => ℱ.le n)
+ condexp_condexp_of_le (le_iSup _ n) (iSup_le fun n => ℱ.le n)
refine' ht.congr fun n => snorm_congr_ae _
filter_upwards [HEq n]with x hxeq
simp only [hxeq, Pi.sub_apply]
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -162,7 +162,7 @@ theorem tendsto_of_uncrossing_lt_top (hf₁ : liminf (fun n => (‖f n ω‖₊
#align measure_theory.tendsto_of_uncrossing_lt_top MeasureTheory.tendsto_of_uncrossing_lt_top
/-- An L¹-bounded submartingale has bounded upcrossings almost everywhere. -/
-theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.upcrossings_ae_lt_top' [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) (hab : a < b) : ∀ᵐ ω ∂μ, upcrossings a b f ω < ∞ :=
by
refine' ae_lt_top (hf.adapted.measurable_upcrossings hab) _
@@ -200,7 +200,7 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
· simp only [Ne.def, ENNReal.ofReal_ne_top, not_false_iff, true_or_iff]
#align measure_theory.submartingale.upcrossings_ae_lt_top' MeasureTheory.Submartingale.upcrossings_ae_lt_top'
-theorem Submartingale.upcrossings_ae_lt_top [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.upcrossings_ae_lt_top [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) : ∀ᵐ ω ∂μ, ∀ a b : ℚ, a < b → upcrossings a b f ω < ∞ :=
by
simp only [ae_all_iff, eventually_imp_distrib_left]
@@ -209,7 +209,7 @@ theorem Submartingale.upcrossings_ae_lt_top [IsFiniteMeasure μ] (hf : Submartin
#align measure_theory.submartingale.upcrossings_ae_lt_top MeasureTheory.Submartingale.upcrossings_ae_lt_top
/-- An L¹-bounded submartingale converges almost everywhere. -/
-theorem Submartingale.exists_ae_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.exists_ae_tendsto_of_bdd [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) : ∀ᵐ ω ∂μ, ∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
by
filter_upwards [hf.upcrossings_ae_lt_top hbdd,
@@ -218,7 +218,7 @@ theorem Submartingale.exists_ae_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submar
exact tendsto_of_uncrossing_lt_top h₂ h₁
#align measure_theory.submartingale.exists_ae_tendsto_of_bdd MeasureTheory.Submartingale.exists_ae_tendsto_of_bdd
-theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.exists_ae_trim_tendsto_of_bdd [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
∀ᵐ ω ∂μ.trim (supₛ_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : (⨆ n, ℱ n) ≤ m0),
∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) :=
@@ -234,7 +234,7 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : S
/-- **Almost everywhere martingale convergence theorem**: An L¹-bounded submartingale converges
almost everywhere to a `⨆ n, ℱ n`-measurable function. -/
-theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
+theorem Submartingale.ae_tendsto_limitProcess [FiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
∀ᵐ ω ∂μ, Tendsto (fun n => f n ω) atTop (𝓝 (ℱ.limitProcess f μ ω)) := by
classical
@@ -275,7 +275,7 @@ end AeConvergence
section L1Convergence
-variable [IsFiniteMeasure μ] {g : Ω → ℝ}
+variable [FiniteMeasure μ] {g : Ω → ℝ}
/-!
mathlib commit https://github.com/leanprover-community/mathlib/commit/92c69b77c5a7dc0f7eeddb552508633305157caa
@@ -251,10 +251,10 @@ theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submart
simp_rw [g', dif_pos hω]
exact hω.some_spec
have hg'm : @ae_strongly_measurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
- (@aeMeasurableOfTendstoMetrizableAe' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
+ (@aEMeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
(fun n =>
((hf.strongly_measurable n).Measurable.mono (le_supₛ ⟨n, rfl⟩ : ℱ n ≤ ⨆ n, ℱ n)
- le_rfl).AeMeasurable)
+ le_rfl).AEMeasurable)
hg').AeStronglyMeasurable
obtain ⟨g, hgm, hae⟩ := hg'm
have hg : ∀ᵐ ω ∂μ.trim hle, tendsto (fun n => f n ω) at_top (𝓝 (g ω)) :=
@@ -265,11 +265,11 @@ theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submart
#align measure_theory.submartingale.ae_tendsto_limit_process MeasureTheory.Submartingale.ae_tendsto_limitProcess
/-- The limiting process of an Lᵖ-bounded submartingale is Lᵖ. -/
-theorem Submartingale.memℒpLimitProcess {p : ℝ≥0∞} (hf : Submartingale f ℱ μ)
+theorem Submartingale.memℒp_limitProcess {p : ℝ≥0∞} (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) p μ ≤ R) : Memℒp (ℱ.limitProcess f μ) p μ :=
- memℒpLimitProcessOfSnormBdd
+ memℒp_limitProcess_of_snorm_bdd
(fun n => ((hf.StronglyMeasurable n).mono (ℱ.le n)).AeStronglyMeasurable) hbdd
-#align measure_theory.submartingale.mem_ℒp_limit_process MeasureTheory.Submartingale.memℒpLimitProcess
+#align measure_theory.submartingale.mem_ℒp_limit_process MeasureTheory.Submartingale.memℒp_limitProcess
end AeConvergence
@@ -393,7 +393,7 @@ expectation of its limiting process wrt. `ℱ n`. -/
theorem Martingale.ae_eq_condexp_limitProcess (hf : Martingale f ℱ μ)
(hbdd : UniformIntegrable f 1 μ) (n : ℕ) : f n =ᵐ[μ] μ[ℱ.limitProcess f μ|ℱ n] :=
let ⟨R, hR⟩ := hbdd.2.2
- hf.eq_condexp_of_tendsto_snorm ((memℒpLimitProcessOfSnormBdd hbdd.1 hR).Integrable le_rfl)
+ hf.eq_condexp_of_tendsto_snorm ((memℒp_limitProcess_of_snorm_bdd hbdd.1 hR).Integrable le_rfl)
(hf.Submartingale.tendsto_snorm_one_limitProcess hbdd) n
#align measure_theory.martingale.ae_eq_condexp_limit_process MeasureTheory.Martingale.ae_eq_condexp_limitProcess
@@ -473,8 +473,8 @@ theorem Integrable.tendsto_snorm_condexp (hg : Integrable g μ)
Tendsto (fun n => snorm (μ[g|ℱ n] - g) 1 μ) atTop (𝓝 0) :=
tendsto_Lp_of_tendstoInMeasure _ le_rfl ENNReal.one_ne_top
(fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AeStronglyMeasurable)
- (memℒp_one_iff_integrable.2 hg) hg.uniformIntegrableCondexpFiltration.2.1
- (tendstoInMeasureOfTendstoAe
+ (memℒp_one_iff_integrable.2 hg) hg.uniformIntegrable_condexp_filtration.2.1
+ (tendstoInMeasure_of_tendsto_ae
(fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AeStronglyMeasurable)
(hg.tendsto_ae_condexp hgmeas))
#align measure_theory.integrable.tendsto_snorm_condexp MeasureTheory.Integrable.tendsto_snorm_condexp
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -49,7 +49,7 @@ theorems.
open TopologicalSpace Filter MeasureTheory.Filtration
-open NNReal Ennreal MeasureTheory ProbabilityTheory BigOperators Topology
+open NNReal ENNReal MeasureTheory ProbabilityTheory BigOperators Topology
namespace MeasureTheory
@@ -156,7 +156,7 @@ theorem tendsto_of_uncrossing_lt_top (hf₁ : liminf (fun n => (‖f n ω‖₊
· intro a ha b hb hab
obtain ⟨⟨a, rfl⟩, ⟨b, rfl⟩⟩ := ha, hb
exact not_frequently_of_upcrossings_lt_top hab (hf₂ a b (Rat.cast_lt.1 hab)).Ne
- · obtain ⟨a, b, hab, h₁, h₂⟩ := Ennreal.exists_upcrossings_of_not_bounded_under hf₁.ne h
+ · obtain ⟨a, b, hab, h₁, h₂⟩ := ENNReal.exists_upcrossings_of_not_bounded_under hf₁.ne h
exact
False.elim ((hf₂ a b hab).Ne (upcrossings_eq_top_of_frequently_lt (Rat.cast_lt.2 hab) h₁ h₂))
#align measure_theory.tendsto_of_uncrossing_lt_top MeasureTheory.tendsto_of_uncrossing_lt_top
@@ -167,15 +167,15 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
by
refine' ae_lt_top (hf.adapted.measurable_upcrossings hab) _
have := hf.mul_lintegral_upcrossings_le_lintegral_pos_part a b
- rw [mul_comm, ← Ennreal.le_div_iff_mul_le] at this
- · refine' (lt_of_le_of_lt this (Ennreal.div_lt_top _ _)).Ne
+ rw [mul_comm, ← ENNReal.le_div_iff_mul_le] at this
+ · refine' (lt_of_le_of_lt this (ENNReal.div_lt_top _ _)).Ne
· have hR' : ∀ n, (∫⁻ ω, ‖f n ω - a‖₊ ∂μ) ≤ R + ‖a‖₊ * μ Set.univ :=
by
simp_rw [snorm_one_eq_lintegral_nnnorm] at hbdd
intro n
refine' (lintegral_mono _ : (∫⁻ ω, ‖f n ω - a‖₊ ∂μ) ≤ ∫⁻ ω, ‖f n ω‖₊ + ‖a‖₊ ∂μ).trans _
· intro ω
- simp_rw [sub_eq_add_neg, ← nnnorm_neg a, ← Ennreal.coe_add, Ennreal.coe_le_coe]
+ simp_rw [sub_eq_add_neg, ← nnnorm_neg a, ← ENNReal.coe_add, ENNReal.coe_le_coe]
exact nnnorm_add_le _ _
· simp_rw [lintegral_add_right _ measurable_const, lintegral_const]
exact add_le_add (hbdd _) le_rfl
@@ -183,21 +183,21 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
ne_of_lt
(supᵢ_lt_iff.2
⟨R + ‖a‖₊ * μ Set.univ,
- Ennreal.add_lt_top.2
- ⟨Ennreal.coe_lt_top, Ennreal.mul_lt_top ennreal.coe_lt_top.ne (measure_ne_top _ _)⟩,
+ ENNReal.add_lt_top.2
+ ⟨ENNReal.coe_lt_top, ENNReal.mul_lt_top ennreal.coe_lt_top.ne (measure_ne_top _ _)⟩,
fun n => le_trans _ (hR' n)⟩)
refine' lintegral_mono fun ω => _
- rw [Ennreal.ofReal_le_iff_le_toReal, Ennreal.coe_toReal, coe_nnnorm]
+ rw [ENNReal.ofReal_le_iff_le_toReal, ENNReal.coe_toReal, coe_nnnorm]
by_cases hnonneg : 0 ≤ f n ω - a
·
rw [LatticeOrderedCommGroup.pos_of_nonneg _ hnonneg, Real.norm_eq_abs,
abs_of_nonneg hnonneg]
· rw [LatticeOrderedCommGroup.pos_of_nonpos _ (not_le.1 hnonneg).le]
exact norm_nonneg _
- · simp only [Ne.def, Ennreal.coe_ne_top, not_false_iff]
- · simp only [hab, Ne.def, Ennreal.ofReal_eq_zero, sub_nonpos, not_le]
- · simp only [hab, Ne.def, Ennreal.ofReal_eq_zero, sub_nonpos, not_le, true_or_iff]
- · simp only [Ne.def, Ennreal.ofReal_ne_top, not_false_iff, true_or_iff]
+ · simp only [Ne.def, ENNReal.coe_ne_top, not_false_iff]
+ · simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
+ · simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le, true_or_iff]
+ · simp only [Ne.def, ENNReal.ofReal_ne_top, not_false_iff, true_or_iff]
#align measure_theory.submartingale.upcrossings_ae_lt_top' MeasureTheory.Submartingale.upcrossings_ae_lt_top'
theorem Submartingale.upcrossings_ae_lt_top [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
@@ -352,7 +352,7 @@ theorem Submartingale.tendsto_snorm_one_limitProcess (hf : Submartingale f ℱ
have hmeas : ∀ n, ae_strongly_measurable (f n) μ := fun n =>
((hf.strongly_measurable n).mono (ℱ.le _)).AeStronglyMeasurable
exact
- tendsto_Lp_of_tendsto_in_measure _ le_rfl Ennreal.one_ne_top hmeas
+ tendsto_Lp_of_tendsto_in_measure _ le_rfl ENNReal.one_ne_top hmeas
(mem_ℒp_limit_process_of_snorm_bdd hmeas hR) hunif.2.1
(tendsto_in_measure_of_tendsto_ae hmeas <| hf.ae_tendsto_limit_process hR)
#align measure_theory.submartingale.tendsto_snorm_one_limit_process MeasureTheory.Submartingale.tendsto_snorm_one_limitProcess
@@ -471,7 +471,7 @@ This martingale also converges to `g` almost everywhere and this result is provi
theorem Integrable.tendsto_snorm_condexp (hg : Integrable g μ)
(hgmeas : strongly_measurable[⨆ n, ℱ n] g) :
Tendsto (fun n => snorm (μ[g|ℱ n] - g) 1 μ) atTop (𝓝 0) :=
- tendsto_Lp_of_tendstoInMeasure _ le_rfl Ennreal.one_ne_top
+ tendsto_Lp_of_tendstoInMeasure _ le_rfl ENNReal.one_ne_top
(fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).AeStronglyMeasurable)
(memℒp_one_iff_integrable.2 hg) hg.uniformIntegrableCondexpFiltration.2.1
(tendstoInMeasureOfTendstoAe
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -173,10 +173,10 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
fun n => le_trans _ (hR' n)⟩)
refine' lintegral_mono fun ω => _
rw [ENNReal.ofReal_le_iff_le_toReal, ENNReal.coe_toReal, coe_nnnorm]
- by_cases hnonneg : 0 ≤ f n ω - a
- · rw [posPart_eq_self.2 hnonneg, Real.norm_eq_abs, abs_of_nonneg hnonneg]
- · rw [posPart_eq_zero.2 (not_le.1 hnonneg).le]
- exact norm_nonneg _
+ · by_cases hnonneg : 0 ≤ f n ω - a
+ · rw [posPart_eq_self.2 hnonneg, Real.norm_eq_abs, abs_of_nonneg hnonneg]
+ · rw [posPart_eq_zero.2 (not_le.1 hnonneg).le]
+ exact norm_nonneg _
· simp only [Ne, ENNReal.coe_ne_top, not_false_iff]
· simp only [hab, Ne, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
· simp only [hab, Ne, ENNReal.ofReal_eq_zero, sub_nonpos, not_le, true_or_iff]
set_integral
with setIntegral
(#12215)
Done with a global search and replace, and then (to fix the #align
lines), replace (#align \S*)setIntegral
with $1set_integral
.
@@ -384,11 +384,11 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
have : ∀ n s, MeasurableSet[ℱ n] s →
∫ x in s, g x ∂μ = ∫ x in s, ℱ.limitProcess (fun n x => (μ[g|ℱ n]) x) μ x ∂μ := by
intro n s hs
- rw [← set_integral_condexp (ℱ.le n) hg hs, ← set_integral_condexp (ℱ.le n) hlimint hs]
- refine' set_integral_congr_ae (ℱ.le _ _ hs) _
+ rw [← setIntegral_condexp (ℱ.le n) hg hs, ← setIntegral_condexp (ℱ.le n) hlimint hs]
+ refine' setIntegral_congr_ae (ℱ.le _ _ hs) _
filter_upwards [(martingale_condexp g ℱ μ).ae_eq_condexp_limitProcess hunif n] with x hx _
rw [hx]
- refine' ae_eq_of_forall_set_integral_eq_of_sigmaFinite' hle (fun s _ _ => hg.integrableOn)
+ refine' ae_eq_of_forall_setIntegral_eq_of_sigmaFinite' hle (fun s _ _ => hg.integrableOn)
(fun s _ _ => hlimint.integrableOn) (fun s hs => _) hgmeas.aeStronglyMeasurable'
stronglyMeasurable_limitProcess.aeStronglyMeasurable'
apply @MeasurableSpace.induction_on_inter _ _ _ (⨆ n, ℱ n)
@@ -406,10 +406,10 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
have hheq := @integral_add_compl _ _ (⨆ n, ℱ n) _ _ _ _ _ htmeas
(hlimint.trim hle stronglyMeasurable_limitProcess)
rw [add_comm, ← eq_sub_iff_add_eq] at hgeq hheq
- rw [set_integral_trim hle hgmeas htmeas.compl,
- set_integral_trim hle stronglyMeasurable_limitProcess htmeas.compl, hgeq, hheq, ←
- set_integral_trim hle hgmeas htmeas, ←
- set_integral_trim hle stronglyMeasurable_limitProcess htmeas, ← integral_trim hle hgmeas, ←
+ rw [setIntegral_trim hle hgmeas htmeas.compl,
+ setIntegral_trim hle stronglyMeasurable_limitProcess htmeas.compl, hgeq, hheq, ←
+ setIntegral_trim hle hgmeas htmeas, ←
+ setIntegral_trim hle stronglyMeasurable_limitProcess htmeas, ← integral_trim hle hgmeas, ←
integral_trim hle stronglyMeasurable_limitProcess, ← integral_univ,
this 0 _ MeasurableSet.univ, integral_univ, ht (measure_lt_top _ _)]
· rintro f hf hfmeas heq -
@@ -177,10 +177,10 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
· rw [posPart_eq_self.2 hnonneg, Real.norm_eq_abs, abs_of_nonneg hnonneg]
· rw [posPart_eq_zero.2 (not_le.1 hnonneg).le]
exact norm_nonneg _
- · simp only [Ne.def, ENNReal.coe_ne_top, not_false_iff]
- · simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
- · simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le, true_or_iff]
- · simp only [Ne.def, ENNReal.ofReal_ne_top, not_false_iff, true_or_iff]
+ · simp only [Ne, ENNReal.coe_ne_top, not_false_iff]
+ · simp only [hab, Ne, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
+ · simp only [hab, Ne, ENNReal.ofReal_eq_zero, sub_nonpos, not_le, true_or_iff]
+ · simp only [Ne, ENNReal.ofReal_ne_top, not_false_iff, true_or_iff]
#align measure_theory.submartingale.upcrossings_ae_lt_top' MeasureTheory.Submartingale.upcrossings_ae_lt_top'
theorem Submartingale.upcrossings_ae_lt_top [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -51,7 +51,6 @@ open scoped NNReal ENNReal MeasureTheory ProbabilityTheory BigOperators Topology
namespace MeasureTheory
variable {Ω ι : Type*} {m0 : MeasurableSpace Ω} {μ : Measure Ω} {ℱ : Filtration ℕ m0}
-
variable {a b : ℝ} {f : ℕ → Ω → ℝ} {ω : Ω} {R : ℝ≥0}
section AeConvergence
This is a very large PR, but it has been reviewed piecemeal already in PRs to the bump/v4.7.0
branch as we update to intermediate nightlies.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: damiano <adomani@gmail.com>
@@ -224,7 +224,7 @@ theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submart
have hle : ⨆ n, ℱ n ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
have hg' : ∀ᵐ ω ∂μ.trim hle, Tendsto (fun n => f n ω) atTop (𝓝 (g' ω)) := by
filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with ω hω
- simp_rw [dif_pos hω]
+ simp_rw [g', dif_pos hω]
exact hω.choose_spec
have hg'm : @AEStronglyMeasurable _ _ _ (⨆ n, ℱ n) g' (μ.trim hle) :=
(@aemeasurable_of_tendsto_metrizable_ae' _ _ (⨆ n, ℱ n) _ _ _ _ _ _ _
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -111,8 +111,8 @@ then it does not frequently visit both below `a` and above `b`. -/
theorem not_frequently_of_upcrossings_lt_top (hab : a < b) (hω : upcrossings a b f ω ≠ ∞) :
¬((∃ᶠ n in atTop, f n ω < a) ∧ ∃ᶠ n in atTop, b < f n ω) := by
rw [← lt_top_iff_ne_top, upcrossings_lt_top_iff] at hω
- replace hω : ∃ k, ∀ N, upcrossingsBefore a b f N ω < k
- · obtain ⟨k, hk⟩ := hω
+ replace hω : ∃ k, ∀ N, upcrossingsBefore a b f N ω < k := by
+ obtain ⟨k, hk⟩ := hω
exact ⟨k + 1, fun N => lt_of_le_of_lt (hk N) k.lt_succ_self⟩
rintro ⟨h₁, h₂⟩
rw [frequently_atTop] at h₁ h₂
A variable
declaration made (μ)
an explicit argument, even though it could be deduced from other arguments in almost all cases. The declaration was removed and the change propagated to other files.
@@ -323,7 +323,7 @@ theorem Submartingale.tendsto_snorm_one_limitProcess (hf : Submartingale f ℱ
obtain ⟨R, hR⟩ := hunif.2.2
have hmeas : ∀ n, AEStronglyMeasurable (f n) μ := fun n =>
((hf.stronglyMeasurable n).mono (ℱ.le _)).aestronglyMeasurable
- exact tendsto_Lp_of_tendstoInMeasure _ le_rfl ENNReal.one_ne_top hmeas
+ exact tendsto_Lp_of_tendstoInMeasure le_rfl ENNReal.one_ne_top hmeas
(memℒp_limitProcess_of_snorm_bdd hmeas hR) hunif.2.1
(tendstoInMeasure_of_tendsto_ae hmeas <| hf.ae_tendsto_limitProcess hR)
#align measure_theory.submartingale.tendsto_snorm_one_limit_process MeasureTheory.Submartingale.tendsto_snorm_one_limitProcess
@@ -428,7 +428,7 @@ This martingale also converges to `g` almost everywhere and this result is provi
theorem Integrable.tendsto_snorm_condexp (hg : Integrable g μ)
(hgmeas : StronglyMeasurable[⨆ n, ℱ n] g) :
Tendsto (fun n => snorm (μ[g|ℱ n] - g) 1 μ) atTop (𝓝 0) :=
- tendsto_Lp_of_tendstoInMeasure _ le_rfl ENNReal.one_ne_top
+ tendsto_Lp_of_tendstoInMeasure le_rfl ENNReal.one_ne_top
(fun n => (stronglyMeasurable_condexp.mono (ℱ.le n)).aestronglyMeasurable)
(memℒp_one_iff_integrable.2 hg) hg.uniformIntegrable_condexp_filtration.2.1
(tendstoInMeasure_of_tendsto_ae
@@ -175,9 +175,8 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
refine' lintegral_mono fun ω => _
rw [ENNReal.ofReal_le_iff_le_toReal, ENNReal.coe_toReal, coe_nnnorm]
by_cases hnonneg : 0 ≤ f n ω - a
- · rw [LatticeOrderedGroup.pos_of_nonneg _ hnonneg, Real.norm_eq_abs,
- abs_of_nonneg hnonneg]
- · rw [LatticeOrderedGroup.pos_of_nonpos _ (not_le.1 hnonneg).le]
+ · rw [posPart_eq_self.2 hnonneg, Real.norm_eq_abs, abs_of_nonneg hnonneg]
+ · rw [posPart_eq_zero.2 (not_le.1 hnonneg).le]
exact norm_nonneg _
· simp only [Ne.def, ENNReal.coe_ne_top, not_false_iff]
· simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
$
with <|
(#9319)
See Zulip thread for the discussion.
@@ -207,7 +207,7 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : S
letI := (⨆ n, ℱ n)
rw [ae_iff, trim_measurableSet_eq]
· exact hf.exists_ae_tendsto_of_bdd hbdd
- · exact MeasurableSet.compl $ measurableSet_exists_tendsto
+ · exact MeasurableSet.compl <| measurableSet_exists_tendsto
fun n => (hf.stronglyMeasurable n).measurable.mono (le_sSup ⟨n, rfl⟩) le_rfl
#align measure_theory.submartingale.exists_ae_trim_tendsto_of_bdd MeasureTheory.Submartingale.exists_ae_trim_tendsto_of_bdd
This is the supremum of
along with some minor fixes from failures on nightly-testing as Mathlib master
is merged into it.
Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.
I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0
branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.
In particular this includes adjustments for the Lean PRs
We can get rid of all the
local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)
macros across Mathlib (and in any projects that want to write natural number powers of reals).
Changes the default behaviour of simp
to (config := {decide := false})
. This makes simp
(and consequentially norm_num
) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp
or norm_num
to decide
or rfl
, or adding (config := {decide := true})
.
This changed the behaviour of simp
so that simp [f]
will only unfold "fully applied" occurrences of f
. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true })
. We may in future add a syntax for this, e.g. simp [!f]
; please provide feedback! In the meantime, we have made the following changes:
(config := { unfoldPartialApp := true })
in some places, to recover the old behaviour@[eqns]
to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp
and Function.flip
.This change in Lean may require further changes down the line (e.g. adding the !f
syntax, and/or upstreaming the special treatment for Function.comp
and Function.flip
, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!
Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>
@@ -399,7 +399,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
by_cases hnm : n ≤ m
· exact ⟨m, (ℱ.mono hnm _ hs).inter ht⟩
· exact ⟨n, hs.inter (ℱ.mono (not_le.1 hnm).le _ ht)⟩
- · simp only [measure_empty, WithTop.zero_lt_top, Measure.restrict_empty, integral_zero_measure,
+ · simp only [measure_empty, ENNReal.zero_lt_top, Measure.restrict_empty, integral_zero_measure,
forall_true_left]
· rintro t ⟨n, ht⟩ -
exact this n _ ht
add a class StandardBorelSpace
, whose relationship to PolishSpace
is analogous to the relationship between PolishSpace
and complete metric space. The usefulness is shown by _root_.MeasurableSet.standardBorel
: A measurable subset of a standard Borel space is Polish. Note that a borel measurable subset of a Polish space will not typically be Polish in the induced topology!
Specific things done in this PR:
StandardBorelSpace
[MeasurableSpace X] [TopologicalSpace X] [BorelSpace X] [PolishSpace X]
but which do not refer to the topology on X
to depend instead on [MeasurableSpace X][StandardBorelSpace X]
. These automatically generalize the old theorems thanks to standardBorel_of_polish
.I believe this sort of refactoring can be pushed a lot farther in future PRs.
Co-authored-by: Felix-Weilacher <112423742+Felix-Weilacher@users.noreply.github.com>
@@ -204,10 +204,11 @@ theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : S
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
∀ᵐ ω ∂μ.trim (sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : ⨆ n, ℱ n ≤ m0),
∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) := by
- rw [@ae_iff _ (⨆ n, ℱ n) _ _, trim_measurableSet_eq]
+ letI := (⨆ n, ℱ n)
+ rw [ae_iff, trim_measurableSet_eq]
· exact hf.exists_ae_tendsto_of_bdd hbdd
- · exact MeasurableSet.compl (@measurableSet_exists_tendsto _ _ _ _ _ _ (⨆ n, ℱ n) _ _ _ _ _
- fun n => (hf.stronglyMeasurable n).measurable.mono (le_sSup ⟨n, rfl⟩) le_rfl)
+ · exact MeasurableSet.compl $ measurableSet_exists_tendsto
+ fun n => (hf.stronglyMeasurable n).measurable.mono (le_sSup ⟨n, rfl⟩) le_rfl
#align measure_theory.submartingale.exists_ae_trim_tendsto_of_bdd MeasureTheory.Submartingale.exists_ae_trim_tendsto_of_bdd
/-- **Almost everywhere martingale convergence theorem**: An L¹-bounded submartingale converges
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -50,7 +50,7 @@ open scoped NNReal ENNReal MeasureTheory ProbabilityTheory BigOperators Topology
namespace MeasureTheory
-variable {Ω ι : Type _} {m0 : MeasurableSpace Ω} {μ : Measure Ω} {ℱ : Filtration ℕ m0}
+variable {Ω ι : Type*} {m0 : MeasurableSpace Ω} {μ : Measure Ω} {ℱ : Filtration ℕ m0}
variable {a b : ℝ} {f : ℕ → Ω → ℝ} {ω : Ω} {R : ℝ≥0}
@@ -175,9 +175,9 @@ theorem Submartingale.upcrossings_ae_lt_top' [IsFiniteMeasure μ] (hf : Submarti
refine' lintegral_mono fun ω => _
rw [ENNReal.ofReal_le_iff_le_toReal, ENNReal.coe_toReal, coe_nnnorm]
by_cases hnonneg : 0 ≤ f n ω - a
- · rw [LatticeOrderedCommGroup.pos_of_nonneg _ hnonneg, Real.norm_eq_abs,
+ · rw [LatticeOrderedGroup.pos_of_nonneg _ hnonneg, Real.norm_eq_abs,
abs_of_nonneg hnonneg]
- · rw [LatticeOrderedCommGroup.pos_of_nonpos _ (not_le.1 hnonneg).le]
+ · rw [LatticeOrderedGroup.pos_of_nonpos _ (not_le.1 hnonneg).le]
exact norm_nonneg _
· simp only [Ne.def, ENNReal.coe_ne_top, not_false_iff]
· simp only [hab, Ne.def, ENNReal.ofReal_eq_zero, sub_nonpos, not_le]
@@ -2,16 +2,13 @@
Copyright (c) 2022 Kexing Ying. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Kexing Ying
-
-! This file was ported from Lean 3 source module probability.martingale.convergence
-! leanprover-community/mathlib commit f2ce6086713c78a7f880485f7917ea547a215982
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Probability.Martingale.Upcrossing
import Mathlib.MeasureTheory.Function.UniformIntegrable
import Mathlib.MeasureTheory.Constructions.Polish
+#align_import probability.martingale.convergence from "leanprover-community/mathlib"@"f2ce6086713c78a7f880485f7917ea547a215982"
+
/-!
# Martingale convergence theorems
The notion of Bochner integral of a function taking values in a normed space E
requires that E
is complete. This means that whenever we write down an integral, the term contains the assertion that E
is complete.
In this PR, we remove the completeness requirement from the definition, using the junk value 0
when the space is not complete. Mathematically this does not make any difference, as all reasonable applications will be with a complete E
. But it means that terms involving integrals become a little bit simpler and that completeness will not have to be checked by the system when applying a bunch of basic lemmas on integrals.
@@ -406,8 +406,8 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
· rintro t ⟨n, ht⟩ -
exact this n _ ht
· rintro t htmeas ht -
- have hgeq := @integral_add_compl _ _ (⨆ n, ℱ n) _ _ _ _ _ _ htmeas (hg.trim hle hgmeas)
- have hheq := @integral_add_compl _ _ (⨆ n, ℱ n) _ _ _ _ _ _ htmeas
+ have hgeq := @integral_add_compl _ _ (⨆ n, ℱ n) _ _ _ _ _ htmeas (hg.trim hle hgmeas)
+ have hheq := @integral_add_compl _ _ (⨆ n, ℱ n) _ _ _ _ _ htmeas
(hlimint.trim hle stronglyMeasurable_limitProcess)
rw [add_comm, ← eq_sub_iff_add_eq] at hgeq hheq
rw [set_integral_trim hle hgmeas htmeas.compl,
@@ -311,7 +311,7 @@ required.
Similar to the a.e. martingale convergence theorem, rather than showing the existence of the
limiting process, we phrase the L¹-martingale convergence theorem by proving that a submartingale
does converge in L¹ to its `limitProcess`. However, in contrast to the a.e. martingale convergence
-theorem, we do not need to introduce a L¹ version of `Filtration.limitProcess` as the L¹ limit
+theorem, we do not need to introduce an L¹ version of `Filtration.limitProcess` as the L¹ limit
and the a.e. limit of a submartingale coincide.
-/
@@ -366,7 +366,7 @@ theorem Martingale.ae_eq_condexp_limitProcess (hf : Martingale f ℱ μ)
(hf.submartingale.tendsto_snorm_one_limitProcess hbdd) n
#align measure_theory.martingale.ae_eq_condexp_limit_process MeasureTheory.Martingale.ae_eq_condexp_limitProcess
-/-- Part c of the **L¹ martingale convergence theorem**: Given a integrable function `g` which
+/-- Part c of the **L¹ martingale convergence theorem**: Given an integrable function `g` which
is measurable with respect to `⨆ n, ℱ n` where `ℱ` is a filtration, the martingale defined by
`𝔼[g | ℱ n]` converges almost everywhere to `g`.
@@ -422,7 +422,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
exact tsum_congr fun n => heq _ (measure_lt_top _ _)
#align measure_theory.integrable.tendsto_ae_condexp MeasureTheory.Integrable.tendsto_ae_condexp
-/-- Part c of the **L¹ martingale convergence theorem**: Given a integrable function `g` which
+/-- Part c of the **L¹ martingale convergence theorem**: Given an integrable function `g` which
is measurable with respect to `⨆ n, ℱ n` where `ℱ` is a filtration, the martingale defined by
`𝔼[g | ℱ n]` converges in L¹ to `g`.
@@ -96,7 +96,7 @@ as required.
Implementationwise, we have `tendsto_of_no_upcrossings` which shows that
a bounded sequence converges if it does not visit below $a$ and above $b$ infinitely often
for all $a, b ∈ s$ for some dense set $s$. So, we may skip the first step provided we can prove
-that the realizations are bounded almost everywhere. Indeed, suppose $(|f_n(\omega)|)$ is not
+that the realizations are bounded almost everywhere. Indeed, suppose $|f_n(\omega)|$ is not
bounded, then either $f_n(\omega) \to \pm \infty$ or one of $\limsup f_n(\omega)$ or
$\liminf f_n(\omega)$ equals $\pm \infty$ while the other is finite. But the first case
contradicts $\liminf |f_n(\omega)| < \infty$ while the second case contradicts finite upcrossings.
@@ -205,7 +205,7 @@ theorem Submartingale.exists_ae_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submar
theorem Submartingale.exists_ae_trim_tendsto_of_bdd [IsFiniteMeasure μ] (hf : Submartingale f ℱ μ)
(hbdd : ∀ n, snorm (f n) 1 μ ≤ R) :
- ∀ᵐ ω ∂μ.trim (sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : (⨆ n, ℱ n) ≤ m0),
+ ∀ᵐ ω ∂μ.trim (sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _ : ⨆ n, ℱ n ≤ m0),
∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) := by
rw [@ae_iff _ (⨆ n, ℱ n) _ _, trim_measurableSet_eq]
· exact hf.exists_ae_tendsto_of_bdd hbdd
@@ -224,7 +224,7 @@ theorem Submartingale.ae_tendsto_limitProcess [IsFiniteMeasure μ] (hf : Submart
rw [limitProcess, dif_pos this]
exact (Classical.choose_spec this).2
set g' : Ω → ℝ := fun ω => if h : ∃ c, Tendsto (fun n => f n ω) atTop (𝓝 c) then h.choose else 0
- have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
+ have hle : ⨆ n, ℱ n ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
have hg' : ∀ᵐ ω ∂μ.trim hle, Tendsto (fun n => f n ω) atTop (𝓝 (g' ω)) := by
filter_upwards [hf.exists_ae_trim_tendsto_of_bdd hbdd] with ω hω
simp_rw [dif_pos hω]
@@ -375,7 +375,7 @@ This martingale also converges to `g` in L¹ and this result is provided by
theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
(hgmeas : StronglyMeasurable[⨆ n, ℱ n] g) :
∀ᵐ x ∂μ, Tendsto (fun n => (μ[g|ℱ n]) x) atTop (𝓝 (g x)) := by
- have hle : (⨆ n, ℱ n) ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
+ have hle : ⨆ n, ℱ n ≤ m0 := sSup_le fun m ⟨n, hn⟩ => hn ▸ ℱ.le _
have hunif : UniformIntegrable (fun n => μ[g|ℱ n]) 1 μ :=
hg.uniformIntegrable_condexp_filtration
obtain ⟨R, hR⟩ := hunif.2.2
@@ -366,7 +366,7 @@ theorem Martingale.ae_eq_condexp_limitProcess (hf : Martingale f ℱ μ)
(hf.submartingale.tendsto_snorm_one_limitProcess hbdd) n
#align measure_theory.martingale.ae_eq_condexp_limit_process MeasureTheory.Martingale.ae_eq_condexp_limitProcess
-/-- Part c of the **L¹ martingale convergnce theorem**: Given a integrable function `g` which
+/-- Part c of the **L¹ martingale convergence theorem**: Given a integrable function `g` which
is measurable with respect to `⨆ n, ℱ n` where `ℱ` is a filtration, the martingale defined by
`𝔼[g | ℱ n]` converges almost everywhere to `g`.
@@ -422,7 +422,7 @@ theorem Integrable.tendsto_ae_condexp (hg : Integrable g μ)
exact tsum_congr fun n => heq _ (measure_lt_top _ _)
#align measure_theory.integrable.tendsto_ae_condexp MeasureTheory.Integrable.tendsto_ae_condexp
-/-- Part c of the **L¹ martingale convergnce theorem**: Given a integrable function `g` which
+/-- Part c of the **L¹ martingale convergence theorem**: Given a integrable function `g` which
is measurable with respect to `⨆ n, ℱ n` where `ℱ` is a filtration, the martingale defined by
`𝔼[g | ℱ n]` converges in L¹ to `g`.
The unported dependencies are
algebra.order.module
init.core
linear_algebra.free_module.finite.rank
algebra.order.monoid.cancel.defs
algebra.abs
algebra.group_power.lemmas
init.data.list.basic
linear_algebra.free_module.rank
init.data.list.default
algebra.order.monoid.cancel.basic
topology.subset_properties
init.logic
The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file