Theorem: MeasureTheory.tendstoInMeasure_of_tendsto_eLpNorm_of_stronglyMeasurable
File: Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean

Proof steps:
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
hfg : Tendsto (fun n => eLpNorm (f n - g) p μ) l (𝓝 0)
⊢ TendstoInMeasure μ f l g
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
hfg : Tendsto (fun n => eLpNorm (f n - g) p μ) l (𝓝 0)
ε : ℝ
hε : 0 < ε
⊢ Tendsto (fun i => μ {x | ε ≤ dist (f i x) (g x)}) l (𝓝 0)
tactic: intro ε hε
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
hfg : Tendsto (fun n => eLpNorm (f n - g) p μ) l (𝓝 0)
ε : ℝ
hε : 0 < ε
⊢ Tendsto (fun i => μ {x | ε ≤ dist (f i x) (g x)}) l (𝓝 0)
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg :
  Tendsto (fun b => ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f b - g) p μ ^ p.toReal) l
    (𝓝 (ENNReal.ofReal (1 / ε ^ p.toReal) * 0 ^ p.toReal))
⊢ Tendsto (fun i => μ {x | ε ≤ dist (f i x) (g x)}) l (𝓝 0)
tactic: replace hfg := ENNReal.Tendsto.const_mul
    (Tendsto.ennrpow_const p.toReal hfg) (Or.inr <| @ENNReal.ofReal_ne_top (1 / ε ^ p.toReal))
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg :
  Tendsto (fun b => ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f b - g) p μ ^ p.toReal) l
    (𝓝 (ENNReal.ofReal (1 / ε ^ p.toReal) * 0 ^ p.toReal))
⊢ Tendsto (fun i => μ {x | ε ≤ dist (f i x) (g x)}) l (𝓝 0)
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : Tendsto (fun b => ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f b - g) p μ ^ p.toReal) l (𝓝 0)
⊢ Tendsto (fun i => μ {x | ε ≤ dist (f i x) (g x)}) l (𝓝 0)
tactic: simp only [mul_zero,
    ENNReal.zero_rpow_of_pos (ENNReal.toReal_pos hp_ne_zero hp_ne_top)] at hfg
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : Tendsto (fun b => ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f b - g) p μ ^ p.toReal) l (𝓝 0)
⊢ Tendsto (fun i => μ {x | ε ≤ dist (f i x) (g x)}) l (𝓝 0)
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
⊢ ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, μ {x_1 | ε ≤ dist (f x x_1) (g x_1)} ≤ ε_1
tactic: rw [ENNReal.tendsto_nhds_zero] at hfg ⊢
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
⊢ ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, μ {x_1 | ε ≤ dist (f x x_1) (g x_1)} ≤ ε_1
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
⊢ ∀ᶠ (x : ι) in l, μ {x_1 | ε ≤ dist (f x x_1) (g x_1)} ≤ δ
tactic: intro δ hδ
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
⊢ ∀ᶠ (x : ι) in l, μ {x_1 | ε ≤ dist (f x x_1) (g x_1)} ≤ δ
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
n : ι
hn : ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal ≤ δ
⊢ μ {x | ε ≤ dist (f n x) (g x)} ≤ δ
tactic: refine (hfg δ hδ).mono fun n hn => ?_
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
n : ι
hn : ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal ≤ δ
⊢ μ {x | ε ≤ dist (f n x) (g x)} ≤ δ
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
n : ι
hn : ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal ≤ δ
⊢ μ {x | ε ≤ dist (f n x) (g x)} ≤ ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal
tactic: refine le_trans ?_ hn
state_before: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
n : ι
hn : ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal ≤ δ
⊢ μ {x | ε ≤ dist (f n x) (g x)} ≤ ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal
state_after: α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
n : ι
hn : ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal ≤ δ
⊢ ENNReal.ofReal (ε ^ p.toReal) * μ {x | ε ≤ dist (f n x) (g x)} ≤ eLpNorm (f n - g) p μ ^ p.toReal

α : Type u_1
ι : Type u_2
E : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
f : ι → α → E
g : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : ∀ (n : ι), StronglyMeasurable (f n)
hg : StronglyMeasurable g
l : Filter ι
ε : ℝ
hε : 0 < ε
hfg : ∀ ε_1 > 0, ∀ᶠ (x : ι) in l, ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f x - g) p μ ^ p.toReal ≤ ε_1
δ : ℝ≥0∞
hδ : δ > 0
n : ι
hn : ENNReal.ofReal (1 / ε ^ p.toReal) * eLpNorm (f n - g) p μ ^ p.toReal ≤ δ
⊢ ENNReal.ofReal (ε ^ p.toReal) ≠ 0 ∨ eLpNorm (f n - g) p μ ^ p.toReal ≠ 0
tactic: rw [ENNReal.ofReal_div_of_pos (Real.rpow_pos_of_pos hε _), ENNReal.ofReal_one, mul_comm,
    mul_one_div, ENNReal.le_div_iff_mul_le _ (Or.inl ENNReal.ofReal_ne_top), mul_comm]