Theorem: MeasureTheory.uniformIntegrable_finite
File: Mathlib/MeasureTheory/Function/UniformIntegrable.lean

tactic: cases nonempty_fintype ι
state_before: α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : ∀ (i : ι), Memℒp (f i) p
⊢ UniformIntegrable f p μ

tactic: refine' ⟨fun n => (hf n).1, unifIntegrable_finite μ hp_one hp_top hf, _⟩
state_before: case intro
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : ∀ (i : ι), Memℒp (f i) p
val✝ : Fintype ι
⊢ UniformIntegrable f p μ

tactic: by_cases hι : Nonempty ι
state_before: case intro
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : ∀ (i : ι), Memℒp (f i) p
val✝ : Fintype ι
⊢ ∃ C, ∀ (i : ι), snorm (f i) p μ ≤ ↑C

tactic: choose _ hf using hf
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : ∀ (i : ι), Memℒp (f i) p
val✝ : Fintype ι
hι : Nonempty ι
⊢ ∃ C, ∀ (i : ι), snorm (f i) p μ ≤ ↑C

tactic: set C := (Finset.univ.image fun i : ι => snorm (f i) p μ).max'
  ⟨snorm (f hι.some) p μ, Finset.mem_image.2 ⟨hι.some, Finset.mem_univ _, rfl⟩⟩
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
⊢ ∃ C, ∀ (i : ι), snorm (f i) p μ ≤ ↑C

tactic: refine' ⟨C.toNNReal, fun i => _⟩
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
C : ℝ≥0∞ :=
  Finset.max' (Finset.image (fun i => snorm (f i) p μ) Finset.univ)
    (_ : ∃ x, x ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ)
⊢ ∃ C, ∀ (i : ι), snorm (f i) p μ ≤ ↑C

tactic: rw [ENNReal.coe_toNNReal]
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
C : ℝ≥0∞ :=
  Finset.max' (Finset.image (fun i => snorm (f i) p μ) Finset.univ)
    (_ : ∃ x, x ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ)
i : ι
⊢ snorm (f i) p μ ≤ ↑(ENNReal.toNNReal C)

tactic: exact Finset.le_max' (α := ℝ≥0∞) _ _ (Finset.mem_image.2 ⟨i, Finset.mem_univ _, rfl⟩)
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
C : ℝ≥0∞ :=
  Finset.max' (Finset.image (fun i => snorm (f i) p μ) Finset.univ)
    (_ : ∃ x, x ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ)
i : ι
⊢ snorm (f i) p μ ≤ C

tactic: refine' ne_of_lt ((Finset.max'_lt_iff _ _).2 fun y hy => _)
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
C : ℝ≥0∞ :=
  Finset.max' (Finset.image (fun i => snorm (f i) p μ) Finset.univ)
    (_ : ∃ x, x ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ)
i : ι
⊢ C ≠ ⊤

tactic: rw [Finset.mem_image] at hy
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
C : ℝ≥0∞ :=
  Finset.max' (Finset.image (fun i => snorm (f i) p μ) Finset.univ)
    (_ : ∃ x, x ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ)
i : ι
y : ℝ≥0∞
hy : y ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ
⊢ y < ⊤

tactic: obtain ⟨i, -, rfl⟩ := hy
state_before: case pos
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
C : ℝ≥0∞ :=
  Finset.max' (Finset.image (fun i => snorm (f i) p μ) Finset.univ)
    (_ : ∃ x, x ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ)
i : ι
y : ℝ≥0∞
hy : ∃ a, a ∈ Finset.univ ∧ snorm (f a) p μ = y
⊢ y < ⊤

tactic: exact hf i
state_before: case pos.intro.intro
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
val✝ : Fintype ι
hι : Nonempty ι
h✝ : ∀ (i : ι), AEStronglyMeasurable (f i) μ
hf : ∀ (i : ι), snorm (f i) p μ < ⊤
C : ℝ≥0∞ :=
  Finset.max' (Finset.image (fun i => snorm (f i) p μ) Finset.univ)
    (_ : ∃ x, x ∈ Finset.image (fun i => snorm (f i) p μ) Finset.univ)
i✝ i : ι
⊢ snorm (f i) p μ < ⊤

tactic: exact ⟨0, fun i => False.elim <| hι <| Nonempty.intro i⟩
state_before: case neg
α : Type u_3
β : Type u_2
ι : Type u_1
m : MeasurableSpace α
μ : Measure α
inst✝¹ : NormedAddCommGroup β
p : ℝ≥0∞
f : ι → α → β
inst✝ : Finite ι
hp_one : 1 ≤ p
hp_top : p ≠ ⊤
hf : ∀ (i : ι), Memℒp (f i) p
val✝ : Fintype ι
hι : ¬Nonempty ι
⊢ ∃ C, ∀ (i : ι), snorm (f i) p μ ≤ ↑C