Theorem: MeasureTheory.Memℒp.induction_dense
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: rcases eq_or_ne p 0 with (rfl | hp_pos)
state_before: α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
⊢ ∃ g, snorm (f - g) p μ ≤ ε ∧ P g

tactic: suffices H :
  ∀ (f' : α →ₛ E) (δ : ℝ≥0∞) (hδ : δ ≠ 0), Memℒp f' p μ → ∃ g, snorm (⇑f' - g) p μ ≤ δ ∧ P g
state_before: case inr
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
⊢ ∃ g, snorm (f - g) p μ ≤ ε ∧ P g

tactic: apply SimpleFunc.induction
state_before: case H
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
⊢ ∀ (f' : α →ₛ E) (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g

tactic: rcases h0P (0 : E) MeasurableSet.empty (by simp only [measure_empty, WithTop.zero_lt_top])
    hε with ⟨g, _, Pg⟩
state_before: case inl
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
μ : Measure α
P : (α → E) → Prop
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
ε : ℝ≥0∞
hε : ε ≠ 0
hp_ne_top : 0 ≠ ⊤
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) 0 μ ≤ ε ∧ P g
hf : Memℒp f 0
⊢ ∃ g, snorm (f - g) 0 μ ≤ ε ∧ P g

tactic: exact ⟨g, by simp only [snorm_exponent_zero, zero_le'], Pg⟩
state_before: case inl.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
μ : Measure α
P : (α → E) → Prop
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
ε : ℝ≥0∞
hε : ε ≠ 0
hp_ne_top : 0 ≠ ⊤
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) 0 μ ≤ ε ∧ P g
hf : Memℒp f 0
g : α → E
left✝ : snorm (g - Set.indicator ∅ fun x => 0) 0 μ ≤ ε
Pg : P g
⊢ ∃ g, snorm (f - g) 0 μ ≤ ε ∧ P g

tactic: simp only [measure_empty, WithTop.zero_lt_top]
state_before: α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
μ : Measure α
P : (α → E) → Prop
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
ε : ℝ≥0∞
hε : ε ≠ 0
hp_ne_top : 0 ≠ ⊤
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) 0 μ ≤ ε ∧ P g
hf : Memℒp f 0
⊢ ↑↑μ ∅ < ⊤

tactic: simp only [snorm_exponent_zero, zero_le']
state_before: α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
μ : Measure α
P : (α → E) → Prop
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
ε : ℝ≥0∞
hε : ε ≠ 0
hp_ne_top : 0 ≠ ⊤
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) 0 μ ≤ ε ∧ P g
hf : Memℒp f 0
g : α → E
left✝ : snorm (g - Set.indicator ∅ fun x => 0) 0 μ ≤ ε
Pg : P g
⊢ snorm (f - g) 0 μ ≤ ε

tactic: obtain ⟨η, ηpos, hη⟩ := exists_Lp_half E μ p hε
state_before: case inr
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
H : ∀ (f' : α →ₛ E) (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
⊢ ∃ g, snorm (f - g) p μ ≤ ε ∧ P g

tactic: rcases hf.exists_simpleFunc_snorm_sub_lt hp_ne_top ηpos.ne' with ⟨f', hf', f'_mem⟩
state_before: case inr.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
H : ∀ (f' : α →ₛ E) (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < ε
⊢ ∃ g, snorm (f - g) p μ ≤ ε ∧ P g

tactic: rcases H f' η ηpos.ne' f'_mem with ⟨g, hg, Pg⟩
state_before: case inr.intro.intro.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
H : ∀ (f' : α →ₛ E) (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < ε
f' : α →ₛ E
hf' : snorm (f - ↑f') p μ < η
f'_mem : Memℒp (↑f') p
⊢ ∃ g, snorm (f - g) p μ ≤ ε ∧ P g

tactic: refine' ⟨g, _, Pg⟩
state_before: case inr.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
H : ∀ (f' : α →ₛ E) (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < ε
f' : α →ₛ E
hf' : snorm (f - ↑f') p μ < η
f'_mem : Memℒp (↑f') p
g : α → E
hg : snorm (↑f' - g) p μ ≤ η
Pg : P g
⊢ ∃ g, snorm (f - g) p μ ≤ ε ∧ P g

tactic: convert (hη _ _ (hf.aestronglyMeasurable.sub f'.aestronglyMeasurable)
      (f'.aestronglyMeasurable.sub (h2P g Pg)) hf'.le hg).le using 2
state_before: case inr.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
H : ∀ (f' : α →ₛ E) (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < ε
f' : α →ₛ E
hf' : snorm (f - ↑f') p μ < η
f'_mem : Memℒp (↑f') p
g : α → E
hg : snorm (↑f' - g) p μ ≤ η
Pg : P g
⊢ snorm (f - g) p μ ≤ ε

tactic: simp only [sub_add_sub_cancel]
state_before: case h.e'_3.h.e'_5
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
H : ∀ (f' : α →ₛ E) (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < ε
f' : α →ₛ E
hf' : snorm (f - ↑f') p μ < η
f'_mem : Memℒp (↑f') p
g : α → E
hg : snorm (↑f' - g) p μ ≤ η
Pg : P g
⊢ f - g = f - ↑f' + (↑f' - g)

tactic: intro c s hs ε εpos Hs
state_before: case H.h_ind
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
⊢ ∀ (c : E) {s : Set α} (hs : MeasurableSet s) (δ : ℝ≥0∞),
    δ ≠ 0 →
      Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0))) p →
        ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0)) - g) p μ ≤ δ ∧ P g

