Theorem: MeasureTheory.snorm_add_le
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: by_cases hp0 : p = 0
state_before: α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
⊢ snorm (f + g) p μ ≤ snorm f p μ + snorm g p μ

tactic: by_cases hp_top : p = ∞
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : ¬p = 0
⊢ snorm (f + g) p μ ≤ snorm f p μ + snorm g p μ

tactic: have hp1_real : 1 ≤ p.toReal := by
  rwa [← ENNReal.one_toReal, ENNReal.toReal_le_toReal ENNReal.one_ne_top hp_top]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm (f + g) p μ ≤ snorm f p μ + snorm g p μ

tactic: repeat rw [snorm_eq_snorm' hp0 hp_top]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : ¬p = 0
hp_top : ¬p = ⊤
hp1_real : 1 ≤ ENNReal.toReal p
⊢ snorm (f + g) p μ ≤ snorm f p μ + snorm g p μ

tactic: exact snorm'_add_le hf hg hp1_real
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : ¬p = 0
hp_top : ¬p = ⊤
hp1_real : 1 ≤ ENNReal.toReal p
⊢ snorm' (f + g) (ENNReal.toReal p) μ ≤ snorm' f (ENNReal.toReal p) μ + snorm' g (ENNReal.toReal p) μ

tactic: simp [hp0]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : p = 0
⊢ snorm (f + g) p μ ≤ snorm f p μ + snorm g p μ

tactic: simp [hp_top, snormEssSup_add_le]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ snorm (f + g) p μ ≤ snorm f p μ + snorm g p μ

tactic: rwa [← ENNReal.one_toReal, ENNReal.toReal_le_toReal ENNReal.one_ne_top hp_top]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ 1 ≤ ENNReal.toReal p

tactic: rw [snorm_eq_snorm' hp0 hp_top]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.2940197
G : Type ?u.2940200
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
hp1 : 1 ≤ p
hp0 : ¬p = 0
hp_top : ¬p = ⊤
hp1_real : 1 ≤ ENNReal.toReal p
⊢ snorm' (f + g) (ENNReal.toReal p) μ ≤ snorm' f (ENNReal.toReal p) μ + snorm' g (ENNReal.toReal p) μ