Theorem: MeasureTheory.tendsto_snorm_condexp
File: Mathlib/Probability/Martingale/Convergence.lean

tactic: have ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ℱ n]|ℱ n] - μ[g|⨆ n, ℱ n]) 1 μ) atTop (𝓝 0) :=
  integrable_condexp.tendsto_snorm_condexp stronglyMeasurable_condexp
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
⊢ Tendsto (fun n => snorm (μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
state_after: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
⊢ Tendsto (fun n => snorm (μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)

tactic: 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)
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
⊢ Tendsto (fun n => snorm (μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
state_after: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
heq : ∀ (n : ℕ), ∀ᵐ (x : Ω) ∂μ, (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
⊢ Tendsto (fun n => snorm (μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)

tactic: refine ht.congr fun n => snorm_congr_ae ?_
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
heq : ∀ (n : ℕ), ∀ᵐ (x : Ω) ∂μ, (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
⊢ Tendsto (fun n => snorm (μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
state_after: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
heq : ∀ (n : ℕ), ∀ᵐ (x : Ω) ∂μ, (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
n : ℕ
⊢ μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n] =ᶠ[ae μ] μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]

tactic: filter_upwards [heq n] with x hxeq
state_before: Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
heq : ∀ (n : ℕ), ∀ᵐ (x : Ω) ∂μ, (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
n : ℕ
⊢ μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n] =ᶠ[ae μ] μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]
state_after: case h
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
heq : ∀ (n : ℕ), ∀ᵐ (x : Ω) ∂μ, (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
n : ℕ
x : Ω
hxeq : (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
⊢ (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) x = (μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) x

tactic: simp only [hxeq, Pi.sub_apply]
state_before: case h
Ω : Type u_1
ι : Type u_2
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
a b : ℝ
f : ℕ → Ω → ℝ
ω : Ω
R : ℝ≥0
inst✝ : IsFiniteMeasure μ
g✝ g : Ω → ℝ
ht : Tendsto (fun n => snorm (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) 1 μ) atTop (𝓝 0)
heq : ∀ (n : ℕ), ∀ᵐ (x : Ω) ∂μ, (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
n : ℕ
x : Ω
hxeq : (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n]) x = (μ[g|↑ℱ n]) x
⊢ (μ[μ[g|⨆ n, ↑ℱ n]|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) x = (μ[g|↑ℱ n] - μ[g|⨆ n, ↑ℱ n]) x
state_after: no goals