tactic: rcases eq_or_ne c 0 with (rfl | hc)
state_before: case H.h_ind
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
c : E
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0))) p
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: rcases h0P (0 : E) MeasurableSet.empty (by simp only [measure_empty, WithTop.zero_lt_top])
    εpos with ⟨g, hg, Pg⟩
state_before: case H.h_ind.inl
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0))) p
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: rw [← snorm_neg, neg_sub] at hg
state_before: case H.h_ind.inl.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0))) p
g : α → E
hg : snorm (g - Set.indicator ∅ fun x => 0) p μ ≤ ε
Pg : P g
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: refine' ⟨g, _, Pg⟩
state_before: case H.h_ind.inl.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0))) p
g : α → E
hg : snorm ((Set.indicator ∅ fun x => 0) - g) p μ ≤ ε
Pg : P g
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: convert hg
state_before: case H.h_ind.inl.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0))) p
g : α → E
hg : snorm ((Set.indicator ∅ fun x => 0) - g) p μ ≤ ε
Pg : P g
⊢ snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0)) - g) p μ ≤ ε

tactic: ext x
state_before: case h.e'_3.h.e'_5.h.e'_5
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0))) p
g : α → E
hg : snorm ((Set.indicator ∅ fun x => 0) - g) p μ ≤ ε
Pg : P g
⊢ ↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0)) = Set.indicator ∅ fun x => 0

tactic: simp only [SimpleFunc.const_zero, SimpleFunc.coe_piecewise, SimpleFunc.coe_zero,
  piecewise_eq_indicator, indicator_zero', Pi.zero_apply, indicator_zero]
state_before: case h.e'_3.h.e'_5.h.e'_5.h
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0))) p
g : α → E
hg : snorm ((Set.indicator ∅ fun x => 0) - g) p μ ≤ ε
Pg : P g
x : α
⊢ ↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0)) x = Set.indicator ∅ (fun x => 0) x

tactic: simp only [measure_empty, WithTop.zero_lt_top]
state_before: α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α 0) (SimpleFunc.const α 0))) p
⊢ ↑↑μ ∅ < ⊤

tactic: have : μ s < ∞ := SimpleFunc.measure_lt_top_of_memℒp_indicator hp_pos hp_ne_top hc hs Hs
state_before: case H.h_ind.inr
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
c : E
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0))) p
hc : c ≠ 0
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: rcases h0P c hs this εpos with ⟨g, hg, Pg⟩
state_before: case H.h_ind.inr
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
c : E
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0))) p
hc : c ≠ 0
this : ↑↑μ s < ⊤
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: rw [← snorm_neg, neg_sub] at hg
state_before: case H.h_ind.inr.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
c : E
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0))) p
hc : c ≠ 0
this : ↑↑μ s < ⊤
g : α → E
hg : snorm (g - Set.indicator s fun x => c) p μ ≤ ε
Pg : P g
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: exact ⟨g, hg, Pg⟩
state_before: case H.h_ind.inr.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε✝ : ℝ≥0∞
hε : ε✝ ≠ 0
hp_pos : p ≠ 0
c : E
s : Set α
hs : MeasurableSet s
ε : ℝ≥0∞
εpos : ε ≠ 0
Hs : Memℒp (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0))) p
hc : c ≠ 0
this : ↑↑μ s < ⊤
g : α → E
hg : snorm ((Set.indicator s fun x => c) - g) p μ ≤ ε
Pg : P g
⊢ ∃ g, snorm (↑(SimpleFunc.piecewise s hs (SimpleFunc.const α c) (SimpleFunc.const α 0)) - g) p μ ≤ ε ∧ P g

tactic: intro f f' hff' hf hf' δ δpos int_ff'
state_before: case H.h_add
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f : α → E
hf : Memℒp f p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
⊢ ∀ ⦃f g : α →ₛ E⦄,
    Disjoint (support ↑f) (support ↑g) →
      (∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g) →
        (∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑g) p → ∃ g_1, snorm (↑g - g_1) p μ ≤ δ ∧ P g_1) →
          ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑(f + g)) p → ∃ g_1, snorm (↑(f + g) - g_1) p μ ≤ δ ∧ P g_1

