[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α → F
⊢ snorm f p μ = snorm' f (ENNReal.toReal p) μ
[PROOFSTEP]
simp [snorm, hp_ne_zero, hp_ne_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α → F
⊢ snorm f p μ = (∫⁻ (x : α), ↑‖f x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rw [snorm_eq_snorm' hp_ne_zero hp_ne_top, snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm f 1 μ = ∫⁻ (x : α), ↑‖f x‖₊ ∂μ
[PROOFSTEP]
simp_rw [snorm_eq_lintegral_rpow_nnnorm one_ne_zero ENNReal.coe_ne_top, ENNReal.one_toReal, one_div_one,
  ENNReal.rpow_one]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm f ⊤ μ = snormEssSup f μ
[PROOFSTEP]
simp [snorm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq0_lt : 0 < q
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = snorm' f q μ ^ q
[PROOFSTEP]
rw [snorm', ← ENNReal.rpow_mul, one_div, inv_mul_cancel, ENNReal.rpow_one]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq0_lt : 0 < q
⊢ q ≠ 0
[PROOFSTEP]
exact (ne_of_lt hq0_lt).symm
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq0_lt : 0 < q
hfq : snorm' f q μ < ⊤
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ < ⊤
[PROOFSTEP]
rw [lintegral_rpow_nnnorm_eq_rpow_snorm' hq0_lt]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq0_lt : 0 < q
hfq : snorm' f q μ < ⊤
⊢ snorm' (fun a => f a) q μ ^ q < ⊤
[PROOFSTEP]
exact ENNReal.rpow_lt_top_of_nonneg (le_of_lt hq0_lt) (ne_of_lt hfq)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hfp : snorm f p μ < ⊤
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ ENNReal.toReal p ∂μ < ⊤
[PROOFSTEP]
apply lintegral_rpow_nnnorm_lt_top_of_snorm'_lt_top
[GOAL]
case hq0_lt
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hfp : snorm f p μ < ⊤
⊢ 0 < ENNReal.toReal p
[PROOFSTEP]
exact ENNReal.toReal_pos hp_ne_zero hp_ne_top
[GOAL]
case hfq
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hfp : snorm f p μ < ⊤
⊢ snorm' (fun a => f a) (ENNReal.toReal p) μ < ⊤
[PROOFSTEP]
simpa [snorm_eq_snorm' hp_ne_zero hp_ne_top] using hfp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ ENNReal.toReal p ∂μ < ⊤ → snorm f p μ < ⊤
[PROOFSTEP]
intro h
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ ENNReal.toReal p ∂μ < ⊤
⊢ snorm f p μ < ⊤
[PROOFSTEP]
have hp' := ENNReal.toReal_pos hp_ne_zero hp_ne_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ ENNReal.toReal p ∂μ < ⊤
hp' : 0 < ENNReal.toReal p
⊢ snorm f p μ < ⊤
[PROOFSTEP]
have : 0 < 1 / p.toReal := div_pos zero_lt_one hp'
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ ENNReal.toReal p ∂μ < ⊤
hp' : 0 < ENNReal.toReal p
this : 0 < 1 / ENNReal.toReal p
⊢ snorm f p μ < ⊤
[PROOFSTEP]
simpa [snorm_eq_lintegral_rpow_nnnorm hp_ne_zero hp_ne_top] using
  ENNReal.rpow_lt_top_of_nonneg (le_of_lt this) (ne_of_lt h)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm' f 0 μ = 1
[PROOFSTEP]
rw [snorm', _root_.div_zero, ENNReal.rpow_zero]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm f 0 μ = 0
[PROOFSTEP]
simp [snorm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
⊢ Memℒp f 0 ↔ AEStronglyMeasurable f μ
[PROOFSTEP]
simp [Memℒp, snorm_exponent_zero]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp0_lt : 0 < q
⊢ snorm' 0 q μ = 0
[PROOFSTEP]
simp [snorm', hp0_lt]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq0_ne : q ≠ 0
hμ : μ ≠ 0
⊢ snorm' 0 q μ = 0
[PROOFSTEP]
cases' le_or_lt 0 q with hq0 hq_neg
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq0_ne : q ≠ 0
hμ : μ ≠ 0
hq0 : 0 ≤ q
⊢ snorm' 0 q μ = 0
[PROOFSTEP]
exact snorm'_zero (lt_of_le_of_ne hq0 hq0_ne.symm)
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq0_ne : q ≠ 0
hμ : μ ≠ 0
hq_neg : q < 0
⊢ snorm' 0 q μ = 0
[PROOFSTEP]
simp [snorm', ENNReal.rpow_eq_zero_iff, hμ, hq_neg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ snormEssSup 0 μ = 0
[PROOFSTEP]
simp_rw [snormEssSup, Pi.zero_apply, nnnorm_zero, ENNReal.coe_zero, ← ENNReal.bot_eq_zero]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ essSup (fun x => ⊥) μ = ⊥
[PROOFSTEP]
exact essSup_const_bot
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ snorm 0 p μ = 0
[PROOFSTEP]
by_cases h0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
h0 : p = 0
⊢ snorm 0 p μ = 0
[PROOFSTEP]
simp [h0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
h0 : ¬p = 0
⊢ snorm 0 p μ = 0
[PROOFSTEP]
by_cases h_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm 0 p μ = 0
[PROOFSTEP]
simp only [h_top, snorm_exponent_top, snormEssSup_zero]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm 0 p μ = 0
[PROOFSTEP]
rw [← Ne.def] at h0 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
h0 : p ≠ 0
h_top : ¬p = ⊤
⊢ snorm 0 p μ = 0
[PROOFSTEP]
simp [snorm_eq_snorm' h0 h_top, ENNReal.toReal_pos h0 h_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ snorm (fun x => 0) p μ = 0
[PROOFSTEP]
convert snorm_zero (F := F)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ snorm 0 p μ < ⊤
[PROOFSTEP]
rw [snorm_zero]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ 0 < ⊤
[PROOFSTEP]
exact ENNReal.coe_lt_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
hq_pos : 0 < q
⊢ snorm' f q 0 = 0
[PROOFSTEP]
simp [snorm', hq_pos]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
⊢ snorm' f 0 0 = 1
[PROOFSTEP]
simp [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
hq_neg : q < 0
⊢ snorm' f q 0 = ⊤
[PROOFSTEP]
simp [snorm', hq_neg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
⊢ snormEssSup f 0 = 0
[PROOFSTEP]
simp [snormEssSup]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
⊢ snorm f p 0 = 0
[PROOFSTEP]
by_cases h0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
h0 : p = 0
⊢ snorm f p 0 = 0
[PROOFSTEP]
simp [h0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
h0 : ¬p = 0
⊢ snorm f p 0 = 0
[PROOFSTEP]
by_cases h_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm f p 0 = 0
[PROOFSTEP]
simp [h_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm f p 0 = 0
[PROOFSTEP]
rw [← Ne.def] at h0 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : MeasurableSpace α
f : α → F
h0 : p ≠ 0
h_top : ¬p = ⊤
⊢ snorm f p 0 = 0
[PROOFSTEP]
simp [snorm_eq_snorm' h0 h_top, snorm', ENNReal.toReal_pos h0 h_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ snorm' (fun x => c) q μ = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
rw [snorm', lintegral_const, ENNReal.mul_rpow_of_nonneg _ _ (by simp [hq_pos.le] : 0 ≤ 1 / q)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ 0 ≤ 1 / q
[PROOFSTEP]
simp [hq_pos.le]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ (↑‖c‖₊ ^ q) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / q) = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
congr
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ (↑‖c‖₊ ^ q) ^ (1 / q) = ↑‖c‖₊
[PROOFSTEP]
rw [← ENNReal.rpow_mul]
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ ↑‖c‖₊ ^ (q * (1 / q)) = ↑‖c‖₊
[PROOFSTEP]
suffices hq_cancel : q * (1 / q) = 1
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
hq_cancel : q * (1 / q) = 1
⊢ ↑‖c‖₊ ^ (q * (1 / q)) = ↑‖c‖₊
[PROOFSTEP]
rw [hq_cancel, ENNReal.rpow_one]
[GOAL]
case hq_cancel
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
⊢ q * (1 / q) = 1
[PROOFSTEP]
rw [one_div, mul_inv_cancel (ne_of_lt hq_pos).symm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ snorm' (fun x => c) q μ = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
rw [snorm', lintegral_const, ENNReal.mul_rpow_of_ne_top _ (measure_ne_top μ Set.univ)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ (↑‖c‖₊ ^ q) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / q) = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
congr
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ (↑‖c‖₊ ^ q) ^ (1 / q) = ↑‖c‖₊
[PROOFSTEP]
rw [← ENNReal.rpow_mul]
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ ↑‖c‖₊ ^ (q * (1 / q)) = ↑‖c‖₊
[PROOFSTEP]
suffices hp_cancel : q * (1 / q) = 1
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
hp_cancel : q * (1 / q) = 1
⊢ ↑‖c‖₊ ^ (q * (1 / q)) = ↑‖c‖₊
[PROOFSTEP]
rw [hp_cancel, ENNReal.rpow_one]
[GOAL]
case hp_cancel
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ q * (1 / q) = 1
[PROOFSTEP]
rw [one_div, mul_inv_cancel hq_ne_zero]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ ↑‖c‖₊ ^ q ≠ ⊤
[PROOFSTEP]
rw [Ne.def, ENNReal.rpow_eq_top_iff, not_or, not_and_or, not_and_or]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ (¬↑‖c‖₊ = 0 ∨ ¬q < 0) ∧ (¬↑‖c‖₊ = ⊤ ∨ ¬0 < q)
[PROOFSTEP]
constructor
[GOAL]
case left
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ ¬↑‖c‖₊ = 0 ∨ ¬q < 0
[PROOFSTEP]
left
[GOAL]
case left.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ ¬↑‖c‖₊ = 0
[PROOFSTEP]
rwa [ENNReal.coe_eq_zero, nnnorm_eq_zero]
[GOAL]
case right
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
inst✝ : IsFiniteMeasure μ
c : F
hc_ne_zero : c ≠ 0
hq_ne_zero : q ≠ 0
⊢ ¬↑‖c‖₊ = ⊤ ∨ ¬0 < q
[PROOFSTEP]
exact Or.inl ENNReal.coe_ne_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
hμ : μ ≠ 0
⊢ snormEssSup (fun x => c) μ = ↑‖c‖₊
[PROOFSTEP]
rw [snormEssSup, essSup_const _ hμ]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : F
hq_pos : 0 < q
inst✝ : IsProbabilityMeasure μ
⊢ snorm' (fun x => c) q μ = ↑‖c‖₊
[PROOFSTEP]
simp [snorm'_const c hq_pos, measure_univ]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
h0 : p ≠ 0
hμ : μ ≠ 0
⊢ snorm (fun x => c) p μ = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
by_cases h_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
h0 : p ≠ 0
hμ : μ ≠ 0
h_top : p = ⊤
⊢ snorm (fun x => c) p μ = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
simp [h_top, snormEssSup_const c hμ]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
h0 : p ≠ 0
hμ : μ ≠ 0
h_top : ¬p = ⊤
⊢ snorm (fun x => c) p μ = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
simp [snorm_eq_snorm' h0 h_top, snorm'_const, ENNReal.toReal_pos h0 h_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : F
h0 : p ≠ 0
h_top : p ≠ ⊤
⊢ snorm (fun x => c) p μ = ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
simp [snorm_eq_snorm' h0 h_top, snorm'_const, ENNReal.toReal_pos h0 h_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
have hp : 0 < p.toReal := ENNReal.toReal_pos hp_ne_zero hp_ne_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
by_cases hμ : μ = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : μ = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
simp only [hμ, Measure.coe_zero, Pi.zero_apply, or_true_iff, WithTop.zero_lt_top, snorm_measure_zero]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
by_cases hc : c = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : c = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
simp only [hc, true_or_iff, eq_self_iff_true, WithTop.zero_lt_top, snorm_zero']
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
⊢ snorm (fun x => c) p μ < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
rw [snorm_const' c hp_ne_zero hp_ne_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
by_cases hμ_top : μ Set.univ = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ↑↑μ Set.univ = ⊤
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
simp [hc, hμ_top, hp]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ¬↑↑μ Set.univ = ⊤
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
rw [ENNReal.mul_lt_top_iff]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ¬↑↑μ Set.univ = ⊤
⊢ ↑‖c‖₊ < ⊤ ∧ ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤ ∨ ↑‖c‖₊ = 0 ∨ ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) = 0 ↔
    c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
simp only [true_and_iff, one_div, ENNReal.rpow_eq_zero_iff, hμ, false_or_iff, or_false_iff, ENNReal.coe_lt_top,
  nnnorm_eq_zero, ENNReal.coe_eq_zero, MeasureTheory.Measure.measure_univ_eq_zero, hp, inv_lt_zero, hc, and_false_iff,
  false_and_iff, _root_.inv_pos, or_self_iff, hμ_top, Ne.lt_top hμ_top, iff_true_iff]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : F
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hp : 0 < ENNReal.toReal p
hμ : ¬μ = 0
hc : ¬c = 0
hμ_top : ¬↑↑μ Set.univ = ⊤
⊢ ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹ < ⊤
[PROOFSTEP]
exact ENNReal.rpow_lt_top_of_nonneg (inv_nonneg.mpr hp.le) hμ_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
⊢ Memℒp (fun x => c) p
[PROOFSTEP]
refine' ⟨aestronglyMeasurable_const, _⟩
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
⊢ snorm (fun x => c) p μ < ⊤
[PROOFSTEP]
by_cases h0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
h0 : p = 0
⊢ snorm (fun x => c) p μ < ⊤
[PROOFSTEP]
simp [h0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
h0 : ¬p = 0
⊢ snorm (fun x => c) p μ < ⊤
[PROOFSTEP]
by_cases hμ : μ = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
h0 : ¬p = 0
hμ : μ = 0
⊢ snorm (fun x => c) p μ < ⊤
[PROOFSTEP]
simp [hμ]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
h0 : ¬p = 0
hμ : ¬μ = 0
⊢ snorm (fun x => c) p μ < ⊤
[PROOFSTEP]
rw [snorm_const c h0 hμ]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
h0 : ¬p = 0
hμ : ¬μ = 0
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤
[PROOFSTEP]
refine' ENNReal.mul_lt_top ENNReal.coe_ne_top _
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
h0 : ¬p = 0
hμ : ¬μ = 0
⊢ ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) ≠ ⊤
[PROOFSTEP]
refine' (ENNReal.rpow_lt_top_of_nonneg _ (measure_ne_top μ Set.univ)).ne
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
inst✝ : IsFiniteMeasure μ
h0 : ¬p = 0
hμ : ¬μ = 0
⊢ 0 ≤ 1 / ENNReal.toReal p
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
⊢ Memℒp (fun x => c) ⊤
[PROOFSTEP]
refine' ⟨aestronglyMeasurable_const, _⟩
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
⊢ snorm (fun x => c) ⊤ μ < ⊤
[PROOFSTEP]
by_cases h : μ = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
h : μ = 0
⊢ snorm (fun x => c) ⊤ μ < ⊤
[PROOFSTEP]
simp only [h, snorm_measure_zero, WithTop.zero_lt_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
h : ¬μ = 0
⊢ snorm (fun x => c) ⊤ μ < ⊤
[PROOFSTEP]
rw [snorm_const _ ENNReal.top_ne_zero h]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
c : E
h : ¬μ = 0
⊢ ↑‖c‖₊ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal ⊤) < ⊤
[PROOFSTEP]
simp only [ENNReal.top_toReal, _root_.div_zero, ENNReal.rpow_zero, mul_one, ENNReal.coe_lt_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
⊢ Memℒp (fun x => c) p ↔ c = 0 ∨ ↑↑μ Set.univ < ⊤
[PROOFSTEP]
rw [← snorm_const_lt_top_iff hp_ne_zero hp_ne_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
c : E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
⊢ Memℒp (fun x => c) p ↔ snorm (fun x => c) p μ < ⊤
[PROOFSTEP]
exact ⟨fun h => h.2, fun h => ⟨aestronglyMeasurable_const, h⟩⟩
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
hq : 0 ≤ q
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
⊢ snorm' f q μ ≤ snorm' g q μ
[PROOFSTEP]
rw [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
hq : 0 ≤ q
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) ≤ snorm' g q μ
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ (one_div_nonneg.2 hq)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
hq : 0 ≤ q
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (a : α), ↑‖g a‖₊ ^ q ∂μ
[PROOFSTEP]
refine' lintegral_mono_ae (h.mono fun x hx => _)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
hq : 0 ≤ q
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
x : α
hx : ‖f x‖₊ ≤ ‖g x‖₊
⊢ ↑‖f x‖₊ ^ q ≤ ↑‖g x‖₊ ^ q
[PROOFSTEP]
exact ENNReal.rpow_le_rpow (ENNReal.coe_le_coe.2 hx) hq
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → F
hfg : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ = ‖g x‖₊
⊢ snorm' f q μ = snorm' g q μ
[PROOFSTEP]
have : (fun x => (‖f x‖₊ : ℝ≥0∞) ^ q) =ᵐ[μ] fun x => (‖g x‖₊ : ℝ≥0∞) ^ q := hfg.mono fun x hx => by simp_rw [hx]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → F
hfg : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ = ‖g x‖₊
x : α
hx : ‖f x‖₊ = ‖g x‖₊
⊢ (fun x => ↑‖f x‖₊ ^ q) x = (fun x => ↑‖g x‖₊ ^ q) x
[PROOFSTEP]
simp_rw [hx]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → F
hfg : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ = ‖g x‖₊
this : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] fun x => ↑‖g x‖₊ ^ q
⊢ snorm' f q μ = snorm' g q μ
[PROOFSTEP]
simp only [snorm', lintegral_congr_ae this]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
⊢ snorm f p μ ≤ snorm g p μ
[PROOFSTEP]
simp only [snorm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
⊢ (if p = 0 then 0 else if p = ⊤ then snormEssSup f μ else snorm' f (ENNReal.toReal p) μ) ≤
    if p = 0 then 0 else if p = ⊤ then snormEssSup g μ else snorm' g (ENNReal.toReal p) μ
[PROOFSTEP]
split_ifs
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
h✝ : p = 0
⊢ 0 ≤ 0
[PROOFSTEP]
exact le_rfl
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
h✝¹ : ¬p = 0
h✝ : p = ⊤
⊢ snormEssSup f μ ≤ snormEssSup g μ
[PROOFSTEP]
exact essSup_mono_ae (h.mono fun x hx => ENNReal.coe_le_coe.mpr hx)
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖g x‖₊
h✝¹ : ¬p = 0
h✝ : ¬p = ⊤
⊢ snorm' f (ENNReal.toReal p) μ ≤ snorm' g (ENNReal.toReal p) μ
[PROOFSTEP]
exact snorm'_mono_nnnorm_ae ENNReal.toReal_nonneg h
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ≥0
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ C
⊢ snorm f p μ ≤ C • ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
rcases eq_zero_or_neZero μ with rfl | hμ
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ≥0
hfC : ∀ᵐ (x : α) ∂0, ‖f x‖₊ ≤ C
⊢ snorm f p 0 ≤ C • ↑↑0 Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
simp
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ≥0
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ C
hμ : NeZero μ
⊢ snorm f p μ ≤ C • ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
by_cases hp : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ≥0
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ C
hμ : NeZero μ
hp : p = 0
⊢ snorm f p μ ≤ C • ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
simp [hp]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ≥0
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ C
hμ : NeZero μ
hp : ¬p = 0
⊢ snorm f p μ ≤ C • ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
have : ∀ᵐ x ∂μ, ‖f x‖₊ ≤ ‖(C : ℝ)‖₊ := hfC.mono fun x hx => hx.trans_eq C.nnnorm_eq.symm
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ≥0
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ C
hμ : NeZero μ
hp : ¬p = 0
this : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖↑C‖₊
⊢ snorm f p μ ≤ C • ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
refine' (snorm_mono_ae this).trans_eq _
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ≥0
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ C
hμ : NeZero μ
hp : ¬p = 0
this : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ ‖↑C‖₊
⊢ snorm (fun x => ↑C) p μ = C • ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
rw [snorm_const _ hp (NeZero.ne μ), C.nnnorm_eq, one_div, ENNReal.smul_def, smul_eq_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ C
⊢ snorm f p μ ≤ ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹ * ENNReal.ofReal C
[PROOFSTEP]
rw [← mul_comm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ C
⊢ snorm f p μ ≤ ENNReal.ofReal C * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
exact snorm_le_of_ae_nnnorm_bound (hfC.mono fun x hx => hx.trans C.le_coe_toNNReal)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm' (fun a => ‖f a‖) q μ = snorm' f q μ
[PROOFSTEP]
simp [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
⊢ snorm' (fun x => ‖f x‖ ^ q) p μ = snorm' f (p * q) μ ^ q
[PROOFSTEP]
simp_rw [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
⊢ (∫⁻ (a : α), ↑‖‖f a‖ ^ q‖₊ ^ p ∂μ) ^ (1 / p) = ((∫⁻ (a : α), ↑‖f a‖₊ ^ (p * q) ∂μ) ^ (1 / (p * q))) ^ q
[PROOFSTEP]
rw [← ENNReal.rpow_mul, ← one_div_mul_one_div]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
⊢ (∫⁻ (a : α), ↑‖‖f a‖ ^ q‖₊ ^ p ∂μ) ^ (1 / p) = (∫⁻ (a : α), ↑‖f a‖₊ ^ (p * q) ∂μ) ^ (1 / p * (1 / q) * q)
[PROOFSTEP]
simp_rw [one_div]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
⊢ (∫⁻ (a : α), ↑‖‖f a‖ ^ q‖₊ ^ p ∂μ) ^ p⁻¹ = (∫⁻ (a : α), ↑‖f a‖₊ ^ (p * q) ∂μ) ^ (p⁻¹ * q⁻¹ * q)
[PROOFSTEP]
rw [mul_assoc, inv_mul_cancel hq_pos.ne.symm, mul_one]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
⊢ (∫⁻ (a : α), ↑‖‖f a‖ ^ q‖₊ ^ p ∂μ) ^ p⁻¹ = (∫⁻ (a : α), ↑‖f a‖₊ ^ (p * q) ∂μ) ^ p⁻¹
[PROOFSTEP]
congr
[GOAL]
case e_a.e_f
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
⊢ (fun a => ↑‖‖f a‖ ^ q‖₊ ^ p) = fun a => ↑‖f a‖₊ ^ (p * q)
[PROOFSTEP]
ext1 x
[GOAL]
case e_a.e_f.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
x : α
⊢ ↑‖‖f x‖ ^ q‖₊ ^ p = ↑‖f x‖₊ ^ (p * q)
[PROOFSTEP]
simp_rw [← ofReal_norm_eq_coe_nnnorm]
[GOAL]
case e_a.e_f.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
p q : ℝ
hq_pos : 0 < q
x : α
⊢ ENNReal.ofReal ‖‖f x‖ ^ q‖ ^ p = ENNReal.ofReal ‖f x‖ ^ (p * q)
[PROOFSTEP]
rw [Real.norm_eq_abs, abs_eq_self.mpr (Real.rpow_nonneg_of_nonneg (norm_nonneg _) _), mul_comm, ←
  ENNReal.ofReal_rpow_of_nonneg (norm_nonneg _) hq_pos.le, ENNReal.rpow_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
⊢ snorm (fun x => ‖f x‖ ^ q) p μ = snorm f (p * ENNReal.ofReal q) μ ^ q
[PROOFSTEP]
by_cases h0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : p = 0
⊢ snorm (fun x => ‖f x‖ ^ q) p μ = snorm f (p * ENNReal.ofReal q) μ ^ q
[PROOFSTEP]
simp [h0, ENNReal.zero_rpow_of_pos hq_pos]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
⊢ snorm (fun x => ‖f x‖ ^ q) p μ = snorm f (p * ENNReal.ofReal q) μ ^ q
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
⊢ snorm (fun x => ‖f x‖ ^ q) p μ = snorm f (p * ENNReal.ofReal q) μ ^ q
[PROOFSTEP]
simp only [hp_top, snorm_exponent_top, ENNReal.top_mul', hq_pos.not_le, ENNReal.ofReal_eq_zero, if_false,
  snorm_exponent_top, snormEssSup]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
⊢ essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊) μ ^ q
[PROOFSTEP]
have h_rpow : essSup (fun x : α => (‖‖f x‖ ^ q‖₊ : ℝ≥0∞)) μ = essSup (fun x : α => (‖f x‖₊ : ℝ≥0∞) ^ q) μ :=
  by
  congr
  ext1 x
  conv_rhs => rw [← nnnorm_norm]
  rw [ENNReal.coe_rpow_of_nonneg _ hq_pos.le, ENNReal.coe_eq_coe]
  ext
  push_cast
  rw [Real.norm_rpow_of_nonneg (norm_nonneg _)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
⊢ essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊ ^ q) μ
[PROOFSTEP]
congr
[GOAL]
case e_f
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
⊢ (fun x => ↑‖‖f x‖ ^ q‖₊) = fun x => ↑‖f x‖₊ ^ q
[PROOFSTEP]
ext1 x
[GOAL]
case e_f.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
⊢ ↑‖‖f x‖ ^ q‖₊ = ↑‖f x‖₊ ^ q
[PROOFSTEP]
conv_rhs => rw [← nnnorm_norm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
| ↑‖f x‖₊ ^ q
[PROOFSTEP]
rw [← nnnorm_norm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
| ↑‖f x‖₊ ^ q
[PROOFSTEP]
rw [← nnnorm_norm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
| ↑‖f x‖₊ ^ q
[PROOFSTEP]
rw [← nnnorm_norm]
[GOAL]
case e_f.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
⊢ ↑‖‖f x‖ ^ q‖₊ = ↑‖‖f x‖‖₊ ^ q
[PROOFSTEP]
rw [ENNReal.coe_rpow_of_nonneg _ hq_pos.le, ENNReal.coe_eq_coe]
[GOAL]
case e_f.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
⊢ ‖‖f x‖ ^ q‖₊ = ‖‖f x‖‖₊ ^ q
[PROOFSTEP]
ext
[GOAL]
case e_f.h.a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
⊢ ↑‖‖f x‖ ^ q‖₊ = ↑(‖‖f x‖‖₊ ^ q)
[PROOFSTEP]
push_cast
[GOAL]
case e_f.h.a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
x : α
⊢ ‖‖f x‖ ^ q‖ = ‖‖f x‖‖ ^ q
[PROOFSTEP]
rw [Real.norm_rpow_of_nonneg (norm_nonneg _)]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
h_rpow : essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊ ^ q) μ
⊢ essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊) μ ^ q
[PROOFSTEP]
rw [h_rpow]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
h_rpow : essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊ ^ q) μ
⊢ essSup (fun x => ↑‖f x‖₊ ^ q) μ = essSup (fun x => ↑‖f x‖₊) μ ^ q
[PROOFSTEP]
have h_rpow_mono := ENNReal.strictMono_rpow_of_pos hq_pos
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
h_rpow : essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊ ^ q) μ
h_rpow_mono : StrictMono fun x => x ^ q
⊢ essSup (fun x => ↑‖f x‖₊ ^ q) μ = essSup (fun x => ↑‖f x‖₊) μ ^ q
[PROOFSTEP]
have h_rpow_surj := (ENNReal.rpow_left_bijective hq_pos.ne.symm).2
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
h_rpow : essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊ ^ q) μ
h_rpow_mono : StrictMono fun x => x ^ q
h_rpow_surj : Function.Surjective fun y => y ^ q
⊢ essSup (fun x => ↑‖f x‖₊ ^ q) μ = essSup (fun x => ↑‖f x‖₊) μ ^ q
[PROOFSTEP]
let iso := h_rpow_mono.orderIsoOfSurjective _ h_rpow_surj
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : p = ⊤
h_rpow : essSup (fun x => ↑‖‖f x‖ ^ q‖₊) μ = essSup (fun x => ↑‖f x‖₊ ^ q) μ
h_rpow_mono : StrictMono fun x => x ^ q
h_rpow_surj : Function.Surjective fun y => y ^ q
iso : ℝ≥0∞ ≃o ℝ≥0∞ := StrictMono.orderIsoOfSurjective (fun x => x ^ q) h_rpow_mono h_rpow_surj
⊢ essSup (fun x => ↑‖f x‖₊ ^ q) μ = essSup (fun x => ↑‖f x‖₊) μ ^ q
[PROOFSTEP]
exact (iso.essSup_apply (fun x => (‖f x‖₊ : ℝ≥0∞)) μ).symm
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm (fun x => ‖f x‖ ^ q) p μ = snorm f (p * ENNReal.ofReal q) μ ^ q
[PROOFSTEP]
rw [snorm_eq_snorm' h0 hp_top, snorm_eq_snorm' _ _]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm' (fun x => ‖f x‖ ^ q) (ENNReal.toReal p) μ = snorm' f (ENNReal.toReal (p * ENNReal.ofReal q)) μ ^ q
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ p * ENNReal.ofReal q ≠ 0
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ p * ENNReal.ofReal q ≠ ⊤
[PROOFSTEP]
swap
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ p * ENNReal.ofReal q ≠ 0
[PROOFSTEP]
refine' mul_ne_zero h0 _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ ENNReal.ofReal q ≠ 0
[PROOFSTEP]
rwa [Ne.def, ENNReal.ofReal_eq_zero, not_le]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm' (fun x => ‖f x‖ ^ q) (ENNReal.toReal p) μ = snorm' f (ENNReal.toReal (p * ENNReal.ofReal q)) μ ^ q
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ p * ENNReal.ofReal q ≠ ⊤
[PROOFSTEP]
swap
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ p * ENNReal.ofReal q ≠ ⊤
[PROOFSTEP]
exact ENNReal.mul_ne_top hp_top ENNReal.ofReal_ne_top
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm' (fun x => ‖f x‖ ^ q) (ENNReal.toReal p) μ = snorm' f (ENNReal.toReal (p * ENNReal.ofReal q)) μ ^ q
[PROOFSTEP]
rw [ENNReal.toReal_mul, ENNReal.toReal_ofReal hq_pos.le]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq_pos : 0 < q
h0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm' (fun x => ‖f x‖ ^ q) (ENNReal.toReal p) μ = snorm' f (ENNReal.toReal p * q) μ ^ q
[PROOFSTEP]
exact snorm'_norm_rpow f p.toReal q hq_pos
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hfg : f =ᵐ[μ] g
⊢ Memℒp f p ↔ Memℒp g p
[PROOFSTEP]
simp only [Memℒp, snorm_congr_ae hfg, aestronglyMeasurable_congr hfg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
C : ℝ
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ C
⊢ snorm f ⊤ μ < ⊤
[PROOFSTEP]
rw [snorm_exponent_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
C : ℝ
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ C
⊢ snormEssSup f μ < ⊤
[PROOFSTEP]
exact snormEssSup_lt_top_of_ae_bound hfC
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hq : 0 ≤ q
⊢ snorm' f q ν ≤ snorm' f q μ
[PROOFSTEP]
simp_rw [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hq : 0 ≤ q
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂ν) ^ (1 / q) ≤ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
suffices h_integral_mono : (∫⁻ a, (‖f a‖₊ : ℝ≥0∞) ^ q ∂ν) ≤ ∫⁻ a, (‖f a‖₊ : ℝ≥0∞) ^ q ∂μ from
  ENNReal.rpow_le_rpow h_integral_mono (by simp [hq])
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hq : 0 ≤ q
h_integral_mono : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂ν ≤ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ
⊢ 0 ≤ 1 / q
[PROOFSTEP]
simp [hq]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hq : 0 ≤ q
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂ν ≤ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ
[PROOFSTEP]
exact lintegral_mono' hμν le_rfl
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≪ μ
⊢ snormEssSup f ν ≤ snormEssSup f μ
[PROOFSTEP]
simp_rw [snormEssSup]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≪ μ
⊢ essSup (fun x => ↑‖f x‖₊) ν ≤ essSup (fun x => ↑‖f x‖₊) μ
[PROOFSTEP]
exact essSup_mono_measure hμν
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
⊢ snorm f p ν ≤ snorm f p μ
[PROOFSTEP]
by_cases hp0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hp0 : p = 0
⊢ snorm f p ν ≤ snorm f p μ
[PROOFSTEP]
simp [hp0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hp0 : ¬p = 0
⊢ snorm f p ν ≤ snorm f p μ
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ snorm f p ν ≤ snorm f p μ
[PROOFSTEP]
simp [hp_top, snormEssSup_mono_measure f (Measure.absolutelyContinuous_of_le hμν)]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm f p ν ≤ snorm f p μ
[PROOFSTEP]
simp_rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hμν : ν ≤ μ
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm' f (ENNReal.toReal p) ν ≤ snorm' f (ENNReal.toReal p) μ
[PROOFSTEP]
exact snorm'_mono_measure f hμν ENNReal.toReal_nonneg
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ
hp : 0 ≤ p
f : α → F
c : ℝ≥0∞
⊢ snorm' f p (c • μ) = c ^ (1 / p) * snorm' f p μ
[PROOFSTEP]
rw [snorm', lintegral_smul_measure, ENNReal.mul_rpow_of_nonneg, snorm']
[GOAL]
case hz
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ
hp : 0 ≤ p
f : α → F
c : ℝ≥0∞
⊢ 0 ≤ 1 / p
[PROOFSTEP]
simp [hp]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
c : ℝ≥0∞
hc : c ≠ 0
⊢ snormEssSup f (c • μ) = snormEssSup f μ
[PROOFSTEP]
simp_rw [snormEssSup]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
c : ℝ≥0∞
hc : c ≠ 0
⊢ essSup (fun x => ↑‖f x‖₊) (c • μ) = essSup (fun x => ↑‖f x‖₊) μ
[PROOFSTEP]
exact essSup_smul_measure hc
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
simp_rw [snorm_eq_snorm' hp_ne_zero hp_ne_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
⊢ snorm' f (ENNReal.toReal p) (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm' f (ENNReal.toReal p) μ
[PROOFSTEP]
rw [snorm'_smul_measure ENNReal.toReal_nonneg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
⊢ c ^ (1 / ENNReal.toReal p) * snorm' f (ENNReal.toReal p) μ =
    c ^ ENNReal.toReal (1 / p) • snorm' f (ENNReal.toReal p) μ
[PROOFSTEP]
congr
[GOAL]
case e_a.e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
⊢ 1 / ENNReal.toReal p = ENNReal.toReal (1 / p)
[PROOFSTEP]
simp_rw [one_div]
[GOAL]
case e_a.e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
⊢ (ENNReal.toReal p)⁻¹ = ENNReal.toReal p⁻¹
[PROOFSTEP]
rw [ENNReal.toReal_inv]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → F
c : ℝ≥0∞
hc : c ≠ 0
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
by_cases hp0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → F
c : ℝ≥0∞
hc : c ≠ 0
hp0 : p = 0
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
simp [hp0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → F
c : ℝ≥0∞
hc : c ≠ 0
hp0 : ¬p = 0
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → F
c : ℝ≥0∞
hc : c ≠ 0
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
simp [hp_top, snormEssSup_smul_measure hc]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → F
c : ℝ≥0∞
hc : c ≠ 0
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
exact snorm_smul_measure_of_ne_zero_of_ne_top hp0 hp_top c
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
by_cases hp0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
hp0 : p = 0
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
simp [hp0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp_ne_top : p ≠ ⊤
f : α → F
c : ℝ≥0∞
hp0 : ¬p = 0
⊢ snorm f p (c • μ) = c ^ ENNReal.toReal (1 / p) • snorm f p μ
[PROOFSTEP]
exact snorm_smul_measure_of_ne_zero_of_ne_top hp0 hp_ne_top c
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
c : ℝ≥0∞
⊢ snorm f 1 (c • μ) = c * snorm f 1 μ
[PROOFSTEP]
rw [@snorm_smul_measure_of_ne_top _ _ _ μ _ 1 (@ENNReal.coe_ne_top 1) f c]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
c : ℝ≥0∞
⊢ c ^ ENNReal.toReal (1 / 1) • snorm f 1 μ = c * snorm f 1 μ
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
μ' : Measure α
c : ℝ≥0∞
hc : c ≠ ⊤
hμ'_le : μ' ≤ c • μ
f : α → E
hf : Memℒp f p
⊢ Memℒp f p
[PROOFSTEP]
refine' ⟨hf.1.mono' (Measure.absolutelyContinuous_of_le_smul hμ'_le), _⟩
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
μ' : Measure α
c : ℝ≥0∞
hc : c ≠ ⊤
hμ'_le : μ' ≤ c • μ
f : α → E
hf : Memℒp f p
⊢ snorm f p μ' < ⊤
[PROOFSTEP]
refine' (snorm_mono_measure f hμ'_le).trans_lt _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
μ' : Measure α
c : ℝ≥0∞
hc : c ≠ ⊤
hμ'_le : μ' ≤ c • μ
f : α → E
hf : Memℒp f p
⊢ snorm f p (c • μ) < ⊤
[PROOFSTEP]
by_cases hc0 : c = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
μ' : Measure α
c : ℝ≥0∞
hc : c ≠ ⊤
hμ'_le : μ' ≤ c • μ
f : α → E
hf : Memℒp f p
hc0 : c = 0
⊢ snorm f p (c • μ) < ⊤
[PROOFSTEP]
simp [hc0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
μ' : Measure α
c : ℝ≥0∞
hc : c ≠ ⊤
hμ'_le : μ' ≤ c • μ
f : α → E
hf : Memℒp f p
hc0 : ¬c = 0
⊢ snorm f p (c • μ) < ⊤
[PROOFSTEP]
rw [snorm_smul_measure_of_ne_zero hc0, smul_eq_mul]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
μ' : Measure α
c : ℝ≥0∞
hc : c ≠ ⊤
hμ'_le : μ' ≤ c • μ
f : α → E
hf : Memℒp f p
hc0 : ¬c = 0
⊢ c ^ ENNReal.toReal (1 / p) * snorm f p μ < ⊤
[PROOFSTEP]
refine' ENNReal.mul_lt_top _ hf.2.ne
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
μ' : Measure α
c : ℝ≥0∞
hc : c ≠ ⊤
hμ'_le : μ' ≤ c • μ
f : α → E
hf : Memℒp f p
hc0 : ¬c = 0
⊢ c ^ ENNReal.toReal (1 / p) ≠ ⊤
[PROOFSTEP]
simp [hc, hc0]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν✝ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
μ ν : Measure α
⊢ snorm f 1 (μ + ν) = snorm f 1 μ + snorm f 1 ν
[PROOFSTEP]
simp_rw [snorm_one_eq_lintegral_nnnorm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν✝ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
μ ν : Measure α
⊢ ∫⁻ (x : α), ↑‖f x‖₊ ∂(μ + ν) = ∫⁻ (x : α), ↑‖f x‖₊ ∂μ + ∫⁻ (x : α), ↑‖f x‖₊ ∂ν
[PROOFSTEP]
rw [lintegral_add_measure _ μ ν]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
h : Memℒp f p
x : α
⊢ ‖‖f x‖‖ ≤ ‖f x‖
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
h : Memℒp (fun x => ‖f x‖) p
⊢ snorm f p μ < ⊤
[PROOFSTEP]
rw [← snorm_norm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
h : Memℒp (fun x => ‖f x‖) p
⊢ snorm (fun x => ‖f x‖) p μ < ⊤
[PROOFSTEP]
exact h.2
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
hq0_lt : 0 < q
hf_zero : f =ᵐ[μ] 0
⊢ snorm' f q μ = 0
[PROOFSTEP]
rw [snorm'_congr_ae hf_zero, snorm'_zero hq0_lt]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq0_ne : q ≠ 0
hμ : μ ≠ 0
f : α → F
hf_zero : f =ᵐ[μ] 0
⊢ snorm' f q μ = 0
[PROOFSTEP]
rw [snorm'_congr_ae hf_zero, snorm'_zero' hq0_ne hμ]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : snorm' f q μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
rw [snorm', ENNReal.rpow_eq_zero_iff] at h 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = 0 ∧ 0 < 1 / q ∨ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = ⊤ ∧ 1 / q < 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
cases h with
| inl h =>
  rw [lintegral_eq_zero_iff' (hf.ennnorm.pow_const q)] at h 
  refine' h.left.mono fun x hx => _
  rw [Pi.zero_apply, ENNReal.rpow_eq_zero_iff] at hx 
  cases hx with
  | inl hx =>
    cases' hx with hx _
    rwa [← ENNReal.coe_zero, ENNReal.coe_eq_coe, nnnorm_eq_zero] at hx 
  | inr hx => exact absurd hx.left ENNReal.coe_ne_top
| inr h =>
  exfalso
  rw [one_div, inv_lt_zero] at h 
  exact hq0.not_lt h.right
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = 0 ∧ 0 < 1 / q ∨ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = ⊤ ∧ 1 / q < 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
cases h with
| inl h =>
  rw [lintegral_eq_zero_iff' (hf.ennnorm.pow_const q)] at h 
  refine' h.left.mono fun x hx => _
  rw [Pi.zero_apply, ENNReal.rpow_eq_zero_iff] at hx 
  cases hx with
  | inl hx =>
    cases' hx with hx _
    rwa [← ENNReal.coe_zero, ENNReal.coe_eq_coe, nnnorm_eq_zero] at hx 
  | inr hx => exact absurd hx.left ENNReal.coe_ne_top
| inr h =>
  exfalso
  rw [one_div, inv_lt_zero] at h 
  exact hq0.not_lt h.right
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = 0 ∧ 0 < 1 / q
⊢ f =ᵐ[μ] 0
[PROOFSTEP]

| inl h =>
  rw [lintegral_eq_zero_iff' (hf.ennnorm.pow_const q)] at h 
  refine' h.left.mono fun x hx => _
  rw [Pi.zero_apply, ENNReal.rpow_eq_zero_iff] at hx 
  cases hx with
  | inl hx =>
    cases' hx with hx _
    rwa [← ENNReal.coe_zero, ENNReal.coe_eq_coe, nnnorm_eq_zero] at hx 
  | inr hx => exact absurd hx.left ENNReal.coe_ne_top
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = 0 ∧ 0 < 1 / q
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
rw [lintegral_eq_zero_iff' (hf.ennnorm.pow_const q)] at h 
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
refine' h.left.mono fun x hx => _
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : (fun x => ↑‖f x‖₊ ^ q) x = OfNat.ofNat 0 x
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
rw [Pi.zero_apply, ENNReal.rpow_eq_zero_iff] at hx 
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : ↑‖f x‖₊ = 0 ∧ 0 < q ∨ ↑‖f x‖₊ = ⊤ ∧ q < 0
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
cases hx with
| inl hx =>
  cases' hx with hx _
  rwa [← ENNReal.coe_zero, ENNReal.coe_eq_coe, nnnorm_eq_zero] at hx 
| inr hx => exact absurd hx.left ENNReal.coe_ne_top
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : ↑‖f x‖₊ = 0 ∧ 0 < q ∨ ↑‖f x‖₊ = ⊤ ∧ q < 0
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
cases hx with
| inl hx =>
  cases' hx with hx _
  rwa [← ENNReal.coe_zero, ENNReal.coe_eq_coe, nnnorm_eq_zero] at hx 
| inr hx => exact absurd hx.left ENNReal.coe_ne_top
[GOAL]
case inl.inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : ↑‖f x‖₊ = 0 ∧ 0 < q
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]

| inl hx =>
  cases' hx with hx _
  rwa [← ENNReal.coe_zero, ENNReal.coe_eq_coe, nnnorm_eq_zero] at hx 
[GOAL]
case inl.inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : ↑‖f x‖₊ = 0 ∧ 0 < q
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
cases' hx with hx _
[GOAL]
case inl.inl.intro
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : ↑‖f x‖₊ = 0
right✝ : 0 < q
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
rwa [← ENNReal.coe_zero, ENNReal.coe_eq_coe, nnnorm_eq_zero] at hx 
[GOAL]
case inl.inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : ↑‖f x‖₊ = ⊤ ∧ q < 0
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]

| inr hx => exact absurd hx.left ENNReal.coe_ne_top
[GOAL]
case inl.inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : (fun x => ↑‖f x‖₊ ^ q) =ᵐ[μ] 0 ∧ 0 < 1 / q
x : α
hx : ↑‖f x‖₊ = ⊤ ∧ q < 0
⊢ f x = OfNat.ofNat 0 x
[PROOFSTEP]
exact absurd hx.left ENNReal.coe_ne_top
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = ⊤ ∧ 1 / q < 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]

| inr h =>
  exfalso
  rw [one_div, inv_lt_zero] at h 
  exact hq0.not_lt h.right
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = ⊤ ∧ 1 / q < 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
exfalso
[GOAL]
case inr.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = ⊤ ∧ 1 / q < 0
⊢ False
[PROOFSTEP]
rw [one_div, inv_lt_zero] at h 
[GOAL]
case inr.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hq0 : 0 ≤ q
hf : AEStronglyMeasurable f μ
h : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ = ⊤ ∧ q < 0
⊢ False
[PROOFSTEP]
exact hq0.not_lt h.right
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snormEssSup f μ = 0 ↔ f =ᵐ[μ] 0
[PROOFSTEP]
simp [EventuallyEq, snormEssSup]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
h0 : p ≠ 0
⊢ snorm f p μ = 0 ↔ f =ᵐ[μ] 0
[PROOFSTEP]
by_cases h_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
h0 : p ≠ 0
h_top : p = ⊤
⊢ snorm f p μ = 0 ↔ f =ᵐ[μ] 0
[PROOFSTEP]
rw [h_top, snorm_exponent_top, snormEssSup_eq_zero_iff]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
h0 : p ≠ 0
h_top : ¬p = ⊤
⊢ snorm f p μ = 0 ↔ f =ᵐ[μ] 0
[PROOFSTEP]
rw [snorm_eq_snorm' h0 h_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : AEStronglyMeasurable f μ
h0 : p ≠ 0
h_top : ¬p = ⊤
⊢ snorm' f (ENNReal.toReal p) μ = 0 ↔ f =ᵐ[μ] 0
[PROOFSTEP]
exact snorm'_eq_zero_iff (ENNReal.toReal_pos h0 h_top) hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
hq1 : 1 ≤ q
⊢ (∫⁻ (a : α), ↑‖(f + g) a‖₊ ^ q ∂μ) ^ (1 / q) ≤
    (∫⁻ (a : α), ((fun a => ↑‖f a‖₊) + fun a => ↑‖g a‖₊) a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ (by simp [le_trans zero_le_one hq1] : 0 ≤ 1 / q)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
hq1 : 1 ≤ q
⊢ 0 ≤ 1 / q
[PROOFSTEP]
simp [le_trans zero_le_one hq1]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
hq1 : 1 ≤ q
⊢ ∫⁻ (a : α), ↑‖(f + g) a‖₊ ^ q ∂μ ≤ ∫⁻ (a : α), ((fun a => ↑‖f a‖₊) + fun a => ↑‖g a‖₊) a ^ q ∂μ
[PROOFSTEP]
refine' lintegral_mono fun a => ENNReal.rpow_le_rpow _ (le_trans zero_le_one hq1)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
hq1 : 1 ≤ q
a : α
⊢ ↑‖(f + g) a‖₊ ≤ ((fun a => ↑‖f a‖₊) + fun a => ↑‖g a‖₊) a
[PROOFSTEP]
simp only [Pi.add_apply, ← ENNReal.coe_add, ENNReal.coe_le_coe, nnnorm_add_le]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hq0 : 0 ≤ q
hq1 : q ≤ 1
⊢ (∫⁻ (a : α), ↑‖(f + g) a‖₊ ^ q ∂μ) ^ (1 / q) ≤
    (∫⁻ (a : α), ((fun a => ↑‖f a‖₊) + fun a => ↑‖g a‖₊) a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ (by simp [hq0] : 0 ≤ 1 / q)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hq0 : 0 ≤ q
hq1 : q ≤ 1
⊢ 0 ≤ 1 / q
[PROOFSTEP]
simp [hq0]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hq0 : 0 ≤ q
hq1 : q ≤ 1
⊢ ∫⁻ (a : α), ↑‖(f + g) a‖₊ ^ q ∂μ ≤ ∫⁻ (a : α), ((fun a => ↑‖f a‖₊) + fun a => ↑‖g a‖₊) a ^ q ∂μ
[PROOFSTEP]
refine' lintegral_mono fun a => ENNReal.rpow_le_rpow _ hq0
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : AEStronglyMeasurable f μ
hq0 : 0 ≤ q
hq1 : q ≤ 1
a : α
⊢ ↑‖(f + g) a‖₊ ≤ ((fun a => ↑‖f a‖₊) + fun a => ↑‖g a‖₊) a
[PROOFSTEP]
simp only [Pi.add_apply, ← ENNReal.coe_add, ENNReal.coe_le_coe, nnnorm_add_le]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → F
⊢ snormEssSup (f + g) μ ≤ snormEssSup f μ + snormEssSup g μ
[PROOFSTEP]
refine' le_trans (essSup_mono_ae (eventually_of_forall fun x => _)) (ENNReal.essSup_add_le _ _)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → F
x : α
⊢ (fun x => ↑‖(f + g) x‖₊) x ≤ ((fun x => ↑‖f x‖₊) + fun x => ↑‖g x‖₊) x
[PROOFSTEP]
simp_rw [Pi.add_apply, ← ENNReal.coe_add, ENNReal.coe_le_coe]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → F
x : α
⊢ ‖f x + g x‖₊ ≤ ‖f x‖₊ + ‖g x‖₊
[PROOFSTEP]
exact nnnorm_add_le _ _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
[PROOFSTEP]
by_cases hp0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
[PROOFSTEP]
simp [hp0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
[PROOFSTEP]
simp [hp_top, snormEssSup_add_le]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
[PROOFSTEP]
have hp1_real : 1 ≤ p.toReal := by rwa [← ENNReal.one_toReal, ENNReal.toReal_le_toReal ENNReal.one_ne_top hp_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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
[PROOFSTEP]
rwa [← ENNReal.one_toReal, ENNReal.toReal_le_toReal ENNReal.one_ne_top hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
[PROOFSTEP]
repeat rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
[PROOFSTEP]
rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 p μ + snorm g p μ
[PROOFSTEP]
rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 p μ
[PROOFSTEP]
rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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) μ
[PROOFSTEP]
rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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) μ
[PROOFSTEP]
exact snorm'_add_le hf hg hp1_real
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp : 1 ≤ p
⊢ LpAddConst p = 1
[PROOFSTEP]
rw [LpAddConst, if_neg]
[GOAL]
case hnc
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp : 1 ≤ p
⊢ ¬p ∈ Set.Ioo 0 1
[PROOFSTEP]
intro h
[GOAL]
case hnc
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
hp : 1 ≤ p
h : p ∈ Set.Ioo 0 1
⊢ False
[PROOFSTEP]
exact lt_irrefl _ (h.2.trans_le hp)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ LpAddConst 0 = 1
[PROOFSTEP]
rw [LpAddConst, if_neg]
[GOAL]
case hnc
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
⊢ ¬0 ∈ Set.Ioo 0 1
[PROOFSTEP]
intro h
[GOAL]
case hnc
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
h : 0 ∈ Set.Ioo 0 1
⊢ False
[PROOFSTEP]
exact lt_irrefl _ h.1
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
⊢ LpAddConst p < ⊤
[PROOFSTEP]
rw [LpAddConst]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
⊢ (if p ∈ Set.Ioo 0 1 then 2 ^ (1 / ENNReal.toReal p - 1) else 1) < ⊤
[PROOFSTEP]
split_ifs with h
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 2 ^ (1 / ENNReal.toReal p - 1) < ⊤
[PROOFSTEP]
apply ENNReal.rpow_lt_top_of_nonneg _ ENNReal.two_ne_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 0 ≤ 1 / ENNReal.toReal p - 1
[PROOFSTEP]
simp only [one_div, sub_nonneg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ 1 ≤ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
apply one_le_inv (ENNReal.toReal_pos h.1.ne' (h.2.trans ENNReal.one_lt_top).ne)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
h : p ∈ Set.Ioo 0 1
⊢ ENNReal.toReal p ≤ 1
[PROOFSTEP]
simpa using ENNReal.toReal_mono ENNReal.one_ne_top h.2.le
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
h : ¬p ∈ Set.Ioo 0 1
⊢ 1 < ⊤
[PROOFSTEP]
exact ENNReal.one_lt_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
⊢ snorm (f + g) p μ ≤ LpAddConst p * (snorm f p μ + snorm g p μ)
[PROOFSTEP]
rcases eq_or_ne p 0 with (rfl | hp)
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
⊢ snorm (f + g) 0 μ ≤ LpAddConst 0 * (snorm f 0 μ + snorm g 0 μ)
[PROOFSTEP]
simp only [snorm_exponent_zero, add_zero, mul_zero, le_zero_iff]
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
⊢ snorm (f + g) p μ ≤ LpAddConst p * (snorm f p μ + snorm g p μ)
[PROOFSTEP]
rcases lt_or_le p 1 with (h'p | h'p)
[GOAL]
case inr.inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
h'p : p < 1
⊢ snorm (f + g) p μ ≤ LpAddConst p * (snorm f p μ + snorm g p μ)
[PROOFSTEP]
simp only [snorm_eq_snorm' hp (h'p.trans ENNReal.one_lt_top).ne]
[GOAL]
case inr.inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
h'p : p < 1
⊢ snorm' (f + g) (ENNReal.toReal p) μ ≤ LpAddConst p * (snorm' f (ENNReal.toReal p) μ + snorm' g (ENNReal.toReal p) μ)
[PROOFSTEP]
convert snorm'_add_le_of_le_one hf ENNReal.toReal_nonneg _
[GOAL]
case h.e'_4.h.e'_5
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
h'p : p < 1
⊢ LpAddConst p = 2 ^ (1 / ENNReal.toReal p - 1)
[PROOFSTEP]
have : p ∈ Set.Ioo (0 : ℝ≥0∞) 1 := ⟨hp.bot_lt, h'p⟩
[GOAL]
case h.e'_4.h.e'_5
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
h'p : p < 1
this : p ∈ Set.Ioo 0 1
⊢ LpAddConst p = 2 ^ (1 / ENNReal.toReal p - 1)
[PROOFSTEP]
simp only [LpAddConst, if_pos this]
[GOAL]
case inr.inl.convert_3
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
h'p : p < 1
⊢ ENNReal.toReal p ≤ 1
[PROOFSTEP]
simpa using ENNReal.toReal_mono ENNReal.one_ne_top h'p.le
[GOAL]
case inr.inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
h'p : 1 ≤ p
⊢ snorm (f + g) p μ ≤ LpAddConst p * (snorm f p μ + snorm g p μ)
[PROOFSTEP]
simp [LpAddConst_of_one_le h'p]
[GOAL]
case inr.inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
hp : p ≠ 0
h'p : 1 ≤ p
⊢ snorm (f + g) p μ ≤ snorm f p μ + snorm g p μ
[PROOFSTEP]
exact snorm_add_le hf hg h'p
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p δ : ℝ≥0∞
hδ : δ ≠ 0
⊢ ∃ η,
    0 < η ∧
      ∀ (f g : α → E),
        AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
[PROOFSTEP]
have : Tendsto (fun η : ℝ≥0∞ => LpAddConst p * (η + η)) (𝓝[>] 0) (𝓝 (LpAddConst p * (0 + 0))) :=
  (ENNReal.Tendsto.const_mul (tendsto_id.add tendsto_id) (Or.inr (LpAddConst_lt_top p).ne)).mono_left nhdsWithin_le_nhds
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p δ : ℝ≥0∞
hδ : δ ≠ 0
this : Tendsto (fun η => LpAddConst p * (η + η)) (𝓝[Set.Ioi 0] 0) (𝓝 (LpAddConst p * (0 + 0)))
⊢ ∃ η,
    0 < η ∧
      ∀ (f g : α → E),
        AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
[PROOFSTEP]
simp only [add_zero, mul_zero] at this 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p δ : ℝ≥0∞
hδ : δ ≠ 0
this : Tendsto (fun η => LpAddConst p * (η + η)) (𝓝[Set.Ioi 0] 0) (𝓝 0)
⊢ ∃ η,
    0 < η ∧
      ∀ (f g : α → E),
        AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
[PROOFSTEP]
rcases(((tendsto_order.1 this).2 δ hδ.bot_lt).and self_mem_nhdsWithin).exists with ⟨η, hη, ηpos⟩
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p δ : ℝ≥0∞
hδ : δ ≠ 0
this : Tendsto (fun η => LpAddConst p * (η + η)) (𝓝[Set.Ioi 0] 0) (𝓝 0)
η : ℝ≥0∞
hη : LpAddConst p * (η + η) < δ
ηpos : 0 < η
⊢ ∃ η,
    0 < η ∧
      ∀ (f g : α → E),
        AEStronglyMeasurable f μ → AEStronglyMeasurable g μ → snorm f p μ ≤ η → snorm g p μ ≤ η → snorm (f + g) p μ < δ
[PROOFSTEP]
refine' ⟨η, ηpos, fun f g hf hg Hf Hg => _⟩
[GOAL]
case intro.intro
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p δ : ℝ≥0∞
hδ : δ ≠ 0
this : Tendsto (fun η => LpAddConst p * (η + η)) (𝓝[Set.Ioi 0] 0) (𝓝 0)
η : ℝ≥0∞
hη : LpAddConst p * (η + η) < δ
ηpos : 0 < η
f g : α → E
hf : AEStronglyMeasurable f μ
hg : AEStronglyMeasurable g μ
Hf : snorm f p μ ≤ η
Hg : snorm g p μ ≤ η
⊢ snorm (f + g) p μ < δ
[PROOFSTEP]
calc
  snorm (f + g) p μ ≤ LpAddConst p * (snorm f p μ + snorm g p μ) := snorm_add_le' hf hg p
  _ ≤ LpAddConst p * (η + η) := (mul_le_mul_of_nonneg_left (add_le_add Hf Hg) bot_le)
  _ < δ := hη
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
⊢ snorm (f - g) p μ = snorm (f + -g) p μ
[PROOFSTEP]
rw [sub_eq_add_neg]
  -- We cannot use snorm_add_le on f and (-g) because we don't have `AEMeasurable (-g) μ`, since
      -- we don't suppose `[BorelSpace E]`.
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
⊢ snorm (fun x => ‖f x + -g x‖) p μ ≤ snorm (fun x => ‖f x‖ + ‖-g x‖) p μ
[PROOFSTEP]
refine' snorm_mono_real fun x => _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
x : α
⊢ ‖‖f x + -g x‖‖ ≤ ‖f x‖ + ‖-g x‖
[PROOFSTEP]
rw [norm_norm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
x : α
⊢ ‖f x + -g x‖ ≤ ‖f x‖ + ‖-g x‖
[PROOFSTEP]
exact norm_add_le _ _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
⊢ snorm (fun x => ‖f x‖ + ‖-g x‖) p μ = snorm (fun x => ‖f x‖ + ‖g x‖) p μ
[PROOFSTEP]
simp_rw [norm_neg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
p : ℝ≥0∞
⊢ LpAddConst p * (snorm (fun x => ‖f x‖) p μ + snorm (fun x => ‖g x‖) p μ) = LpAddConst p * (snorm f p μ + snorm g p μ)
[PROOFSTEP]
rw [← snorm_norm f, ← snorm_norm g]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
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 μ
hp : 1 ≤ p
⊢ snorm (f - g) p μ ≤ snorm f p μ + snorm g p μ
[PROOFSTEP]
simpa [LpAddConst_of_one_le hp] using snorm_sub_le' hf hg p
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : Memℒp f p
hg : Memℒp g p
⊢ LpAddConst p * (snorm f p μ + snorm g p μ) < ⊤
[PROOFSTEP]
apply ENNReal.mul_lt_top (LpAddConst_lt_top p).ne
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : Memℒp f p
hg : Memℒp g p
⊢ snorm f p μ + snorm g p μ ≠ ⊤
[PROOFSTEP]
exact (ENNReal.add_lt_top.2 ⟨hf.2, hg.2⟩).ne
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
by_cases hp_zero : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
hp_zero : p = 0
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
simp only [hp_zero, snorm_exponent_zero]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
hp_zero : ¬p = 0
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
hp_zero : ¬p = 0
hp_top : p = ⊤
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
simp_rw [hp_top, snorm_exponent_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
hp_zero : ¬p = 0
hp_top : p = ⊤
⊢ snormEssSup g (Measure.map f μ) = snormEssSup (g ∘ f) μ
[PROOFSTEP]
exact snormEssSup_map_measure hg hf
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
hp_zero : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
simp_rw [snorm_eq_lintegral_rpow_nnnorm hp_zero hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
hp_zero : ¬p = 0
hp_top : ¬p = ⊤
⊢ (∫⁻ (x : β), ↑‖g x‖₊ ^ ENNReal.toReal p ∂Measure.map f μ) ^ (1 / ENNReal.toReal p) =
    (∫⁻ (x : α), ↑‖(g ∘ f) x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rw [lintegral_map' (hg.ennnorm.pow_const p.toReal) hf]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
hp_zero : ¬p = 0
hp_top : ¬p = ⊤
⊢ (∫⁻ (a : α), ↑‖g (f a)‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) =
    (∫⁻ (x : α), ↑‖(g ∘ f) x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g : β → E
hg : AEStronglyMeasurable g (Measure.map f μ)
hf : AEMeasurable f
⊢ Memℒp g p ↔ Memℒp (g ∘ f) p
[PROOFSTEP]
simp [Memℒp, snorm_map_measure hg hf, hg.comp_aemeasurable hf, hg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν✝ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
ν : Measure β
g : β →ₘ[ν] E
hf : MeasurePreserving f
⊢ snorm (↑(compMeasurePreserving g f hf)) p μ = snorm (↑g) p ν
[PROOFSTEP]
rw [snorm_congr_ae (g.coeFn_compMeasurePreserving _)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν✝ : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
ν : Measure β
g : β →ₘ[ν] E
hf : MeasurePreserving f
⊢ snorm (↑g ∘ f) p μ = snorm (↑g) p ν
[PROOFSTEP]
exact snorm_comp_measurePreserving g.aestronglyMeasurable hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
by_cases hp_zero : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
hp_zero : p = 0
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
simp only [hp_zero, snorm_exponent_zero]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
hp_zero : ¬p = 0
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
by_cases hp : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
hp_zero : ¬p = 0
hp : p = ⊤
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
simp_rw [hp, snorm_exponent_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
hp_zero : ¬p = 0
hp : p = ⊤
⊢ snormEssSup g (Measure.map f μ) = snormEssSup (g ∘ f) μ
[PROOFSTEP]
exact hf.essSup_map_measure
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
hp_zero : ¬p = 0
hp : ¬p = ⊤
⊢ snorm g p (Measure.map f μ) = snorm (g ∘ f) p μ
[PROOFSTEP]
simp_rw [snorm_eq_lintegral_rpow_nnnorm hp_zero hp]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
hp_zero : ¬p = 0
hp : ¬p = ⊤
⊢ (∫⁻ (x : β), ↑‖g x‖₊ ^ ENNReal.toReal p ∂Measure.map f μ) ^ (1 / ENNReal.toReal p) =
    (∫⁻ (x : α), ↑‖(g ∘ f) x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rw [hf.lintegral_map]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
hp_zero : ¬p = 0
hp : ¬p = ⊤
⊢ (∫⁻ (a : α), ↑‖g (f a)‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) =
    (∫⁻ (x : α), ↑‖(g ∘ f) x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
β : Type u_5
mβ : MeasurableSpace β
f : α → β
g✝ : β → E
g : β → F
hf : MeasurableEmbedding f
⊢ Memℒp g p ↔ Memℒp (g ∘ f) p
[PROOFSTEP]
simp_rw [Memℒp, hf.aestronglyMeasurable_map_iff, hf.snorm_map_measure]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ snorm' f q (Measure.trim ν hm) = snorm' f q ν
[PROOFSTEP]
simp_rw [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂Measure.trim ν hm) ^ (1 / q) = (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂ν) ^ (1 / q)
[PROOFSTEP]
congr 1
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂Measure.trim ν hm = ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂ν
[PROOFSTEP]
refine' lintegral_trim hm _
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ Measurable fun a => ↑‖f a‖₊ ^ q
[PROOFSTEP]
refine' @Measurable.pow_const _ _ _ _ _ _ _ m _ (@Measurable.coe_nnreal_ennreal _ m _ _) q
[GOAL]
case e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ Measurable fun a => ‖f a‖₊
[PROOFSTEP]
apply @StronglyMeasurable.measurable
[GOAL]
case e_a.hf
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ StronglyMeasurable fun a => ‖f a‖₊
[PROOFSTEP]
exact @StronglyMeasurable.nnnorm α m _ _ _ hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
⊢ limsup f (Measure.ae (Measure.trim ν hm)) = limsup f (Measure.ae ν)
[PROOFSTEP]
simp_rw [limsup_eq]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
⊢ sInf {a | ∀ᵐ (n : α) ∂Measure.trim ν hm, f n ≤ a} = sInf {a | ∀ᵐ (n : α) ∂ν, f n ≤ a}
[PROOFSTEP]
suffices h_set_eq : {a : ℝ≥0∞ | ∀ᵐ n ∂ν.trim hm, f n ≤ a} = {a : ℝ≥0∞ | ∀ᵐ n ∂ν, f n ≤ a}
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
h_set_eq : {a | ∀ᵐ (n : α) ∂Measure.trim ν hm, f n ≤ a} = {a | ∀ᵐ (n : α) ∂ν, f n ≤ a}
⊢ sInf {a | ∀ᵐ (n : α) ∂Measure.trim ν hm, f n ≤ a} = sInf {a | ∀ᵐ (n : α) ∂ν, f n ≤ a}
[PROOFSTEP]
rw [h_set_eq]
[GOAL]
case h_set_eq
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
⊢ {a | ∀ᵐ (n : α) ∂Measure.trim ν hm, f n ≤ a} = {a | ∀ᵐ (n : α) ∂ν, f n ≤ a}
[PROOFSTEP]
ext1 a
[GOAL]
case h_set_eq.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
a : ℝ≥0∞
⊢ a ∈ {a | ∀ᵐ (n : α) ∂Measure.trim ν hm, f n ≤ a} ↔ a ∈ {a | ∀ᵐ (n : α) ∂ν, f n ≤ a}
[PROOFSTEP]
suffices h_meas_eq : ν {x | ¬f x ≤ a} = ν.trim hm {x | ¬f x ≤ a}
[GOAL]
case h_set_eq.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
a : ℝ≥0∞
h_meas_eq : ↑↑ν {x | ¬f x ≤ a} = ↑↑(Measure.trim ν hm) {x | ¬f x ≤ a}
⊢ a ∈ {a | ∀ᵐ (n : α) ∂Measure.trim ν hm, f n ≤ a} ↔ a ∈ {a | ∀ᵐ (n : α) ∂ν, f n ≤ a}
[PROOFSTEP]
simp_rw [Set.mem_setOf_eq, ae_iff, h_meas_eq]
[GOAL]
case h_set_eq.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
a : ℝ≥0∞
h_meas_eq : ↑↑ν {x | ¬f x ≤ a} = ↑↑(Measure.trim ν hm) {x | ¬f x ≤ a}
⊢ (∀ᵐ (n : α) ∂Measure.trim ν hm, f n ≤ a) ↔ ↑↑(Measure.trim ν hm) {a_1 | ¬f a_1 ≤ a} = 0
[PROOFSTEP]
rfl
[GOAL]
case h_meas_eq
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
a : ℝ≥0∞
⊢ ↑↑ν {x | ¬f x ≤ a} = ↑↑(Measure.trim ν hm) {x | ¬f x ≤ a}
[PROOFSTEP]
refine' (trim_measurableSet_eq hm _).symm
[GOAL]
case h_meas_eq
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
a : ℝ≥0∞
⊢ MeasurableSet {x | ¬f x ≤ a}
[PROOFSTEP]
refine' @MeasurableSet.compl _ _ m (@measurableSet_le ℝ≥0∞ _ _ _ _ m _ _ _ _ _ hf _)
[GOAL]
case h_meas_eq
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
a : ℝ≥0∞
⊢ Measurable fun x => a
[PROOFSTEP]
exact @measurable_const _ _ _ m _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
⊢ essSup f (Measure.trim ν hm) = essSup f ν
[PROOFSTEP]
simp_rw [essSup]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → ℝ≥0∞
hf : Measurable f
⊢ limsup f (Measure.ae (Measure.trim ν hm)) = limsup f (Measure.ae ν)
[PROOFSTEP]
exact limsup_trim hm hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
⊢ snorm f p (Measure.trim ν hm) = snorm f p ν
[PROOFSTEP]
by_cases h0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : p = 0
⊢ snorm f p (Measure.trim ν hm) = snorm f p ν
[PROOFSTEP]
simp [h0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
⊢ snorm f p (Measure.trim ν hm) = snorm f p ν
[PROOFSTEP]
by_cases h_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm f p (Measure.trim ν hm) = snorm f p ν
[PROOFSTEP]
simpa only [h_top, snorm_exponent_top] using snormEssSup_trim hm hf
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : StronglyMeasurable f
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm f p (Measure.trim ν hm) = snorm f p ν
[PROOFSTEP]
simpa only [snorm_eq_snorm' h0 h_top] using snorm'_trim hm hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : AEStronglyMeasurable f (Measure.trim ν hm)
⊢ snorm f p (Measure.trim ν hm) = snorm f p ν
[PROOFSTEP]
rw [snorm_congr_ae hf.ae_eq_mk, snorm_congr_ae (ae_eq_of_ae_eq_trim hf.ae_eq_mk)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hm : m ≤ m0
f : α → E
hf : AEStronglyMeasurable f (Measure.trim ν hm)
⊢ snorm (AEStronglyMeasurable.mk f hf) p (Measure.trim ν hm) = snorm (AEStronglyMeasurable.mk f hf) p ν
[PROOFSTEP]
exact snorm_trim hm hf.stronglyMeasurable_mk
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm' (-f) q μ = snorm' f q μ
[PROOFSTEP]
simp [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
⊢ snorm (-f) p μ = snorm f p μ
[PROOFSTEP]
by_cases h0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
h0 : p = 0
⊢ snorm (-f) p μ = snorm f p μ
[PROOFSTEP]
simp [h0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
h0 : ¬p = 0
⊢ snorm (-f) p μ = snorm f p μ
[PROOFSTEP]
by_cases h_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm (-f) p μ = snorm f p μ
[PROOFSTEP]
simp [h_top, snormEssSup]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm (-f) p μ = snorm f p μ
[PROOFSTEP]
simp [snorm_eq_snorm' h0 h_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p
⊢ snorm (-f) p μ < ⊤
[PROOFSTEP]
simp [hf.right]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
have hq0_lt : 0 < q := lt_of_lt_of_le hp0_lt hpq
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
by_cases hpq_eq : p = q
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : p = q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
rw [hpq_eq, sub_self, ENNReal.rpow_zero, mul_one]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
have hpq : p < q := lt_of_le_of_ne hpq hpq_eq
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
let g := fun _ : α => (1 : ℝ≥0∞)
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
have h_rw : (∫⁻ a, (‖f a‖₊ : ℝ≥0∞) ^ p ∂μ) = ∫⁻ a, ((‖f a‖₊ : ℝ≥0∞) * g a) ^ p ∂μ := lintegral_congr fun a => by simp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
a : α
⊢ ↑‖f a‖₊ ^ p = (↑‖f a‖₊ * g a) ^ p
[PROOFSTEP]
simp
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
repeat' rw [snorm']
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
rw [snorm']
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) ^ (1 / p) ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
rw [snorm']
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
rw [snorm']
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
rw [h_rw]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
let r := p * q / (q - p)
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
have hpqr : 1 / p = 1 / q + 1 / r :=
  by
  field_simp [(ne_of_lt hp0_lt).symm, (ne_of_lt hq0_lt).symm]
  ring
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
⊢ 1 / p = 1 / q + 1 / r
[PROOFSTEP]
field_simp [(ne_of_lt hp0_lt).symm, (ne_of_lt hq0_lt).symm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
⊢ p * q = q * p
[PROOFSTEP]
ring
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
calc
  (∫⁻ a : α, (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
      (∫⁻ a : α, ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ a : α, g a ^ r ∂μ) ^ (1 / r) :=
    ENNReal.lintegral_Lp_mul_le_Lq_mul_Lr hp0_lt hpq hpqr μ hf.ennnorm aemeasurable_const
  _ = (∫⁻ a : α, ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * μ Set.univ ^ (1 / p - 1 / q) := by rw [hpqr]; simp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r) =
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)
[PROOFSTEP]
rw [hpqr]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : ∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r) =
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / q + 1 / r - 1 / q)
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
⊢ snorm' f q μ ≤ snormEssSup f μ * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
have h_le : (∫⁻ a : α, (‖f a‖₊ : ℝ≥0∞) ^ q ∂μ) ≤ ∫⁻ _ : α, snormEssSup f μ ^ q ∂μ :=
  by
  refine' lintegral_mono_ae _
  have h_nnnorm_le_snorm_ess_sup := coe_nnnorm_ae_le_snormEssSup f μ
  refine' h_nnnorm_le_snorm_ess_sup.mono fun x hx => ENNReal.rpow_le_rpow hx (le_of_lt hq_pos)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
[PROOFSTEP]
refine' lintegral_mono_ae _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
⊢ ∀ᵐ (a : α) ∂μ, ↑‖f a‖₊ ^ q ≤ snormEssSup f μ ^ q
[PROOFSTEP]
have h_nnnorm_le_snorm_ess_sup := coe_nnnorm_ae_le_snormEssSup f μ
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_nnnorm_le_snorm_ess_sup : ∀ᵐ (x : α) ∂μ, ↑‖f x‖₊ ≤ snormEssSup f μ
⊢ ∀ᵐ (a : α) ∂μ, ↑‖f a‖₊ ^ q ≤ snormEssSup f μ ^ q
[PROOFSTEP]
refine' h_nnnorm_le_snorm_ess_sup.mono fun x hx => ENNReal.rpow_le_rpow hx (le_of_lt hq_pos)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_le : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
⊢ snorm' f q μ ≤ snormEssSup f μ * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
rw [snorm', ← ENNReal.rpow_one (snormEssSup f μ)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_le : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) ≤ snormEssSup f μ ^ 1 * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
nth_rw 2 [← mul_inv_cancel (ne_of_lt hq_pos).symm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_le : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) ≤ snormEssSup f μ ^ (q * q⁻¹) * ↑↑μ Set.univ ^ (1 / q)
[PROOFSTEP]
rw [ENNReal.rpow_mul, one_div, ← ENNReal.mul_rpow_of_nonneg _ _ (by simp [hq_pos.le] : 0 ≤ q⁻¹)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_le : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
⊢ 0 ≤ q⁻¹
[PROOFSTEP]
simp [hq_pos.le]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_le : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ q⁻¹ ≤ (snormEssSup f μ ^ q * ↑↑μ Set.univ) ^ q⁻¹
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ (by simp [hq_pos.le])
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_le : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
⊢ 0 ≤ q⁻¹
[PROOFSTEP]
simp [hq_pos.le]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
h_le : ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ ∫⁻ (x : α), snormEssSup f μ ^ q ∂μ
⊢ ∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ ≤ snormEssSup f μ ^ q * ↑↑μ Set.univ
[PROOFSTEP]
rwa [lintegral_const] at h_le 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
by_cases hp0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p = 0
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
simp [hp0, zero_le]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : ¬p = 0
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
rw [← Ne.def] at hp0 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
have hp0_lt : 0 < p := lt_of_le_of_ne (zero_le _) hp0.symm
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
have hq0_lt : 0 < q := lt_of_lt_of_le hp0_lt hpq
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
by_cases hq_top : q = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
simp only [hq_top, _root_.div_zero, one_div, ENNReal.top_toReal, sub_zero, snorm_exponent_top, GroupWithZero.inv_zero]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
⊢ snorm f p μ ≤ snormEssSup f μ * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
hp_top : p = ⊤
⊢ snorm f p μ ≤ snormEssSup f μ * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
simp only [hp_top, ENNReal.rpow_zero, mul_one, ENNReal.top_toReal, sub_zero, GroupWithZero.inv_zero, snorm_exponent_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
hp_top : p = ⊤
⊢ snormEssSup f μ ≤ snormEssSup f μ
[PROOFSTEP]
exact le_rfl
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
hp_top : ¬p = ⊤
⊢ snorm f p μ ≤ snormEssSup f μ * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
hp_top : ¬p = ⊤
⊢ snorm' f (ENNReal.toReal p) μ ≤ snormEssSup f μ * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
have hp_pos : 0 < p.toReal := ENNReal.toReal_pos hp0_lt.ne' hp_top
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ snorm' f (ENNReal.toReal p) μ ≤ snormEssSup f μ * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
refine' (snorm'_le_snormEssSup_mul_rpow_measure_univ hp_pos).trans (le_of_eq _)
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ snormEssSup f μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) = snormEssSup f μ * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
[PROOFSTEP]
congr
[GOAL]
case neg.e_a.e_a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : q = ⊤
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ 1 / ENNReal.toReal p = (ENNReal.toReal p)⁻¹
[PROOFSTEP]
exact one_div _
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : ¬q = ⊤
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
have hp_lt_top : p < ∞ := hpq.trans_lt (lt_top_iff_ne_top.mpr hq_top)
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : ¬q = ⊤
hp_lt_top : p < ⊤
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
have hp_pos : 0 < p.toReal := ENNReal.toReal_pos hp0_lt.ne' hp_lt_top.ne
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : ¬q = ⊤
hp_lt_top : p < ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ snorm f p μ ≤ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
rw [snorm_eq_snorm' hp0_lt.ne.symm hp_lt_top.ne, snorm_eq_snorm' hq0_lt.ne.symm hq_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : ¬q = ⊤
hp_lt_top : p < ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ snorm' f (ENNReal.toReal p) μ ≤
    snorm' f (ENNReal.toReal q) μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
have hpq_real : p.toReal ≤ q.toReal := by rwa [ENNReal.toReal_le_toReal hp_lt_top.ne hq_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : ¬q = ⊤
hp_lt_top : p < ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ ENNReal.toReal p ≤ ENNReal.toReal q
[PROOFSTEP]
rwa [ENNReal.toReal_le_toReal hp_lt_top.ne hq_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hp0 : p ≠ 0
hp0_lt : 0 < p
hq0_lt : 0 < q
hq_top : ¬q = ⊤
hp_lt_top : p < ⊤
hp_pos : 0 < ENNReal.toReal p
hpq_real : ENNReal.toReal p ≤ ENNReal.toReal q
⊢ snorm' f (ENNReal.toReal p) μ ≤
    snorm' f (ENNReal.toReal q) μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q)
[PROOFSTEP]
exact snorm'_le_snorm'_mul_rpow_measure_univ hp_pos hpq_real hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m✝ m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ✝ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
μ : Measure α
inst✝ : IsProbabilityMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
⊢ snorm' f p μ ≤ snorm' f q μ
[PROOFSTEP]
have h_le_μ := snorm'_le_snorm'_mul_rpow_measure_univ hp0_lt hpq hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m✝ m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ✝ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
m : MeasurableSpace α
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
μ : Measure α
inst✝ : IsProbabilityMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
h_le_μ : snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)
⊢ snorm' f p μ ≤ snorm' f q μ
[PROOFSTEP]
rwa [measure_univ, ENNReal.one_rpow, mul_one] at h_le_μ 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
hq_pos : 0 < q
f : α → F
inst✝ : IsProbabilityMeasure μ
⊢ snormEssSup f μ * ↑↑μ Set.univ ^ (1 / q) = snormEssSup f μ
[PROOFSTEP]
simp [measure_univ]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
hpq : p ≤ q
inst✝ : IsProbabilityMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
⊢ snorm f q μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p - 1 / ENNReal.toReal q) = snorm f q μ
[PROOFSTEP]
simp [measure_univ]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
⊢ snorm' f p μ < ⊤
[PROOFSTEP]
cases' le_or_lt p 0 with hp_nonpos hp_pos
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
hp_nonpos : p ≤ 0
⊢ snorm' f p μ < ⊤
[PROOFSTEP]
rw [le_antisymm hp_nonpos hp_nonneg]
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
hp_nonpos : p ≤ 0
⊢ snorm' f 0 μ < ⊤
[PROOFSTEP]
simp
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
hp_pos : 0 < p
⊢ snorm' f p μ < ⊤
[PROOFSTEP]
have hq_pos : 0 < q := lt_of_lt_of_le hp_pos hpq
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
hp_pos : 0 < p
hq_pos : 0 < q
⊢ snorm' f p μ < ⊤
[PROOFSTEP]
calc
  snorm' f p μ ≤ snorm' f q μ * μ Set.univ ^ (1 / p - 1 / q) := snorm'_le_snorm'_mul_rpow_measure_univ hp_pos hpq hf
  _ < ∞ := by
    rw [ENNReal.mul_lt_top_iff]
    refine' Or.inl ⟨hfq_lt_top, ENNReal.rpow_lt_top_of_nonneg _ (measure_ne_top μ Set.univ)⟩
    rwa [le_sub_comm, sub_zero, one_div, one_div, inv_le_inv hq_pos hp_pos]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
hp_pos : 0 < p
hq_pos : 0 < q
⊢ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q) < ⊤
[PROOFSTEP]
rw [ENNReal.mul_lt_top_iff]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
hp_pos : 0 < p
hq_pos : 0 < q
⊢ snorm' f q μ < ⊤ ∧ ↑↑μ Set.univ ^ (1 / p - 1 / q) < ⊤ ∨ snorm' f q μ = 0 ∨ ↑↑μ Set.univ ^ (1 / p - 1 / q) = 0
[PROOFSTEP]
refine' Or.inl ⟨hfq_lt_top, ENNReal.rpow_lt_top_of_nonneg _ (measure_ne_top μ Set.univ)⟩
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ
inst✝ : IsFiniteMeasure μ
f : α → E
hf : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f q μ < ⊤
hp_nonneg : 0 ≤ p
hpq : p ≤ q
hp_pos : 0 < p
hq_pos : 0 < q
⊢ 0 ≤ 1 / p - 1 / q
[PROOFSTEP]
rwa [le_sub_comm, sub_zero, one_div, one_div, inv_le_inv hq_pos hp_pos]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ (ε * ↑↑μ {x | ε ≤ ↑‖f x‖₊ ^ ENNReal.toReal p}) ^ (1 / ENNReal.toReal p) ≤ snorm f p μ
[PROOFSTEP]
rw [snorm_eq_lintegral_rpow_nnnorm hp_ne_zero hp_ne_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ (ε * ↑↑μ {x | ε ≤ ↑‖f x‖₊ ^ ENNReal.toReal p}) ^ (1 / ENNReal.toReal p) ≤
    (∫⁻ (x : α), ↑‖f x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
exact
  ENNReal.rpow_le_rpow (mul_meas_ge_le_lintegral₀ (hf.ennnorm.pow_const _) ε) (one_div_nonneg.2 ENNReal.toReal_nonneg)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ ε * ↑↑μ {x | ε ≤ ↑‖f x‖₊ ^ ENNReal.toReal p} ≤ snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
have : 1 / p.toReal * p.toReal = 1 := by
  refine' one_div_mul_cancel _
  rw [Ne, ENNReal.toReal_eq_zero_iff]
  exact not_or_of_not hp_ne_zero hp_ne_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ 1 / ENNReal.toReal p * ENNReal.toReal p = 1
[PROOFSTEP]
refine' one_div_mul_cancel _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ ENNReal.toReal p ≠ 0
[PROOFSTEP]
rw [Ne, ENNReal.toReal_eq_zero_iff]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ ¬(p = 0 ∨ p = ⊤)
[PROOFSTEP]
exact not_or_of_not hp_ne_zero hp_ne_top
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
this : 1 / ENNReal.toReal p * ENNReal.toReal p = 1
⊢ ε * ↑↑μ {x | ε ≤ ↑‖f x‖₊ ^ ENNReal.toReal p} ≤ snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
rw [← ENNReal.rpow_one (ε * μ {x | ε ≤ (‖f x‖₊ : ℝ≥0∞) ^ p.toReal}), ← this, ENNReal.rpow_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
this : 1 / ENNReal.toReal p * ENNReal.toReal p = 1
⊢ ((ε * ↑↑μ {x | ε ≤ ↑‖f x‖₊ ^ ENNReal.toReal p}) ^ (1 / ENNReal.toReal p)) ^ ENNReal.toReal p ≤
    snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
exact ENNReal.rpow_le_rpow (pow_mul_meas_ge_le_snorm μ hp_ne_zero hp_ne_top hf ε) ENNReal.toReal_nonneg
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ ε ^ ENNReal.toReal p * ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
convert mul_meas_ge_le_pow_snorm μ hp_ne_zero hp_ne_top hf (ε ^ p.toReal) using 4
[GOAL]
case h.e'_3.h.e'_6.h.e'_3.h.e'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
⊢ (fun x => ε ≤ ↑‖f x‖₊) = fun x => ε ^ ENNReal.toReal p ≤ ↑‖f x‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
ext x
[GOAL]
case h.e'_3.h.e'_6.h.e'_3.h.e'_2.h.a
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
x : α
⊢ ε ≤ ↑‖f x‖₊ ↔ ε ^ ENNReal.toReal p ≤ ↑‖f x‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
rw [ENNReal.rpow_le_rpow_iff (ENNReal.toReal_pos hp_ne_zero hp_ne_top)]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
⊢ ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ ENNReal.toReal p * snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
by_cases ε = ∞
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
⊢ ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ ENNReal.toReal p * snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
by_cases ε = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ε = ⊤
⊢ ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ ENNReal.toReal p * snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
simp [h]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
⊢ ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ ENNReal.toReal p * snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
have hεpow : ε ^ p.toReal ≠ 0 := (ENNReal.rpow_pos (pos_iff_ne_zero.2 hε) h).ne.symm
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ ENNReal.toReal p ≠ 0
⊢ ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ ENNReal.toReal p * snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
have hεpow' : ε ^ p.toReal ≠ ∞ := ENNReal.rpow_ne_top_of_nonneg ENNReal.toReal_nonneg h
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ ENNReal.toReal p ≠ 0
hεpow' : ε ^ ENNReal.toReal p ≠ ⊤
⊢ ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ ENNReal.toReal p * snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
rw [ENNReal.inv_rpow, ← ENNReal.mul_le_mul_left hεpow hεpow', ← mul_assoc, ENNReal.mul_inv_cancel hεpow hεpow', one_mul]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ ENNReal.toReal p ≠ 0
hεpow' : ε ^ ENNReal.toReal p ≠ ⊤
⊢ ε ^ ENNReal.toReal p * ↑↑μ {x | ε ≤ ↑‖f x‖₊} ≤ snorm f p μ ^ ENNReal.toReal p
[PROOFSTEP]
exact mul_meas_ge_le_pow_snorm' μ hp_ne_zero hp_ne_top hf ε
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hfq : Memℒp f q
hpq : p ≤ q
⊢ Memℒp f p
[PROOFSTEP]
cases' hfq with hfq_m hfq_lt_top
[GOAL]
case intro
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
⊢ Memℒp f p
[PROOFSTEP]
by_cases hp0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p = 0
⊢ Memℒp f p
[PROOFSTEP]
rwa [hp0, memℒp_zero_iff_aestronglyMeasurable]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : ¬p = 0
⊢ Memℒp f p
[PROOFSTEP]
rw [← Ne.def] at hp0 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
⊢ Memℒp f p
[PROOFSTEP]
refine' ⟨hfq_m, _⟩
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
⊢ snorm f p μ < ⊤
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
⊢ snorm f p μ < ⊤
[PROOFSTEP]
have hq_top : q = ∞ := by rwa [hp_top, top_le_iff] at hpq 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
⊢ q = ⊤
[PROOFSTEP]
rwa [hp_top, top_le_iff] at hpq 
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
hq_top : q = ⊤
⊢ snorm f p μ < ⊤
[PROOFSTEP]
rw [hp_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
hq_top : q = ⊤
⊢ snorm f ⊤ μ < ⊤
[PROOFSTEP]
rwa [hq_top] at hfq_lt_top 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
⊢ snorm f p μ < ⊤
[PROOFSTEP]
have hp_pos : 0 < p.toReal := ENNReal.toReal_pos hp0 hp_top
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ snorm f p μ < ⊤
[PROOFSTEP]
by_cases hq_top : q = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snorm f p μ < ⊤
[PROOFSTEP]
rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snorm' f (ENNReal.toReal p) μ < ⊤
[PROOFSTEP]
rw [hq_top, snorm_exponent_top] at hfq_lt_top 
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snorm' f (ENNReal.toReal p) μ < ⊤
[PROOFSTEP]
refine' lt_of_le_of_lt (snorm'_le_snormEssSup_mul_rpow_measure_univ hp_pos) _
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snormEssSup f μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤
[PROOFSTEP]
refine' ENNReal.mul_lt_top hfq_lt_top.ne _
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) ≠ ⊤
[PROOFSTEP]
exact (ENNReal.rpow_lt_top_of_nonneg (by simp [hp_pos.le]) (measure_ne_top μ Set.univ)).ne
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ 0 ≤ 1 / ENNReal.toReal p
[PROOFSTEP]
simp [hp_pos.le]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
⊢ snorm f p μ < ⊤
[PROOFSTEP]
have hq0 : q ≠ 0 := by
  by_contra hq_eq_zero
  have hp_eq_zero : p = 0 := le_antisymm (by rwa [hq_eq_zero] at hpq ) (zero_le _)
  rw [hp_eq_zero, ENNReal.zero_toReal] at hp_pos 
  exact (lt_irrefl _) hp_pos
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
⊢ q ≠ 0
[PROOFSTEP]
by_contra hq_eq_zero
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
⊢ False
[PROOFSTEP]
have hp_eq_zero : p = 0 := le_antisymm (by rwa [hq_eq_zero] at hpq ) (zero_le _)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
⊢ p ≤ 0
[PROOFSTEP]
rwa [hq_eq_zero] at hpq 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
hp_eq_zero : p = 0
⊢ False
[PROOFSTEP]
rw [hp_eq_zero, ENNReal.zero_toReal] at hp_pos 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < 0
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
hp_eq_zero : p = 0
⊢ False
[PROOFSTEP]
exact (lt_irrefl _) hp_pos
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
⊢ snorm f p μ < ⊤
[PROOFSTEP]
have hpq_real : p.toReal ≤ q.toReal := by rwa [ENNReal.toReal_le_toReal hp_top hq_top]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
⊢ ENNReal.toReal p ≤ ENNReal.toReal q
[PROOFSTEP]
rwa [ENNReal.toReal_le_toReal hp_top hq_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : ENNReal.toReal p ≤ ENNReal.toReal q
⊢ snorm f p μ < ⊤
[PROOFSTEP]
rw [snorm_eq_snorm' hp0 hp_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : ENNReal.toReal p ≤ ENNReal.toReal q
⊢ snorm' f (ENNReal.toReal p) μ < ⊤
[PROOFSTEP]
rw [snorm_eq_snorm' hq0 hq_top] at hfq_lt_top 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f (ENNReal.toReal q) μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : ENNReal.toReal p ≤ ENNReal.toReal q
⊢ snorm' f (ENNReal.toReal p) μ < ⊤
[PROOFSTEP]
exact snorm'_lt_top_of_snorm'_lt_top_of_exponent_le hfq_m hfq_lt_top (le_of_lt hp_pos) hpq_real
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : Memℒp f p
hg : Memℒp g p
⊢ Memℒp (f - g) p
[PROOFSTEP]
rw [sub_eq_add_neg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : α → E
hf : Memℒp f p
hg : Memℒp g p
⊢ Memℒp (f + -g) p
[PROOFSTEP]
exact hf.add hg.neg
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
hf : ∀ (i : ι), i ∈ s → Memℒp (f i) p
⊢ Memℒp (fun a => ∑ i in s, f i a) p
[PROOFSTEP]
haveI : DecidableEq ι := Classical.decEq _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
hf : ∀ (i : ι), i ∈ s → Memℒp (f i) p
this : DecidableEq ι
⊢ Memℒp (fun a => ∑ i in s, f i a) p
[PROOFSTEP]
revert hf
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
this : DecidableEq ι
⊢ (∀ (i : ι), i ∈ s → Memℒp (f i) p) → Memℒp (fun a => ∑ i in s, f i a) p
[PROOFSTEP]
refine' Finset.induction_on s _ _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
this : DecidableEq ι
⊢ (∀ (i : ι), i ∈ ∅ → Memℒp (f i) p) → Memℒp (fun a => ∑ i in ∅, f i a) p
[PROOFSTEP]
simp only [zero_mem_ℒp', Finset.sum_empty, imp_true_iff]
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
this : DecidableEq ι
⊢ ∀ ⦃a : ι⦄ {s : Finset ι},
    ¬a ∈ s →
      ((∀ (i : ι), i ∈ s → Memℒp (f i) p) → Memℒp (fun a => ∑ i in s, f i a) p) →
        (∀ (i : ι), i ∈ insert a s → Memℒp (f i) p) → Memℒp (fun a_3 => ∑ i in insert a s, f i a_3) p
[PROOFSTEP]
intro i s his ih hf
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s✝ : Finset ι
f : ι → α → E
this : DecidableEq ι
i : ι
s : Finset ι
his : ¬i ∈ s
ih : (∀ (i : ι), i ∈ s → Memℒp (f i) p) → Memℒp (fun a => ∑ i in s, f i a) p
hf : ∀ (i_1 : ι), i_1 ∈ insert i s → Memℒp (f i_1) p
⊢ Memℒp (fun a => ∑ i in insert i s, f i a) p
[PROOFSTEP]
simp only [his, Finset.sum_insert, not_false_iff]
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s✝ : Finset ι
f : ι → α → E
this : DecidableEq ι
i : ι
s : Finset ι
his : ¬i ∈ s
ih : (∀ (i : ι), i ∈ s → Memℒp (f i) p) → Memℒp (fun a => ∑ i in s, f i a) p
hf : ∀ (i_1 : ι), i_1 ∈ insert i s → Memℒp (f i_1) p
⊢ Memℒp (fun a => f i a + ∑ i in s, f i a) p
[PROOFSTEP]
exact (hf i (s.mem_insert_self i)).add (ih fun j hj => hf j (Finset.mem_insert_of_mem hj))
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
hf : ∀ (i : ι), i ∈ s → Memℒp (f i) p
⊢ Memℒp (∑ i in s, f i) p
[PROOFSTEP]
convert memℒp_finset_sum s hf using 1
[GOAL]
case h.e'_5
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
hf : ∀ (i : ι), i ∈ s → Memℒp (f i) p
⊢ ∑ i in s, f i = fun a => ∑ i in s, f i a
[PROOFSTEP]
ext x
[GOAL]
case h.e'_5.h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
ι : Type u_5
s : Finset ι
f : ι → α → E
hf : ∀ (i : ι), i ∈ s → Memℒp (f i) p
x : α
⊢ Finset.sum s (fun i => f i) x = ∑ i in s, f i x
[PROOFSTEP]
simp
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ
hp : 0 < p
⊢ snorm' f p μ ≤ c • snorm' g p μ
[PROOFSTEP]
simp_rw [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ
hp : 0 < p
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) ^ (1 / p) ≤ c • (∫⁻ (a : α), ↑‖g a‖₊ ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
rw [← ENNReal.rpow_le_rpow_iff hp, ENNReal.smul_def, smul_eq_mul, ENNReal.mul_rpow_of_nonneg _ _ hp.le]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ
hp : 0 < p
⊢ ((∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) ^ (1 / p)) ^ p ≤ ↑c ^ p * ((∫⁻ (a : α), ↑‖g a‖₊ ^ p ∂μ) ^ (1 / p)) ^ p
[PROOFSTEP]
simp_rw [← ENNReal.rpow_mul, one_div, inv_mul_cancel hp.ne.symm, ENNReal.rpow_one, ENNReal.coe_rpow_of_nonneg _ hp.le, ←
  lintegral_const_mul' _ _ ENNReal.coe_ne_top, ← ENNReal.coe_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ
hp : 0 < p
⊢ ∫⁻ (a : α), ↑(‖f a‖₊ ^ p) ∂μ ≤ ∫⁻ (a : α), ↑(c ^ p * ‖g a‖₊ ^ p) ∂μ
[PROOFSTEP]
apply lintegral_mono_ae
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ
hp : 0 < p
⊢ ∀ᵐ (a : α) ∂μ, ↑(‖f a‖₊ ^ p) ≤ ↑(c ^ p * ‖g a‖₊ ^ p)
[PROOFSTEP]
simp_rw [ENNReal.coe_le_coe, ← NNReal.mul_rpow, NNReal.rpow_le_rpow_iff hp]
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ
hp : 0 < p
⊢ ∀ᵐ (a : α) ∂μ, ‖f a‖₊ ≤ c * ‖g a‖₊
[PROOFSTEP]
exact h
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
⊢ essSup (fun x => ↑(c * ‖g x‖₊)) μ = essSup (fun x => ↑c * ↑‖g x‖₊) μ
[PROOFSTEP]
simp_rw [ENNReal.coe_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ≥0∞
⊢ snorm f p μ ≤ c • snorm g p μ
[PROOFSTEP]
by_cases h0 : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ≥0∞
h0 : p = 0
⊢ snorm f p μ ≤ c • snorm g p μ
[PROOFSTEP]
simp [h0]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ≥0∞
h0 : ¬p = 0
⊢ snorm f p μ ≤ c • snorm g p μ
[PROOFSTEP]
by_cases h_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ≥0∞
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm f p μ ≤ c • snorm g p μ
[PROOFSTEP]
rw [h_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ≥0∞
h0 : ¬p = 0
h_top : p = ⊤
⊢ snorm f ⊤ μ ≤ c • snorm g ⊤ μ
[PROOFSTEP]
exact snormEssSup_le_nnreal_smul_snormEssSup_of_ae_le_mul h
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ≥0∞
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm f p μ ≤ c • snorm g p μ
[PROOFSTEP]
simp_rw [snorm_eq_snorm' h0 h_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ≥0
h : ∀ᵐ (x : α) ∂μ, ‖f x‖₊ ≤ c * ‖g x‖₊
p : ℝ≥0∞
h0 : ¬p = 0
h_top : ¬p = ⊤
⊢ snorm' f (ENNReal.toReal p) μ ≤ c • snorm' g (ENNReal.toReal p) μ
[PROOFSTEP]
exact snorm'_le_nnreal_smul_snorm'_of_ae_le_mul h (ENNReal.toReal_pos h0 h_top)
[GOAL]
α✝ : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_5
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
⊢ a ≤ b * c ↔ a = 0 ∧ c = 0
[PROOFSTEP]
constructor
[GOAL]
case mp
α✝ : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_5
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
⊢ a ≤ b * c → a = 0 ∧ c = 0
[PROOFSTEP]
intro h
[GOAL]
case mp
α✝ : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_5
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
h : a ≤ b * c
⊢ a = 0 ∧ c = 0
[PROOFSTEP]
exact
  ⟨(h.trans (mul_nonpos_of_nonpos_of_nonneg hb.le hc)).antisymm ha,
    (nonpos_of_mul_nonneg_right (ha.trans h) hb).antisymm hc⟩
[GOAL]
case mpr
α✝ : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_5
inst✝ : LinearOrderedSemiring α
a b c : α
ha : 0 ≤ a
hb : b < 0
hc : 0 ≤ c
⊢ a = 0 ∧ c = 0 → a ≤ b * c
[PROOFSTEP]
rintro ⟨rfl, rfl⟩
[GOAL]
case mpr.intro
α✝ : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α✝
p : ℝ≥0∞
q : ℝ
μ ν : Measure α✝
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
α : Type u_5
inst✝ : LinearOrderedSemiring α
b : α
hb : b < 0
ha hc : 0 ≤ 0
⊢ 0 ≤ b * 0
[PROOFSTEP]
rw [mul_zero]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ
h : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ c * ‖g x‖
hc : c < 0
p : ℝ≥0∞
⊢ snorm f p μ = 0 ∧ snorm g p μ = 0
[PROOFSTEP]
simp_rw [le_mul_iff_eq_zero_of_nonneg_of_neg_of_nonneg (norm_nonneg _) hc (norm_nonneg _), norm_eq_zero,
  eventually_and] at h 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ
hc : c < 0
p : ℝ≥0∞
h : (∀ᵐ (x : α) ∂μ, f x = 0) ∧ ∀ᵐ (x : α) ∂μ, g x = 0
⊢ snorm f p μ = 0 ∧ snorm g p μ = 0
[PROOFSTEP]
change f =ᵐ[μ] 0 ∧ g =ᵐ[μ] 0 at h 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
g : α → G
c : ℝ
hc : c < 0
p : ℝ≥0∞
h : f =ᵐ[μ] 0 ∧ g =ᵐ[μ] 0
⊢ snorm f p μ = 0 ∧ snorm g p μ = 0
[PROOFSTEP]
simp [snorm_congr_ae h.1, snorm_congr_ae h.2]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ snorm' (fun x => b (f x) (g x)) p μ ≤ snorm' f q μ * snorm' g r μ
[PROOFSTEP]
rw [snorm']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑‖b (f a) (g a)‖₊ ^ p ∂μ) ^ (1 / p) ≤ snorm' f q μ * snorm' g r μ
[PROOFSTEP]
calc
  (∫⁻ a : α, ↑‖b (f a) (g a)‖₊ ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ a : α, ↑(‖f a‖₊ * ‖g a‖₊) ^ p ∂μ) ^ (1 / p) :=
    (ENNReal.rpow_le_rpow_iff <| one_div_pos.mpr hp0_lt).mpr <|
      lintegral_mono_ae <| h.mono fun a ha => (ENNReal.rpow_le_rpow_iff hp0_lt).mpr <| ENNReal.coe_le_coe.mpr <| ha
  _ ≤ _ := ?_
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑(‖f a‖₊ * ‖g a‖₊) ^ p ∂μ) ^ (1 / p) ≤ snorm' f q μ * snorm' g r μ
[PROOFSTEP]
simp_rw [snorm', ENNReal.coe_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * ↑‖g a‖₊) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), ↑‖g a‖₊ ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
exact ENNReal.lintegral_Lp_mul_le_Lq_mul_Lr hp0_lt hpq hpqr μ hf.ennnorm hg.ennnorm
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f ⊤ μ * snorm g p μ
[PROOFSTEP]
by_cases hp_top : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : p = ⊤
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f ⊤ μ * snorm g p μ
[PROOFSTEP]
simp_rw [hp_top, snorm_exponent_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : p = ⊤
⊢ snormEssSup (fun x => b (f x) (g x)) μ ≤ snormEssSup f μ * snormEssSup g μ
[PROOFSTEP]
refine' le_trans (essSup_mono_ae <| h.mono fun a ha => _) (ENNReal.essSup_mul_le _ _)
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : p = ⊤
a : α
ha : ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
⊢ (fun x => ↑‖(fun x => b (f x) (g x)) x‖₊) a ≤ ((fun x => ↑‖f x‖₊) * fun x => ↑‖g x‖₊) a
[PROOFSTEP]
simp_rw [Pi.mul_apply, ← ENNReal.coe_mul, ENNReal.coe_le_coe]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : p = ⊤
a : α
ha : ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
⊢ ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
[PROOFSTEP]
exact ha
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f ⊤ μ * snorm g p μ
[PROOFSTEP]
by_cases hp_zero : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : p = 0
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f ⊤ μ * snorm g p μ
[PROOFSTEP]
simp only [hp_zero, snorm_exponent_zero, mul_zero, le_zero_iff]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f ⊤ μ * snorm g p μ
[PROOFSTEP]
simp_rw [snorm_eq_lintegral_rpow_nnnorm hp_zero hp_top, snorm_exponent_top, snormEssSup]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (∫⁻ (x : α), ↑‖b (f x) (g x)‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) ≤
    essSup (fun x => ↑‖f x‖₊) μ * (∫⁻ (x : α), ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
calc
  (∫⁻ x, (‖b (f x) (g x)‖₊ : ℝ≥0∞) ^ p.toReal ∂μ) ^ (1 / p.toReal) ≤
      (∫⁻ x, (‖f x‖₊ : ℝ≥0∞) ^ p.toReal * (‖g x‖₊ : ℝ≥0∞) ^ p.toReal ∂μ) ^ (1 / p.toReal) :=
    by
    refine' ENNReal.rpow_le_rpow _ (one_div_nonneg.mpr ENNReal.toReal_nonneg)
    refine' lintegral_mono_ae (h.mono fun a ha => _)
    rw [← ENNReal.mul_rpow_of_nonneg _ _ ENNReal.toReal_nonneg]
    refine' ENNReal.rpow_le_rpow _ ENNReal.toReal_nonneg
    rw [← ENNReal.coe_mul, ENNReal.coe_le_coe]
    exact ha
  _ ≤ (∫⁻ x, essSup (fun x => (‖f x‖₊ : ℝ≥0∞)) μ ^ p.toReal * (‖g x‖₊ : ℝ≥0∞) ^ p.toReal ∂μ) ^ (1 / p.toReal) :=
    by
    refine' ENNReal.rpow_le_rpow _ _
    swap;
    · rw [one_div_nonneg]
      exact ENNReal.toReal_nonneg
    refine' lintegral_mono_ae _
    filter_upwards [@ENNReal.ae_le_essSup _ _ μ fun x => (‖f x‖₊ : ℝ≥0∞)] with x hx
    exact mul_le_mul_right' (ENNReal.rpow_le_rpow hx ENNReal.toReal_nonneg) _
  _ = essSup (fun x => (‖f x‖₊ : ℝ≥0∞)) μ * (∫⁻ x, (‖g x‖₊ : ℝ≥0∞) ^ p.toReal ∂μ) ^ (1 / p.toReal) :=
    by
    rw [lintegral_const_mul'']
    swap; · exact hg.nnnorm.aemeasurable.coe_nnreal_ennreal.pow aemeasurable_const
    rw [ENNReal.mul_rpow_of_nonneg]
    swap;
    · rw [one_div_nonneg]
      exact ENNReal.toReal_nonneg
    rw [← ENNReal.rpow_mul, one_div, mul_inv_cancel, ENNReal.rpow_one]
    rw [Ne.def, ENNReal.toReal_eq_zero_iff, not_or]
    exact ⟨hp_zero, hp_top⟩
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (∫⁻ (x : α), ↑‖b (f x) (g x)‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) ≤
    (∫⁻ (x : α), ↑‖f x‖₊ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ (one_div_nonneg.mpr ENNReal.toReal_nonneg)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ ∫⁻ (x : α), ↑‖b (f x) (g x)‖₊ ^ ENNReal.toReal p ∂μ ≤
    ∫⁻ (x : α), ↑‖f x‖₊ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ
[PROOFSTEP]
refine' lintegral_mono_ae (h.mono fun a ha => _)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
a : α
ha : ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
⊢ ↑‖b (f a) (g a)‖₊ ^ ENNReal.toReal p ≤ ↑‖f a‖₊ ^ ENNReal.toReal p * ↑‖g a‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
rw [← ENNReal.mul_rpow_of_nonneg _ _ ENNReal.toReal_nonneg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
a : α
ha : ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
⊢ ↑‖b (f a) (g a)‖₊ ^ ENNReal.toReal p ≤ (↑‖f a‖₊ * ↑‖g a‖₊) ^ ENNReal.toReal p
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ ENNReal.toReal_nonneg
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
a : α
ha : ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
⊢ ↑‖b (f a) (g a)‖₊ ≤ ↑‖f a‖₊ * ↑‖g a‖₊
[PROOFSTEP]
rw [← ENNReal.coe_mul, ENNReal.coe_le_coe]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
a : α
ha : ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
⊢ ‖b (f a) (g a)‖₊ ≤ ‖f a‖₊ * ‖g a‖₊
[PROOFSTEP]
exact ha
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (∫⁻ (x : α), ↑‖f x‖₊ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) ≤
    (∫⁻ (x : α), essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^
      (1 / ENNReal.toReal p)
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ ∫⁻ (x : α), ↑‖f x‖₊ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ ≤
    ∫⁻ (x : α), essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ 0 ≤ 1 / ENNReal.toReal p
[PROOFSTEP]
swap
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ 0 ≤ 1 / ENNReal.toReal p
[PROOFSTEP]
rw [one_div_nonneg]
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ 0 ≤ ENNReal.toReal p
[PROOFSTEP]
exact ENNReal.toReal_nonneg
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ ∫⁻ (x : α), ↑‖f x‖₊ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ ≤
    ∫⁻ (x : α), essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ
[PROOFSTEP]
refine' lintegral_mono_ae _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ ∀ᵐ (a : α) ∂μ,
    ↑‖f a‖₊ ^ ENNReal.toReal p * ↑‖g a‖₊ ^ ENNReal.toReal p ≤
      essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ↑‖g a‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
filter_upwards [@ENNReal.ae_le_essSup _ _ μ fun x => (‖f x‖₊ : ℝ≥0∞)] with x hx
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
x : α
hx : ↑‖f x‖₊ ≤ essSup (fun x => ↑‖f x‖₊) μ
⊢ ↑‖f x‖₊ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ≤
    essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
exact mul_le_mul_right' (ENNReal.rpow_le_rpow hx ENNReal.toReal_nonneg) _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (∫⁻ (x : α), essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^
      (1 / ENNReal.toReal p) =
    essSup (fun x => ↑‖f x‖₊) μ * (∫⁻ (x : α), ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rw [lintegral_const_mul'']
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ∫⁻ (a : α), ↑‖g a‖₊ ^ ENNReal.toReal p ∂μ) ^
      (1 / ENNReal.toReal p) =
    essSup (fun x => ↑‖f x‖₊) μ * (∫⁻ (x : α), ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
case hf
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ AEMeasurable fun x => ↑‖g x‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
swap
[GOAL]
case hf
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ AEMeasurable fun x => ↑‖g x‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
exact hg.nnnorm.aemeasurable.coe_nnreal_ennreal.pow aemeasurable_const
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p * ∫⁻ (a : α), ↑‖g a‖₊ ^ ENNReal.toReal p ∂μ) ^
      (1 / ENNReal.toReal p) =
    essSup (fun x => ↑‖f x‖₊) μ * (∫⁻ (x : α), ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rw [ENNReal.mul_rpow_of_nonneg]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p) ^ (1 / ENNReal.toReal p) *
      (∫⁻ (a : α), ↑‖g a‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) =
    essSup (fun x => ↑‖f x‖₊) μ * (∫⁻ (x : α), ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
case hz
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ 0 ≤ 1 / ENNReal.toReal p
[PROOFSTEP]
swap
[GOAL]
case hz
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ 0 ≤ 1 / ENNReal.toReal p
[PROOFSTEP]
rw [one_div_nonneg]
[GOAL]
case hz
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ 0 ≤ ENNReal.toReal p
[PROOFSTEP]
exact ENNReal.toReal_nonneg
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ (essSup (fun x => ↑‖f x‖₊) μ ^ ENNReal.toReal p) ^ (1 / ENNReal.toReal p) *
      (∫⁻ (a : α), ↑‖g a‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) =
    essSup (fun x => ↑‖f x‖₊) μ * (∫⁻ (x : α), ↑‖g x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p)
[PROOFSTEP]
rw [← ENNReal.rpow_mul, one_div, mul_inv_cancel, ENNReal.rpow_one]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ ENNReal.toReal p ≠ 0
[PROOFSTEP]
rw [Ne.def, ENNReal.toReal_eq_zero_iff, not_or]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hp_top : ¬p = ⊤
hp_zero : ¬p = 0
⊢ ¬p = 0 ∧ ¬p = ⊤
[PROOFSTEP]
exact ⟨hp_zero, hp_top⟩
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f p μ * snorm g ⊤ μ
[PROOFSTEP]
rw [← snorm_norm f, ← snorm_norm g]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm (fun x => ‖f x‖) p μ * snorm (fun x => ‖g x‖) ⊤ μ
[PROOFSTEP]
refine' (snorm_mono_ae_real h).trans _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ snorm (fun x => (fun a => ↑a) (‖f x‖₊ * ‖g x‖₊)) p μ ≤ snorm (fun x => ‖f x‖) p μ * snorm (fun x => ‖g x‖) ⊤ μ
[PROOFSTEP]
simp_rw [mul_comm ‖f _‖₊, val_eq_coe, NNReal.coe_mul, coe_nnnorm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ snorm (fun x => ‖g x‖ * ‖f x‖) p μ ≤ snorm (fun x => ‖f x‖) p μ * snorm (fun x => ‖g x‖) ⊤ μ
[PROOFSTEP]
rw [mul_comm]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ snorm (fun x => ‖g x‖ * ‖f x‖) p μ ≤ snorm (fun x => ‖g x‖) ⊤ μ * snorm (fun x => ‖f x‖) p μ
[PROOFSTEP]
refine' snorm_le_snorm_top_mul_snorm p (fun x => ‖g x‖) hf.norm _ (h.mono fun x _ => _)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
x : α
x✝ : ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ ‖(fun x => ‖g x‖) x * ‖f x‖‖₊ ≤ ‖(fun x => ‖g x‖) x‖₊ * ‖‖f x‖‖₊
[PROOFSTEP]
simp_rw [nnnorm_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
x : α
x✝ : ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
⊢ ‖‖g x‖‖₊ * ‖‖f x‖‖₊ ≤ ‖‖g x‖‖₊ * ‖‖f x‖‖₊
[PROOFSTEP]
rfl
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
by_cases hp_zero : p = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : p = 0
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
simp [hp_zero]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
have hq_ne_zero : q ≠ 0 := by
  intro hq_zero
  simp only [hq_zero, hp_zero, one_div, ENNReal.inv_zero, top_add, ENNReal.inv_eq_top] at hpqr 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
⊢ q ≠ 0
[PROOFSTEP]
intro hq_zero
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_zero : q = 0
⊢ False
[PROOFSTEP]
simp only [hq_zero, hp_zero, one_div, ENNReal.inv_zero, top_add, ENNReal.inv_eq_top] at hpqr 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
have hr_ne_zero : r ≠ 0 := by
  intro hr_zero
  simp only [hr_zero, hp_zero, one_div, ENNReal.inv_zero, add_top, ENNReal.inv_eq_top] at hpqr 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
⊢ r ≠ 0
[PROOFSTEP]
intro hr_zero
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_zero : r = 0
⊢ False
[PROOFSTEP]
simp only [hr_zero, hp_zero, one_div, ENNReal.inv_zero, add_top, ENNReal.inv_eq_top] at hpqr 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
by_cases hq_top : q = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : q = ⊤
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
have hpr : p = r := by simpa only [hq_top, one_div, ENNReal.inv_top, zero_add, inv_inj] using hpqr
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : q = ⊤
⊢ p = r
[PROOFSTEP]
simpa only [hq_top, one_div, ENNReal.inv_top, zero_add, inv_inj] using hpqr
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : q = ⊤
hpr : p = r
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
rw [← hpr, hq_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : q = ⊤
hpr : p = r
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f ⊤ μ * snorm g p μ
[PROOFSTEP]
exact snorm_le_snorm_top_mul_snorm p f hg b h
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
by_cases hr_top : r = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : r = ⊤
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
have hpq : p = q := by simpa only [hr_top, one_div, ENNReal.inv_top, add_zero, inv_inj] using hpqr
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : r = ⊤
⊢ p = q
[PROOFSTEP]
simpa only [hr_top, one_div, ENNReal.inv_top, add_zero, inv_inj] using hpqr
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : r = ⊤
hpq : p = q
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
rw [← hpq, hr_top]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : r = ⊤
hpq : p = q
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f p μ * snorm g ⊤ μ
[PROOFSTEP]
exact snorm_le_snorm_mul_snorm_top p hf g b h
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
have hpq : p < q := by
  suffices 1 / q < 1 / p by rwa [one_div, one_div, ENNReal.inv_lt_inv] at this 
  rw [hpqr]
  refine' ENNReal.lt_add_right _ _
  · simp only [hq_ne_zero, one_div, Ne.def, ENNReal.inv_eq_top, not_false_iff]
  · simp only [hr_top, one_div, Ne.def, ENNReal.inv_eq_zero, not_false_iff]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
⊢ p < q
[PROOFSTEP]
suffices 1 / q < 1 / p by rwa [one_div, one_div, ENNReal.inv_lt_inv] at this 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
this : 1 / q < 1 / p
⊢ p < q
[PROOFSTEP]
rwa [one_div, one_div, ENNReal.inv_lt_inv] at this 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
⊢ 1 / q < 1 / p
[PROOFSTEP]
rw [hpqr]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
⊢ 1 / q < 1 / q + 1 / r
[PROOFSTEP]
refine' ENNReal.lt_add_right _ _
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
⊢ 1 / q ≠ ⊤
[PROOFSTEP]
simp only [hq_ne_zero, one_div, Ne.def, ENNReal.inv_eq_top, not_false_iff]
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
⊢ 1 / r ≠ 0
[PROOFSTEP]
simp only [hr_top, one_div, Ne.def, ENNReal.inv_eq_zero, not_false_iff]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
hpq : p < q
⊢ snorm (fun x => b (f x) (g x)) p μ ≤ snorm f q μ * snorm g r μ
[PROOFSTEP]
rw [snorm_eq_snorm' hp_zero (hpq.trans_le le_top).ne, snorm_eq_snorm' hq_ne_zero hq_top,
  snorm_eq_snorm' hr_ne_zero hr_top]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
hpq : p < q
⊢ snorm' (fun x => b (f x) (g x)) (ENNReal.toReal p) μ ≤ snorm' f (ENNReal.toReal q) μ * snorm' g (ENNReal.toReal r) μ
[PROOFSTEP]
refine' snorm'_le_snorm'_mul_snorm' hf hg _ h _ _ _
[GOAL]
case neg.refine'_1
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
hpq : p < q
⊢ 0 < ENNReal.toReal p
[PROOFSTEP]
exact ENNReal.toReal_pos hp_zero (hpq.trans_le le_top).ne
[GOAL]
case neg.refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
hpq : p < q
⊢ ENNReal.toReal p < ENNReal.toReal q
[PROOFSTEP]
exact ENNReal.toReal_strict_mono hq_top hpq
[GOAL]
case neg.refine'_3
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
hpq : p < q
⊢ 1 / ENNReal.toReal p = 1 / ENNReal.toReal q + 1 / ENNReal.toReal r
[PROOFSTEP]
rw [← ENNReal.one_toReal, ← ENNReal.toReal_div, ← ENNReal.toReal_div, ← ENNReal.toReal_div, hpqr, ENNReal.toReal_add]
[GOAL]
case neg.refine'_3.ha
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
hpq : p < q
⊢ 1 / q ≠ ⊤
[PROOFSTEP]
simp only [hq_ne_zero, one_div, Ne.def, ENNReal.inv_eq_top, not_false_iff]
[GOAL]
case neg.refine'_3.hb
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q r : ℝ≥0∞
f : α → E
hf : AEStronglyMeasurable f μ
g : α → F
hg : AEStronglyMeasurable g μ
b : E → F → G
h : ∀ᵐ (x : α) ∂μ, ‖b (f x) (g x)‖₊ ≤ ‖f x‖₊ * ‖g x‖₊
hpqr : 1 / p = 1 / q + 1 / r
hp_zero : ¬p = 0
hq_ne_zero : q ≠ 0
hr_ne_zero : r ≠ 0
hq_top : ¬q = ⊤
hr_top : ¬r = ⊤
hpq : p < q
⊢ 1 / r ≠ ⊤
[PROOFSTEP]
simp only [hr_ne_zero, one_div, Ne.def, ENNReal.inv_eq_top, not_false_iff]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : MulActionWithZero 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f p
hφ : Memℒp φ ⊤
⊢ Memℒp (φ • f) p
[PROOFSTEP]
apply hf.smul hφ
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : MulActionWithZero 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f p
hφ : Memℒp φ ⊤
⊢ 1 / p = 1 / ⊤ + 1 / p
[PROOFSTEP]
simp only [ENNReal.div_top, zero_add]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : MulActionWithZero 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f ⊤
hφ : Memℒp φ p
⊢ Memℒp (φ • f) p
[PROOFSTEP]
apply hf.smul hφ
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : MulActionWithZero 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
p : ℝ≥0∞
f : α → E
φ : α → 𝕜
hf : Memℒp f ⊤
hφ : Memℒp φ p
⊢ 1 / p = 1 / p + 1 / ⊤
[PROOFSTEP]
simp only [ENNReal.div_top, add_zero]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
f : α → F
c : 𝕜
hq_pos : 0 < q
⊢ snorm' (c • f) q μ = ‖c‖₊ • snorm' f q μ
[PROOFSTEP]
obtain rfl | hc := eq_or_ne c 0
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
f : α → F
hq_pos : 0 < q
⊢ snorm' (0 • f) q μ = ‖0‖₊ • snorm' f q μ
[PROOFSTEP]
simp [snorm', hq_pos]
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
f : α → F
c : 𝕜
hq_pos : 0 < q
hc : c ≠ 0
⊢ snorm' (c • f) q μ = ‖c‖₊ • snorm' f q μ
[PROOFSTEP]
refine' le_antisymm (snorm'_const_smul_le _ _ hq_pos) _
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
f : α → F
c : 𝕜
hq_pos : 0 < q
hc : c ≠ 0
⊢ ‖c‖₊ • snorm' f q μ ≤ snorm' (c • f) q μ
[PROOFSTEP]
have : snorm' _ q μ ≤ _ := snorm'_const_smul_le c⁻¹ (c • f) hq_pos
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
f : α → F
c : 𝕜
hq_pos : 0 < q
hc : c ≠ 0
this : snorm' (c⁻¹ • c • f) q μ ≤ ‖c⁻¹‖₊ • snorm' (c • f) q μ
⊢ ‖c‖₊ • snorm' f q μ ≤ snorm' (c • f) q μ
[PROOFSTEP]
rwa [inv_smul_smul₀ hc, nnnorm_inv, ENNReal.le_inv_smul_iff (nnnorm_ne_zero_iff.mpr hc)] at this 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
c : 𝕜
f : α → F
⊢ snormEssSup (c • f) μ = ↑‖c‖₊ * snormEssSup f μ
[PROOFSTEP]
simp_rw [snormEssSup, Pi.smul_apply, nnnorm_smul, ENNReal.coe_mul, ENNReal.essSup_const_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
c : 𝕜
f : α → F
⊢ snorm (c • f) p μ = ↑‖c‖₊ * snorm f p μ
[PROOFSTEP]
obtain rfl | hc := eq_or_ne c 0
[GOAL]
case inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
f : α → F
⊢ snorm (0 • f) p μ = ↑‖0‖₊ * snorm f p μ
[PROOFSTEP]
simp
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
c : 𝕜
f : α → F
hc : c ≠ 0
⊢ snorm (c • f) p μ = ↑‖c‖₊ * snorm f p μ
[PROOFSTEP]
refine' le_antisymm (snorm_const_smul_le _ _) _
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
c : 𝕜
f : α → F
hc : c ≠ 0
⊢ ↑‖c‖₊ * snorm f p μ ≤ snorm (c • f) p μ
[PROOFSTEP]
have : snorm _ p μ ≤ _ := snorm_const_smul_le c⁻¹ (c • f)
[GOAL]
case inr
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedAddCommGroup F
inst✝⁵ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝⁴ : NormedDivisionRing 𝕜
inst✝³ : MulActionWithZero 𝕜 E
inst✝² : Module 𝕜 F
inst✝¹ : BoundedSMul 𝕜 E
inst✝ : BoundedSMul 𝕜 F
c : 𝕜
f : α → F
hc : c ≠ 0
this : snorm (c⁻¹ • c • f) p μ ≤ ‖c⁻¹‖₊ • snorm (c • f) p μ
⊢ ↑‖c‖₊ * snorm f p μ ≤ snorm (c • f) p μ
[PROOFSTEP]
rwa [inv_smul_smul₀ hc, nnnorm_inv, ENNReal.le_inv_smul_iff (nnnorm_ne_zero_iff.mpr hc)] at this 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ C • ↑↑μ s ^ (1 / ENNReal.toReal p) ≤ snorm (Set.indicator s f) p μ
[PROOFSTEP]
rw [ENNReal.smul_def, smul_eq_mul, snorm_eq_lintegral_rpow_nnnorm hp hp',
  ENNReal.le_rpow_one_div_iff (ENNReal.toReal_pos hp hp'), ENNReal.mul_rpow_of_nonneg _ _ ENNReal.toReal_nonneg, ←
  ENNReal.rpow_mul, one_div_mul_cancel (ENNReal.toReal_pos hp hp').ne.symm, ENNReal.rpow_one, ← set_lintegral_const, ←
  lintegral_indicator _ hs]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ ∫⁻ (a : α), Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) a ∂μ ≤
    ∫⁻ (x : α), ↑‖Set.indicator s f x‖₊ ^ ENNReal.toReal p ∂μ
[PROOFSTEP]
refine' lintegral_mono_ae _
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ ∀ᵐ (a : α) ∂μ, Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) a ≤ ↑‖Set.indicator s f a‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
filter_upwards [hf] with x hx
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑‖Set.indicator s f x‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
rw [nnnorm_indicator_eq_indicator_nnnorm]
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑(Set.indicator s (fun a => ‖f a‖₊) x) ^ ENNReal.toReal p
[PROOFSTEP]
by_cases hxs : x ∈ s
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
hxs : x ∈ s
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑(Set.indicator s (fun a => ‖f a‖₊) x) ^ ENNReal.toReal p
[PROOFSTEP]
simp only [Set.indicator_of_mem hxs] at hx ⊢
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hxs : x ∈ s
hx : x ∈ s → C ≤ ‖f x‖₊
⊢ ↑C ^ ENNReal.toReal p ≤ ↑‖f x‖₊ ^ ENNReal.toReal p
[PROOFSTEP]
exact ENNReal.rpow_le_rpow (ENNReal.coe_le_coe.2 (hx hxs)) ENNReal.toReal_nonneg
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
hxs : ¬x ∈ s
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑(Set.indicator s (fun a => ‖f a‖₊) x) ^ ENNReal.toReal p
[PROOFSTEP]
simp [Set.indicator_of_not_mem hxs]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
⊢ Memℒp (fun x => ↑IsROrC.re (f x)) p
[PROOFSTEP]
have : ∀ x, ‖IsROrC.re (f x)‖ ≤ 1 * ‖f x‖ := by
  intro x
  rw [one_mul]
  exact IsROrC.norm_re_le_norm (f x)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
⊢ ∀ (x : α), ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖
[PROOFSTEP]
intro x
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
x : α
⊢ ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖
[PROOFSTEP]
rw [one_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
x : α
⊢ ‖↑IsROrC.re (f x)‖ ≤ ‖f x‖
[PROOFSTEP]
exact IsROrC.norm_re_le_norm (f x)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
this : ∀ (x : α), ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖
⊢ Memℒp (fun x => ↑IsROrC.re (f x)) p
[PROOFSTEP]
refine' hf.of_le_mul _ (eventually_of_forall this)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
this : ∀ (x : α), ‖↑IsROrC.re (f x)‖ ≤ 1 * ‖f x‖
⊢ AEStronglyMeasurable (fun x => ↑IsROrC.re (f x)) μ
[PROOFSTEP]
exact IsROrC.continuous_re.comp_aestronglyMeasurable hf.1
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
⊢ Memℒp (fun x => ↑IsROrC.im (f x)) p
[PROOFSTEP]
have : ∀ x, ‖IsROrC.im (f x)‖ ≤ 1 * ‖f x‖ := by
  intro x
  rw [one_mul]
  exact IsROrC.norm_im_le_norm (f x)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
⊢ ∀ (x : α), ‖↑IsROrC.im (f x)‖ ≤ 1 * ‖f x‖
[PROOFSTEP]
intro x
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
x : α
⊢ ‖↑IsROrC.im (f x)‖ ≤ 1 * ‖f x‖
[PROOFSTEP]
rw [one_mul]
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
x : α
⊢ ‖↑IsROrC.im (f x)‖ ≤ ‖f x‖
[PROOFSTEP]
exact IsROrC.norm_im_le_norm (f x)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
this : ∀ (x : α), ‖↑IsROrC.im (f x)‖ ≤ 1 * ‖f x‖
⊢ Memℒp (fun x => ↑IsROrC.im (f x)) p
[PROOFSTEP]
refine' hf.of_le_mul _ (eventually_of_forall this)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
𝕜 : Type u_5
inst✝ : IsROrC 𝕜
f : α → 𝕜
hf : Memℒp f p
this : ∀ (x : α), ‖↑IsROrC.im (f x)‖ ≤ 1 * ‖f x‖
⊢ AEStronglyMeasurable (fun x => ↑IsROrC.im (f x)) μ
[PROOFSTEP]
exact IsROrC.continuous_im.comp_aestronglyMeasurable hf.1
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
[PROOFSTEP]
by_cases hp0 : p.toReal = 0
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ENNReal.toReal p = 0
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
[PROOFSTEP]
simp only [hp0, ENNReal.rpow_zero]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ENNReal.toReal p = 0
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => 1) atTop < ⊤
[PROOFSTEP]
refine' eventually_of_forall fun x => _
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ENNReal.toReal p = 0
x : α
⊢ liminf (fun n => 1) atTop < ⊤
[PROOFSTEP]
rw [liminf_const (1 : ℝ≥0∞)]
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ENNReal.toReal p = 0
x : α
⊢ 1 < ⊤
[PROOFSTEP]
exact ENNReal.one_lt_top
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ¬ENNReal.toReal p = 0
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
[PROOFSTEP]
have hp : p ≠ 0 := fun h => by simp [h] at hp0 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ¬ENNReal.toReal p = 0
h : p = 0
⊢ False
[PROOFSTEP]
simp [h] at hp0 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ¬ENNReal.toReal p = 0
hp : p ≠ 0
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
[PROOFSTEP]
have hp' : p ≠ ∞ := fun h => by simp [h] at hp0 
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ¬ENNReal.toReal p = 0
hp : p ≠ 0
h : p = ⊤
⊢ False
[PROOFSTEP]
simp [h] at hp0 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ¬ENNReal.toReal p = 0
hp : p ≠ 0
hp' : p ≠ ⊤
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
[PROOFSTEP]
refine'
  ae_lt_top (measurable_liminf fun n => (hfmeas n).nnnorm.coe_nnreal_ennreal.pow_const p.toReal)
    (lt_of_le_of_lt (lintegral_liminf_le fun n => (hfmeas n).nnnorm.coe_nnreal_ennreal.pow_const p.toReal)
        (lt_of_le_of_lt _
          (ENNReal.rpow_lt_top_of_nonneg ENNReal.toReal_nonneg ENNReal.coe_ne_top : (R : ℝ≥0∞) ^ p.toReal < ∞))).ne
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp0 : ¬ENNReal.toReal p = 0
hp : p ≠ 0
hp' : p ≠ ⊤
⊢ liminf (fun n => ∫⁻ (a : α), ↑‖f n a‖₊ ^ ENNReal.toReal p ∂μ) atTop ≤ ↑R ^ ENNReal.toReal p
[PROOFSTEP]
simp_rw [snorm_eq_lintegral_rpow_nnnorm hp hp'] at hbdd 
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hp0 : ¬ENNReal.toReal p = 0
hp : p ≠ 0
hp' : p ≠ ⊤
hbdd : ∀ (n : ℕ), (∫⁻ (x : α), ↑‖f n x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) ≤ ↑R
⊢ liminf (fun n => ∫⁻ (a : α), ↑‖f n a‖₊ ^ ENNReal.toReal p ∂μ) atTop ≤ ↑R ^ ENNReal.toReal p
[PROOFSTEP]
simp_rw [liminf_eq, eventually_atTop]
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hp0 : ¬ENNReal.toReal p = 0
hp : p ≠ 0
hp' : p ≠ ⊤
hbdd : ∀ (n : ℕ), (∫⁻ (x : α), ↑‖f n x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) ≤ ↑R
⊢ sSup {a | ∃ a_1, ∀ (b : ℕ), b ≥ a_1 → a ≤ ∫⁻ (a : α), ↑‖f b a‖₊ ^ ENNReal.toReal p ∂μ} ≤ ↑R ^ ENNReal.toReal p
[PROOFSTEP]
exact
  sSup_le fun b ⟨a, ha⟩ => (ha a le_rfl).trans ((ENNReal.rpow_one_div_le_iff (ENNReal.toReal_pos hp hp')).1 (hbdd _))
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
by_cases hp' : p = ∞
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : p = ⊤
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
subst hp'
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hp : ⊤ ≠ 0
hbdd : ∀ (n : ℕ), snorm (f n) ⊤ μ ≤ ↑R
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
simp_rw [snorm_exponent_top] at hbdd 
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hp : ⊤ ≠ 0
hbdd : ∀ (n : ℕ), snormEssSup (f n) μ ≤ ↑R
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
have : ∀ n, ∀ᵐ x ∂μ, (‖f n x‖₊ : ℝ≥0∞) < R + 1 := fun n =>
  ae_lt_of_essSup_lt (lt_of_le_of_lt (hbdd n) <| ENNReal.lt_add_right ENNReal.coe_ne_top one_ne_zero)
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hp : ⊤ ≠ 0
hbdd : ∀ (n : ℕ), snormEssSup (f n) μ ≤ ↑R
this : ∀ (n : ℕ), ∀ᵐ (x : α) ∂μ, ↑‖f n x‖₊ < ↑R + 1
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
rw [← ae_all_iff] at this 
[GOAL]
case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hp : ⊤ ≠ 0
hbdd : ∀ (n : ℕ), snormEssSup (f n) μ ≤ ↑R
this : ∀ᵐ (a : α) ∂μ, ∀ (i : ℕ), ↑‖f i a‖₊ < ↑R + 1
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
filter_upwards [this] with x hx using
  lt_of_le_of_lt (liminf_le_of_frequently_le' <| frequently_of_forall fun n => (hx n).le)
    (ENNReal.add_lt_top.2 ⟨ENNReal.coe_lt_top, ENNReal.one_lt_top⟩)
[GOAL]
case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
⊢ ∀ᵐ (x : α) ∂μ, liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
filter_upwards [ae_bdd_liminf_atTop_rpow_of_snorm_bdd hfmeas hbdd] with x hx
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
⊢ liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
have hppos : 0 < p.toReal := ENNReal.toReal_pos hp hp'
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
⊢ liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
have : liminf (fun n => (‖f n x‖₊ : ℝ≥0∞) ^ p.toReal) atTop = liminf (fun n => (‖f n x‖₊ : ℝ≥0∞)) atTop ^ p.toReal :=
  by
  change
    liminf (fun n => ENNReal.orderIsoRpow p.toReal hppos (‖f n x‖₊ : ℝ≥0∞)) atTop =
      ENNReal.orderIsoRpow p.toReal hppos (liminf (fun n => (‖f n x‖₊ : ℝ≥0∞)) atTop)
  refine' (OrderIso.liminf_apply (ENNReal.orderIsoRpow p.toReal _) _ _ _ _).symm <;> isBoundedDefault
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
⊢ liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop = liminf (fun n => ↑‖f n x‖₊) atTop ^ ENNReal.toReal p
[PROOFSTEP]
change
  liminf (fun n => ENNReal.orderIsoRpow p.toReal hppos (‖f n x‖₊ : ℝ≥0∞)) atTop =
    ENNReal.orderIsoRpow p.toReal hppos (liminf (fun n => (‖f n x‖₊ : ℝ≥0∞)) atTop)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
⊢ liminf (fun n => ↑(ENNReal.orderIsoRpow (ENNReal.toReal p) hppos) ↑‖f n x‖₊) atTop =
    ↑(ENNReal.orderIsoRpow (ENNReal.toReal p) hppos) (liminf (fun n => ↑‖f n x‖₊) atTop)
[PROOFSTEP]
refine' (OrderIso.liminf_apply (ENNReal.orderIsoRpow p.toReal _) _ _ _ _).symm
[GOAL]
case refine'_1
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
⊢ IsBoundedUnder (fun x x_1 => x ≥ x_1) atTop fun n => ↑‖f n x‖₊
[PROOFSTEP]
isBoundedDefault
[GOAL]
case refine'_2
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
⊢ IsCoboundedUnder (fun x x_1 => x ≥ x_1) atTop fun n => ↑‖f n x‖₊
[PROOFSTEP]
isBoundedDefault
[GOAL]
case refine'_3
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
⊢ IsBoundedUnder (fun x x_1 => x ≥ x_1) atTop fun x_1 => ↑(ENNReal.orderIsoRpow (ENNReal.toReal p) hppos) ↑‖f x_1 x‖₊
[PROOFSTEP]
isBoundedDefault
[GOAL]
case refine'_4
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
⊢ IsCoboundedUnder (fun x x_1 => x ≥ x_1) atTop fun x_1 => ↑(ENNReal.orderIsoRpow (ENNReal.toReal p) hppos) ↑‖f x_1 x‖₊
[PROOFSTEP]
isBoundedDefault
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop < ⊤
hppos : 0 < ENNReal.toReal p
this : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop = liminf (fun n => ↑‖f n x‖₊) atTop ^ ENNReal.toReal p
⊢ liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
rw [this] at hx 
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊) atTop ^ ENNReal.toReal p < ⊤
hppos : 0 < ENNReal.toReal p
this : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop = liminf (fun n => ↑‖f n x‖₊) atTop ^ ENNReal.toReal p
⊢ liminf (fun n => ↑‖f n x‖₊) atTop < ⊤
[PROOFSTEP]
rw [← ENNReal.rpow_one (liminf (fun n => ‖f n x‖₊) atTop), ← mul_inv_cancel hppos.ne.symm, ENNReal.rpow_mul]
[GOAL]
case h
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedAddCommGroup G
inst✝¹ : MeasurableSpace E
inst✝ : OpensMeasurableSpace E
R : ℝ≥0
p : ℝ≥0∞
hp : p ≠ 0
f : ℕ → α → E
hfmeas : ∀ (n : ℕ), Measurable (f n)
hbdd : ∀ (n : ℕ), snorm (f n) p μ ≤ ↑R
hp' : ¬p = ⊤
x : α
hx : liminf (fun n => ↑‖f n x‖₊) atTop ^ ENNReal.toReal p < ⊤
hppos : 0 < ENNReal.toReal p
this : liminf (fun n => ↑‖f n x‖₊ ^ ENNReal.toReal p) atTop = liminf (fun n => ↑‖f n x‖₊) atTop ^ ENNReal.toReal p
⊢ (liminf (fun n => ↑‖f n x‖₊) atTop ^ ENNReal.toReal p) ^ (ENNReal.toReal p)⁻¹ < ⊤
[PROOFSTEP]
exact ENNReal.rpow_lt_top_of_nonneg (inv_nonneg.2 hppos.le) hx.ne
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν : Measure α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedAddCommGroup G
X : Type u_5
inst✝² : TopologicalSpace X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
f : X → E
hf : Continuous f
h'f : HasCompactSupport f
μ : Measure X
⊢ Memℒp f ⊤
[PROOFSTEP]
borelize E
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν : Measure α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedAddCommGroup G
X : Type u_5
inst✝² : TopologicalSpace X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
f : X → E
hf : Continuous f
h'f : HasCompactSupport f
μ : Measure X
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
⊢ Memℒp f ⊤
[PROOFSTEP]
rcases hf.bounded_above_of_compact_support h'f with ⟨C, hC⟩
[GOAL]
case intro
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν : Measure α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedAddCommGroup G
X : Type u_5
inst✝² : TopologicalSpace X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
f : X → E
hf : Continuous f
h'f : HasCompactSupport f
μ : Measure X
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
C : ℝ
hC : ∀ (x : X), ‖f x‖ ≤ C
⊢ Memℒp f ⊤
[PROOFSTEP]
apply memℒp_top_of_bound ?_ C (Filter.eventually_of_forall hC)
[GOAL]
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ✝ ν : Measure α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedAddCommGroup F
inst✝³ : NormedAddCommGroup G
X : Type u_5
inst✝² : TopologicalSpace X
inst✝¹ : MeasurableSpace X
inst✝ : OpensMeasurableSpace X
f : X → E
hf : Continuous f
h'f : HasCompactSupport f
μ : Measure X
this✝¹ : MeasurableSpace E := borel E
this✝ : BorelSpace E
C : ℝ
hC : ∀ (x : X), ‖f x‖ ≤ C
⊢ AEStronglyMeasurable (fun x => f x) μ
[PROOFSTEP]
exact (hf.stronglyMeasurable_of_hasCompactSupport h'f).aestronglyMeasurable
