Theorem: MeasureTheory.unifTight_finite
File: Mathlib/MeasureTheory/Function/UnifTight.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
state_after: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
tactic: obtain ⟨n, hn⟩ := Finite.exists_equiv_fin ι
state_before: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
state_after: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
tactic: set g : Fin n → α → β := f ∘ hn.some.symm
state_before: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
state_after: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
hg : ∀ (i : Fin n), Memℒp (g i) p μ
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
tactic: have hg : ∀ i, Memℒp (g i) p μ := fun _ => hf _
state_before: case intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
hg : ∀ (i : Fin n), Memℒp (g i) p μ
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
hg : ∀ (i : Fin n), Memℒp (g i) p μ
s : Set α
hμs : μ s ≠ ⊤
hfε : ∀ (i : Fin n), eLpNorm (sᶜ.indicator (g i)) p μ ≤ ↑ε
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
tactic: obtain ⟨s, hμs, hfε⟩ := unifTight_fin hp_top hg hε
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
hg : ∀ (i : Fin n), Memℒp (g i) p μ
s : Set α
hμs : μ s ≠ ⊤
hfε : ∀ (i : Fin n), eLpNorm (sᶜ.indicator (g i)) p μ ≤ ↑ε
⊢ ∃ s, μ s ≠ ⊤ ∧ ∀ (i : ι), eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
hg : ∀ (i : Fin n), Memℒp (g i) p μ
s : Set α
hμs : μ s ≠ ⊤
hfε : ∀ (i : Fin n), eLpNorm (sᶜ.indicator (g i)) p μ ≤ ↑ε
i : ι
⊢ eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
tactic: refine ⟨s, hμs, fun i => ?_⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
ι : Type u_3
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
f✝ g✝ : ι → α → β
p : ℝ≥0∞
inst✝ : Finite ι
hp_top : p ≠ ⊤
f : ι → α → β
hf : ∀ (i : ι), Memℒp (f i) p μ
ε : ℝ≥0
hε : 0 < ε
n : ℕ
hn : Nonempty (ι ≃ Fin n)
g : Fin n → α → β := f ∘ ⇑hn.some.symm
hg : ∀ (i : Fin n), Memℒp (g i) p μ
s : Set α
hμs : μ s ≠ ⊤
hfε : ∀ (i : Fin n), eLpNorm (sᶜ.indicator (g i)) p μ ≤ ↑ε
i : ι
⊢ eLpNorm (sᶜ.indicator (f i)) p μ ≤ ↑ε
state_after: no goals
tactic: simpa only [g, Function.comp_apply, Equiv.symm_apply_apply] using hfε (hn.some i)