tactic: obtain ⟨η, ηpos, hη⟩ := exists_Lp_half E μ p δpos
state_before: case H.h_add
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑(f + f')) p
⊢ ∃ g, snorm (↑(f + f') - g) p μ ≤ δ ∧ P g

tactic: rw [SimpleFunc.coe_add,
  memℒp_add_of_disjoint hff' f.stronglyMeasurable f'.stronglyMeasurable] at int_ff'
state_before: case H.h_add.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑(f + f')) p
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
⊢ ∃ g, snorm (↑(f + f') - g) p μ ≤ δ ∧ P g

tactic: rcases hf η ηpos.ne' int_ff'.1 with ⟨g, hg, Pg⟩
state_before: case H.h_add.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑f) p ∧ Memℒp (↑f') p
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
⊢ ∃ g, snorm (↑(f + f') - g) p μ ≤ δ ∧ P g

tactic: rcases hf' η ηpos.ne' int_ff'.2 with ⟨g', hg', Pg'⟩
state_before: case H.h_add.intro.intro.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑f) p ∧ Memℒp (↑f') p
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
g : α → E
hg : snorm (↑f - g) p μ ≤ η
Pg : P g
⊢ ∃ g, snorm (↑(f + f') - g) p μ ≤ δ ∧ P g

tactic: refine' ⟨g + g', _, h1P g g' Pg Pg'⟩
state_before: case H.h_add.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑f) p ∧ Memℒp (↑f') p
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
g : α → E
hg : snorm (↑f - g) p μ ≤ η
Pg : P g
g' : α → E
hg' : snorm (↑f' - g') p μ ≤ η
Pg' : P g'
⊢ ∃ g, snorm (↑(f + f') - g) p μ ≤ δ ∧ P g

tactic: convert (hη _ _ (f.aestronglyMeasurable.sub (h2P g Pg))
      (f'.aestronglyMeasurable.sub (h2P g' Pg')) hg hg').le using 2
state_before: case H.h_add.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑f) p ∧ Memℒp (↑f') p
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
g : α → E
hg : snorm (↑f - g) p μ ≤ η
Pg : P g
g' : α → E
hg' : snorm (↑f' - g') p μ ≤ η
Pg' : P g'
⊢ snorm (↑(f + f') - (g + g')) p μ ≤ δ

tactic: rw [SimpleFunc.coe_add]
state_before: case h.e'_3.h.e'_5
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑f) p ∧ Memℒp (↑f') p
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
g : α → E
hg : snorm (↑f - g) p μ ≤ η
Pg : P g
g' : α → E
hg' : snorm (↑f' - g') p μ ≤ η
Pg' : P g'
⊢ ↑(f + f') - (g + g') = ↑f - g + (↑f' - g')

tactic: abel
state_before: case h.e'_3.h.e'_5
α : Type u_1
β : Type ?u.3350178
ι : Type ?u.3350181
E : Type u_2
F : Type ?u.3350187
𝕜 : Type ?u.3350190
inst✝¹ : MeasurableSpace α
inst✝ : NormedAddCommGroup E
f✝¹ : α → E
p : ℝ≥0∞
μ : Measure α
hp_ne_top : p ≠ ⊤
P : (α → E) → Prop
h0P :
  ∀ (c : E) ⦃s : Set α⦄,
    MeasurableSet s → ↑↑μ s < ⊤ → ∀ {ε : ℝ≥0∞}, ε ≠ 0 → ∃ g, snorm (g - Set.indicator s fun x => c) p μ ≤ ε ∧ P g
h1P : ∀ (f g : α → E), P f → P g → P (f + g)
h2P : ∀ (f : α → E), P f → AEStronglyMeasurable f μ
f✝ : α → E
hf✝ : Memℒp f✝ p
ε : ℝ≥0∞
hε : ε ≠ 0
hp_pos : p ≠ 0
f f' : α →ₛ E
hff' : Disjoint (support ↑f) (support ↑f')
hf : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f) p → ∃ g, snorm (↑f - g) p μ ≤ δ ∧ P g
hf' : ∀ (δ : ℝ≥0∞), δ ≠ 0 → Memℒp (↑f') p → ∃ g, snorm (↑f' - g) p μ ≤ δ ∧ P g
δ : ℝ≥0∞
δpos : δ ≠ 0
int_ff' : Memℒp (↑f) p ∧ Memℒp (↑f') p
η : ℝ≥0∞
ηpos : 0 < η
hη :
  ∀ (f g : α → E),
    AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
g : α → E
hg : snorm (↑f - g) p μ ≤ η
Pg : P g
g' : α → E
hg' : snorm (↑f' - g') p μ ≤ η
Pg' : P g'
⊢ ↑f + ↑f' - (g + g') = ↑f - g + (↑f' - g')