[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_norm : ∫⁻ (a : α), f a ^ p ∂μ = 1
hg_norm : ∫⁻ (a : α), g a ^ q ∂μ = 1
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ 1
[PROOFSTEP]
calc
  (∫⁻ a : α, (f * g) a ∂μ) ≤ ∫⁻ a : α, f a ^ p / ENNReal.ofReal p + g a ^ q / ENNReal.ofReal q ∂μ :=
    lintegral_mono fun a => young_inequality (f a) (g a) hpq
  _ = 1 := by
    simp only [div_eq_mul_inv]
    rw [lintegral_add_left']
    · rw [lintegral_mul_const'' _ (hf.pow_const p), lintegral_mul_const', hf_norm, hg_norm, ← div_eq_mul_inv, ←
        div_eq_mul_inv, hpq.inv_add_inv_conj_ennreal]
      simp [hpq.symm.pos]
    · exact (hf.pow_const _).mul_const _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_norm : ∫⁻ (a : α), f a ^ p ∂μ = 1
hg_norm : ∫⁻ (a : α), g a ^ q ∂μ = 1
⊢ ∫⁻ (a : α), f a ^ p / ENNReal.ofReal p + g a ^ q / ENNReal.ofReal q ∂μ = 1
[PROOFSTEP]
simp only [div_eq_mul_inv]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_norm : ∫⁻ (a : α), f a ^ p ∂μ = 1
hg_norm : ∫⁻ (a : α), g a ^ q ∂μ = 1
⊢ ∫⁻ (a : α), f a ^ p * (ENNReal.ofReal p)⁻¹ + g a ^ q * (ENNReal.ofReal q)⁻¹ ∂μ = 1
[PROOFSTEP]
rw [lintegral_add_left']
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_norm : ∫⁻ (a : α), f a ^ p ∂μ = 1
hg_norm : ∫⁻ (a : α), g a ^ q ∂μ = 1
⊢ ∫⁻ (a : α), f a ^ p * (ENNReal.ofReal p)⁻¹ ∂μ + ∫⁻ (a : α), g a ^ q * (ENNReal.ofReal q)⁻¹ ∂μ = 1
[PROOFSTEP]
rw [lintegral_mul_const'' _ (hf.pow_const p), lintegral_mul_const', hf_norm, hg_norm, ← div_eq_mul_inv, ←
  div_eq_mul_inv, hpq.inv_add_inv_conj_ennreal]
[GOAL]
case hr
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_norm : ∫⁻ (a : α), f a ^ p ∂μ = 1
hg_norm : ∫⁻ (a : α), g a ^ q ∂μ = 1
⊢ (ENNReal.ofReal q)⁻¹ ≠ ⊤
[PROOFSTEP]
simp [hpq.symm.pos]
[GOAL]
case hf
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_norm : ∫⁻ (a : α), f a ^ p ∂μ = 1
hg_norm : ∫⁻ (a : α), g a ^ q ∂μ = 1
⊢ AEMeasurable fun a => f a ^ p * (ENNReal.ofReal p)⁻¹
[PROOFSTEP]
exact (hf.pow_const _).mul_const _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
a : α
⊢ f a = funMulInvSnorm f p μ a * (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
simp [funMulInvSnorm, mul_assoc, ENNReal.inv_mul_cancel, hf_nonzero, hf_top]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 < p
f : α → ℝ≥0∞
a : α
⊢ funMulInvSnorm f p μ a ^ p = f a ^ p * (∫⁻ (c : α), f c ^ p ∂μ)⁻¹
[PROOFSTEP]
rw [funMulInvSnorm, mul_rpow_of_nonneg _ _ (le_of_lt hp0)]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 < p
f : α → ℝ≥0∞
a : α
⊢ f a ^ p * ((∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p))⁻¹ ^ p = f a ^ p * (∫⁻ (c : α), f c ^ p ∂μ)⁻¹
[PROOFSTEP]
suffices h_inv_rpow : ((∫⁻ c : α, f c ^ p ∂μ) ^ (1 / p))⁻¹ ^ p = (∫⁻ c : α, f c ^ p ∂μ)⁻¹
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 < p
f : α → ℝ≥0∞
a : α
h_inv_rpow : ((∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p))⁻¹ ^ p = (∫⁻ (c : α), f c ^ p ∂μ)⁻¹
⊢ f a ^ p * ((∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p))⁻¹ ^ p = f a ^ p * (∫⁻ (c : α), f c ^ p ∂μ)⁻¹
[PROOFSTEP]
rw [h_inv_rpow]
[GOAL]
case h_inv_rpow
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 < p
f : α → ℝ≥0∞
a : α
⊢ ((∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p))⁻¹ ^ p = (∫⁻ (c : α), f c ^ p ∂μ)⁻¹
[PROOFSTEP]
rw [inv_rpow, ← rpow_mul, one_div_mul_cancel hp0.ne', rpow_one]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (c : α), funMulInvSnorm f p μ c ^ p ∂μ = 1
[PROOFSTEP]
simp_rw [funMulInvSnorm_rpow hp0_lt]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (c : α), f c ^ p * (∫⁻ (c : α), f c ^ p ∂μ)⁻¹ ∂μ = 1
[PROOFSTEP]
rw [lintegral_mul_const', ENNReal.mul_inv_cancel hf_nonzero hf_top]
[GOAL]
case hr
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0_lt : 0 < p
f : α → ℝ≥0∞
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ (∫⁻ (c : α), f c ^ p ∂μ)⁻¹ ≠ ⊤
[PROOFSTEP]
rwa [inv_ne_top]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
let npf := (∫⁻ c : α, f c ^ p ∂μ) ^ (1 / p)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
let nqg := (∫⁻ c : α, g c ^ q ∂μ) ^ (1 / q)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
calc
  (∫⁻ a : α, (f * g) a ∂μ) = ∫⁻ a : α, (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a * (npf * nqg) ∂μ :=
    by
    refine' lintegral_congr fun a => _
    rw [Pi.mul_apply, fun_eq_funMulInvSnorm_mul_snorm f hf_nonzero hf_nontop,
      fun_eq_funMulInvSnorm_mul_snorm g hg_nonzero hg_nontop, Pi.mul_apply]
    ring
  _ ≤ npf * nqg :=
    by
    rw [lintegral_mul_const' (npf * nqg) _ (by simp [hf_nontop, hg_nontop, hf_nonzero, hg_nonzero, ENNReal.mul_eq_top])]
    refine' mul_le_of_le_one_left' _
    have hf1 := lintegral_rpow_funMulInvSnorm_eq_one hpq.pos hf_nonzero hf_nontop
    have hg1 := lintegral_rpow_funMulInvSnorm_eq_one hpq.symm.pos hg_nonzero hg_nontop
    exact lintegral_mul_le_one_of_lintegral_rpow_eq_one hpq (hf.mul_const _) hf1 hg1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
⊢ ∫⁻ (a : α), (f * g) a ∂μ = ∫⁻ (a : α), (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a * (npf * nqg) ∂μ
[PROOFSTEP]
refine' lintegral_congr fun a => _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
a : α
⊢ (f * g) a = (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a * (npf * nqg)
[PROOFSTEP]
rw [Pi.mul_apply, fun_eq_funMulInvSnorm_mul_snorm f hf_nonzero hf_nontop,
  fun_eq_funMulInvSnorm_mul_snorm g hg_nonzero hg_nontop, Pi.mul_apply]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
a : α
⊢ funMulInvSnorm f p μ a * (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p) *
      (funMulInvSnorm g q μ a * (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)) =
    funMulInvSnorm f p μ a * funMulInvSnorm g q μ a * (npf * nqg)
[PROOFSTEP]
ring
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
⊢ ∫⁻ (a : α), (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a * (npf * nqg) ∂μ ≤ npf * nqg
[PROOFSTEP]
rw [lintegral_mul_const' (npf * nqg) _ (by simp [hf_nontop, hg_nontop, hf_nonzero, hg_nonzero, ENNReal.mul_eq_top])]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
⊢ npf * nqg ≠ ⊤
[PROOFSTEP]
simp [hf_nontop, hg_nontop, hf_nonzero, hg_nonzero, ENNReal.mul_eq_top]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
⊢ (∫⁻ (a : α), (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a ∂μ) * (npf * nqg) ≤ npf * nqg
[PROOFSTEP]
refine' mul_le_of_le_one_left' _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
⊢ ∫⁻ (a : α), (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a ∂μ ≤ 1
[PROOFSTEP]
have hf1 := lintegral_rpow_funMulInvSnorm_eq_one hpq.pos hf_nonzero hf_nontop
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
hf1 : ∫⁻ (c : α), funMulInvSnorm (fun a => f a) p μ c ^ p ∂μ = 1
⊢ ∫⁻ (a : α), (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a ∂μ ≤ 1
[PROOFSTEP]
have hg1 := lintegral_rpow_funMulInvSnorm_eq_one hpq.symm.pos hg_nonzero hg_nontop
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_nontop : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_nontop : ∫⁻ (a : α), g a ^ q ∂μ ≠ ⊤
hf_nonzero : ∫⁻ (a : α), f a ^ p ∂μ ≠ 0
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
npf : ℝ≥0∞ := (∫⁻ (c : α), f c ^ p ∂μ) ^ (1 / p)
nqg : ℝ≥0∞ := (∫⁻ (c : α), g c ^ q ∂μ) ^ (1 / q)
hf1 : ∫⁻ (c : α), funMulInvSnorm (fun a => f a) p μ c ^ p ∂μ = 1
hg1 : ∫⁻ (c : α), funMulInvSnorm (fun a => g a) q μ c ^ q ∂μ = 1
⊢ ∫⁻ (a : α), (funMulInvSnorm f p μ * funMulInvSnorm g q μ) a ∂μ ≤ 1
[PROOFSTEP]
exact lintegral_mul_le_one_of_lintegral_rpow_eq_one hpq (hf.mul_const _) hf1 hg1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
rw [lintegral_eq_zero_iff' (hf.pow_const p)] at hf_zero 
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : (fun x => f x ^ p) =ᵐ[μ] 0
⊢ f =ᵐ[μ] 0
[PROOFSTEP]
refine' Filter.Eventually.mp hf_zero (Filter.eventually_of_forall fun x => _)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : (fun x => f x ^ p) =ᵐ[μ] 0
x : α
⊢ (fun x => f x ^ p) x = OfNat.ofNat 0 x → f x = OfNat.ofNat 0 x
[PROOFSTEP]
dsimp only
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : (fun x => f x ^ p) =ᵐ[μ] 0
x : α
⊢ f x ^ p = OfNat.ofNat 0 x → f x = OfNat.ofNat 0 x
[PROOFSTEP]
rw [Pi.zero_apply, ← not_imp_not]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : (fun x => f x ^ p) =ᵐ[μ] 0
x : α
⊢ ¬f x = 0 → ¬f x ^ p = 0
[PROOFSTEP]
exact fun hx => (rpow_pos_of_nonneg (pos_iff_ne_zero.2 hx) hp0).ne'
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ = 0
[PROOFSTEP]
rw [← @lintegral_zero_fun α _ μ]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ = lintegral μ 0
[PROOFSTEP]
refine' lintegral_congr_ae _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ (fun a => (f * g) a) =ᵐ[μ] fun a => OfNat.ofNat 0 a
[PROOFSTEP]
suffices h_mul_zero : f * g =ᵐ[μ] 0 * g
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
h_mul_zero : f * g =ᵐ[μ] 0 * g
⊢ (fun a => (f * g) a) =ᵐ[μ] fun a => OfNat.ofNat 0 a
[PROOFSTEP]
rwa [zero_mul] at h_mul_zero 
[GOAL]
case h_mul_zero
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ f * g =ᵐ[μ] 0 * g
[PROOFSTEP]
have hf_eq_zero : f =ᵐ[μ] 0 := ae_eq_zero_of_lintegral_rpow_eq_zero hp0 hf hf_zero
[GOAL]
case h_mul_zero
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
hp0 : 0 ≤ p
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
hf_eq_zero : f =ᵐ[μ] 0
⊢ f * g =ᵐ[μ] 0 * g
[PROOFSTEP]
exact hf_eq_zero.mul (ae_eq_refl g)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hp0_lt : 0 < p
hq0 : 0 ≤ q
f g : α → ℝ≥0∞
hf_top : ∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
refine' le_trans le_top (le_of_eq _)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hp0_lt : 0 < p
hq0 : 0 ≤ q
f g : α → ℝ≥0∞
hf_top : ∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
⊢ ⊤ = (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
have hp0_inv_lt : 0 < 1 / p := by simp [hp0_lt]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hp0_lt : 0 < p
hq0 : 0 ≤ q
f g : α → ℝ≥0∞
hf_top : ∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
⊢ 0 < 1 / p
[PROOFSTEP]
simp [hp0_lt]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hp0_lt : 0 < p
hq0 : 0 ≤ q
f g : α → ℝ≥0∞
hf_top : ∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
hp0_inv_lt : 0 < 1 / p
⊢ ⊤ = (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
rw [hf_top, ENNReal.top_rpow_of_pos hp0_inv_lt]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hp0_lt : 0 < p
hq0 : 0 ≤ q
f g : α → ℝ≥0∞
hf_top : ∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_nonzero : ∫⁻ (a : α), g a ^ q ∂μ ≠ 0
hp0_inv_lt : 0 < 1 / p
⊢ ⊤ = ⊤ * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
simp [hq0, hg_nonzero]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
by_cases hf_zero : ∫⁻ a, f a ^ p ∂μ = 0
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
refine' Eq.trans_le _ (zero_le _)
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ = 0
[PROOFSTEP]
exact lintegral_mul_eq_zero_of_lintegral_rpow_eq_zero hpq.nonneg hf hf_zero
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
by_cases hg_zero : ∫⁻ a, g a ^ q ∂μ = 0
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ∫⁻ (a : α), g a ^ q ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
refine' Eq.trans_le _ (zero_le _)
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ∫⁻ (a : α), g a ^ q ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ = 0
[PROOFSTEP]
rw [mul_comm]
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ∫⁻ (a : α), g a ^ q ∂μ = 0
⊢ ∫⁻ (a : α), (g * f) a ∂μ = 0
[PROOFSTEP]
exact lintegral_mul_eq_zero_of_lintegral_rpow_eq_zero hpq.symm.nonneg hg hg_zero
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ¬∫⁻ (a : α), g a ^ q ∂μ = 0
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
by_cases hf_top : ∫⁻ a, f a ^ p ∂μ = ⊤
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ¬∫⁻ (a : α), g a ^ q ∂μ = 0
hf_top : ∫⁻ (a : α), f a ^ p ∂μ = ⊤
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
exact lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_eq_top hpq.pos hpq.symm.nonneg hf_top hg_zero
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ¬∫⁻ (a : α), g a ^ q ∂μ = 0
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
by_cases hg_top : ∫⁻ a, g a ^ q ∂μ = ⊤
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ¬∫⁻ (a : α), g a ^ q ∂μ = 0
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ∫⁻ (a : α), g a ^ q ∂μ = ⊤
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
rw [mul_comm, mul_comm ((∫⁻ a : α, f a ^ p ∂μ) ^ (1 / p))]
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ¬∫⁻ (a : α), g a ^ q ∂μ = 0
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ∫⁻ (a : α), g a ^ q ∂μ = ⊤
⊢ ∫⁻ (a : α), (g * f) a ∂μ ≤ (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
exact lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_eq_top hpq.symm.pos hpq.nonneg hg_top hf_zero
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ✝ μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_zero : ¬∫⁻ (a : α), f a ^ p ∂μ = 0
hg_zero : ¬∫⁻ (a : α), g a ^ q ∂μ = 0
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ q ∂μ = ⊤
⊢ ∫⁻ (a : α), (f * g) a ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
exact ENNReal.lintegral_mul_le_Lp_mul_Lq_of_ne_zero_of_ne_top hpq hf hf_top hg_top hf_zero hg_zero
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ < ⊤
[PROOFSTEP]
have hp0_lt : 0 < p := lt_of_lt_of_le zero_lt_one hp1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ < ⊤
[PROOFSTEP]
have hp0 : 0 ≤ p := le_of_lt hp0_lt
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ < ⊤
[PROOFSTEP]
calc
  (∫⁻ a : α, (f a + g a) ^ p ∂μ) ≤ ∫⁻ a, (2 : ℝ≥0∞) ^ (p - 1) * f a ^ p + (2 : ℝ≥0∞) ^ (p - 1) * g a ^ p ∂μ :=
    by
    refine' lintegral_mono fun a => _
    dsimp only
    have h_zero_lt_half_rpow : (0 : ℝ≥0∞) < (1 / 2 : ℝ≥0∞) ^ p :=
      by
      rw [← ENNReal.zero_rpow_of_pos hp0_lt]
      exact ENNReal.rpow_lt_rpow (by simp [zero_lt_one]) hp0_lt
    have h_rw : (1 / 2 : ℝ≥0∞) ^ p * (2 : ℝ≥0∞) ^ (p - 1) = 1 / 2 := by
      rw [sub_eq_add_neg, ENNReal.rpow_add _ _ two_ne_zero ENNReal.coe_ne_top, ← mul_assoc, ←
        ENNReal.mul_rpow_of_nonneg _ _ hp0, one_div, ENNReal.inv_mul_cancel two_ne_zero ENNReal.coe_ne_top,
        ENNReal.one_rpow, one_mul, ENNReal.rpow_neg_one]
    rw [← ENNReal.mul_le_mul_left (ne_of_lt h_zero_lt_half_rpow).symm _]
    · rw [mul_add, ← mul_assoc, ← mul_assoc, h_rw, ← ENNReal.mul_rpow_of_nonneg _ _ hp0, mul_add]
      refine' ENNReal.rpow_arith_mean_le_arith_mean2_rpow (1 / 2 : ℝ≥0∞) (1 / 2 : ℝ≥0∞) (f a) (g a) _ hp1
      rw [ENNReal.div_add_div_same, one_add_one_eq_two, ENNReal.div_self two_ne_zero ENNReal.coe_ne_top]
    · rw [← lt_top_iff_ne_top]
      refine' ENNReal.rpow_lt_top_of_nonneg hp0 _
      rw [one_div, ENNReal.inv_ne_top]
      exact two_ne_zero
  _ < ⊤ :=
    by
    have h_two : (2 : ℝ≥0∞) ^ (p - 1) ≠ ⊤ := ENNReal.rpow_ne_top_of_nonneg (by simp [hp1]) ENNReal.coe_ne_top
    rw [lintegral_add_left', lintegral_const_mul'' _ (hf.pow_const p), lintegral_const_mul' _ _ h_two,
      ENNReal.add_lt_top]
    · exact ⟨ENNReal.mul_lt_top h_two hf_top.ne, ENNReal.mul_lt_top h_two hg_top.ne⟩
    · exact (hf.pow_const p).const_mul _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
⊢ ∫⁻ (a : α), (f a + g a) ^ p ∂μ ≤ ∫⁻ (a : α), 2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p ∂μ
[PROOFSTEP]
refine' lintegral_mono fun a => _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
⊢ (f a + g a) ^ p ≤ 2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p
[PROOFSTEP]
dsimp only
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
⊢ (f a + g a) ^ p ≤ 2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p
[PROOFSTEP]
have h_zero_lt_half_rpow : (0 : ℝ≥0∞) < (1 / 2 : ℝ≥0∞) ^ p :=
  by
  rw [← ENNReal.zero_rpow_of_pos hp0_lt]
  exact ENNReal.rpow_lt_rpow (by simp [zero_lt_one]) hp0_lt
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
⊢ 0 < (1 / 2) ^ p
[PROOFSTEP]
rw [← ENNReal.zero_rpow_of_pos hp0_lt]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
⊢ 0 ^ p < (1 / 2) ^ p
[PROOFSTEP]
exact ENNReal.rpow_lt_rpow (by simp [zero_lt_one]) hp0_lt
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
⊢ 0 < 1 / 2
[PROOFSTEP]
simp [zero_lt_one]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
⊢ (f a + g a) ^ p ≤ 2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p
[PROOFSTEP]
have h_rw : (1 / 2 : ℝ≥0∞) ^ p * (2 : ℝ≥0∞) ^ (p - 1) = 1 / 2 := by
  rw [sub_eq_add_neg, ENNReal.rpow_add _ _ two_ne_zero ENNReal.coe_ne_top, ← mul_assoc, ←
    ENNReal.mul_rpow_of_nonneg _ _ hp0, one_div, ENNReal.inv_mul_cancel two_ne_zero ENNReal.coe_ne_top,
    ENNReal.one_rpow, one_mul, ENNReal.rpow_neg_one]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
⊢ (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
[PROOFSTEP]
rw [sub_eq_add_neg, ENNReal.rpow_add _ _ two_ne_zero ENNReal.coe_ne_top, ← mul_assoc, ←
  ENNReal.mul_rpow_of_nonneg _ _ hp0, one_div, ENNReal.inv_mul_cancel two_ne_zero ENNReal.coe_ne_top, ENNReal.one_rpow,
  one_mul, ENNReal.rpow_neg_one]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ (f a + g a) ^ p ≤ 2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p
[PROOFSTEP]
rw [← ENNReal.mul_le_mul_left (ne_of_lt h_zero_lt_half_rpow).symm _]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ (1 / 2) ^ p * (f a + g a) ^ p ≤ (1 / 2) ^ p * (2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p)
[PROOFSTEP]
rw [mul_add, ← mul_assoc, ← mul_assoc, h_rw, ← ENNReal.mul_rpow_of_nonneg _ _ hp0, mul_add]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ (1 / 2 * f a + 1 / 2 * g a) ^ p ≤ 1 / 2 * f a ^ p + 1 / 2 * g a ^ p
[PROOFSTEP]
refine' ENNReal.rpow_arith_mean_le_arith_mean2_rpow (1 / 2 : ℝ≥0∞) (1 / 2 : ℝ≥0∞) (f a) (g a) _ hp1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ 1 / 2 + 1 / 2 = 1
[PROOFSTEP]
rw [ENNReal.div_add_div_same, one_add_one_eq_two, ENNReal.div_self two_ne_zero ENNReal.coe_ne_top]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ (1 / 2) ^ p ≠ ⊤
[PROOFSTEP]
rw [← lt_top_iff_ne_top]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ (1 / 2) ^ p < ⊤
[PROOFSTEP]
refine' ENNReal.rpow_lt_top_of_nonneg hp0 _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ 1 / 2 ≠ ⊤
[PROOFSTEP]
rw [one_div, ENNReal.inv_ne_top]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
a : α
h_zero_lt_half_rpow : 0 < (1 / 2) ^ p
h_rw : (1 / 2) ^ p * 2 ^ (p - 1) = 1 / 2
⊢ 2 ≠ 0
[PROOFSTEP]
exact two_ne_zero
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
⊢ ∫⁻ (a : α), 2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p ∂μ < ⊤
[PROOFSTEP]
have h_two : (2 : ℝ≥0∞) ^ (p - 1) ≠ ⊤ := ENNReal.rpow_ne_top_of_nonneg (by simp [hp1]) ENNReal.coe_ne_top
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
⊢ 0 ≤ p - 1
[PROOFSTEP]
simp [hp1]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
h_two : 2 ^ (p - 1) ≠ ⊤
⊢ ∫⁻ (a : α), 2 ^ (p - 1) * f a ^ p + 2 ^ (p - 1) * g a ^ p ∂μ < ⊤
[PROOFSTEP]
rw [lintegral_add_left', lintegral_const_mul'' _ (hf.pow_const p), lintegral_const_mul' _ _ h_two, ENNReal.add_lt_top]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
h_two : 2 ^ (p - 1) ≠ ⊤
⊢ 2 ^ (p - 1) * ∫⁻ (a : α), f a ^ p ∂μ < ⊤ ∧ 2 ^ (p - 1) * ∫⁻ (a : α), g a ^ p ∂μ < ⊤
[PROOFSTEP]
exact ⟨ENNReal.mul_lt_top h_two hf_top.ne, ENNReal.mul_lt_top h_two hg_top.ne⟩
[GOAL]
case hf
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
hp1 : 1 ≤ p
hp0_lt : 0 < p
hp0 : 0 ≤ p
h_two : 2 ^ (p - 1) ≠ ⊤
⊢ AEMeasurable fun a => 2 ^ (p - 1) * f a ^ p
[PROOFSTEP]
exact (hf.pow_const p).const_mul _
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have hp0_ne : p ≠ 0 := (ne_of_lt hp0_lt).symm
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have hp0 : 0 ≤ p := le_of_lt hp0_lt
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have hq0_lt : 0 < q := lt_of_le_of_lt hp0 hpq
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have hq0_ne : q ≠ 0 := (ne_of_lt hq0_lt).symm
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have h_one_div_r : 1 / r = 1 / p - 1 / q := by rw [hpqr]; simp
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
⊢ 1 / r = 1 / p - 1 / q
[PROOFSTEP]
rw [hpqr]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
⊢ 1 / r = 1 / q + 1 / r - 1 / q
[PROOFSTEP]
simp
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have _ : r ≠ 0 :=
  by
  have hr_inv_pos : 0 < 1 / r := by rwa [h_one_div_r, sub_pos, one_div_lt_one_div hq0_lt hp0_lt]
  rw [one_div, _root_.inv_pos] at hr_inv_pos 
  exact (ne_of_lt hr_inv_pos).symm
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
⊢ r ≠ 0
[PROOFSTEP]
have hr_inv_pos : 0 < 1 / r := by rwa [h_one_div_r, sub_pos, one_div_lt_one_div hq0_lt hp0_lt]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
⊢ 0 < 1 / r
[PROOFSTEP]
rwa [h_one_div_r, sub_pos, one_div_lt_one_div hq0_lt hp0_lt]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
hr_inv_pos : 0 < 1 / r
⊢ r ≠ 0
[PROOFSTEP]
rw [one_div, _root_.inv_pos] at hr_inv_pos 
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
hr_inv_pos : 0 < r
⊢ r ≠ 0
[PROOFSTEP]
exact (ne_of_lt hr_inv_pos).symm
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
let p2 := q / p
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
let q2 := p2.conjugateExponent
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have hp2q2 : p2.IsConjugateExponent q2 :=
  Real.isConjugateExponent_conjugateExponent (by simp [_root_.lt_div_iff, hpq, hp0_lt])
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
⊢ 1 < p2
[PROOFSTEP]
simp [_root_.lt_div_iff, hpq, hp0_lt]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
calc
  (∫⁻ a : α, (f * g) a ^ p ∂μ) ^ (1 / p) = (∫⁻ a : α, f a ^ p * g a ^ p ∂μ) ^ (1 / p) := by
    simp_rw [Pi.mul_apply, ENNReal.mul_rpow_of_nonneg _ _ hp0]
  _ ≤ ((∫⁻ a, f a ^ (p * p2) ∂μ) ^ (1 / p2) * (∫⁻ a, g a ^ (p * q2) ∂μ) ^ (1 / q2)) ^ (1 / p) :=
    by
    refine' ENNReal.rpow_le_rpow _ (by simp [hp0])
    simp_rw [ENNReal.rpow_mul]
    exact ENNReal.lintegral_mul_le_Lp_mul_Lq μ hp2q2 (hf.pow_const _) (hg.pow_const _)
  _ = (∫⁻ a : α, f a ^ q ∂μ) ^ (1 / q) * (∫⁻ a : α, g a ^ r ∂μ) ^ (1 / r) :=
    by
    rw [@ENNReal.mul_rpow_of_nonneg _ _ (1 / p) (by simp [hp0]), ← ENNReal.rpow_mul, ← ENNReal.rpow_mul]
    have hpp2 : p * p2 = q := by
      symm
      rw [mul_comm, ← div_eq_iff hp0_ne]
    have hpq2 : p * q2 = r := by
      rw [← inv_inv r, ← one_div, ← one_div, h_one_div_r]
      field_simp [Real.conjugateExponent, hp0_ne, hq0_ne]
    simp_rw [div_mul_div_comm, mul_one, mul_comm p2, mul_comm q2, hpp2, hpq2]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ (∫⁻ (a : α), (f * g) a ^ p ∂μ) ^ (1 / p) = (∫⁻ (a : α), f a ^ p * g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
simp_rw [Pi.mul_apply, ENNReal.mul_rpow_of_nonneg _ _ hp0]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ (∫⁻ (a : α), f a ^ p * g a ^ p ∂μ) ^ (1 / p) ≤
    ((∫⁻ (a : α), f a ^ (p * p2) ∂μ) ^ (1 / p2) * (∫⁻ (a : α), g a ^ (p * q2) ∂μ) ^ (1 / q2)) ^ (1 / p)
[PROOFSTEP]
refine' ENNReal.rpow_le_rpow _ (by simp [hp0])
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ 0 ≤ 1 / p
[PROOFSTEP]
simp [hp0]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ ∫⁻ (a : α), f a ^ p * g a ^ p ∂μ ≤
    (∫⁻ (a : α), f a ^ (p * p2) ∂μ) ^ (1 / p2) * (∫⁻ (a : α), g a ^ (p * q2) ∂μ) ^ (1 / q2)
[PROOFSTEP]
simp_rw [ENNReal.rpow_mul]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ ∫⁻ (a : α), f a ^ p * g a ^ p ∂μ ≤
    (∫⁻ (a : α), (f a ^ p) ^ (q / p) ∂μ) ^ (1 / (q / p)) *
      (∫⁻ (a : α), (g a ^ p) ^ Real.conjugateExponent (q / p) ∂μ) ^ (1 / Real.conjugateExponent (q / p))
[PROOFSTEP]
exact ENNReal.lintegral_mul_le_Lp_mul_Lq μ hp2q2 (hf.pow_const _) (hg.pow_const _)
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ ((∫⁻ (a : α), f a ^ (p * p2) ∂μ) ^ (1 / p2) * (∫⁻ (a : α), g a ^ (p * q2) ∂μ) ^ (1 / q2)) ^ (1 / p) =
    (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
rw [@ENNReal.mul_rpow_of_nonneg _ _ (1 / p) (by simp [hp0]), ← ENNReal.rpow_mul, ← ENNReal.rpow_mul]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ 0 ≤ 1 / p
[PROOFSTEP]
simp [hp0]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ (∫⁻ (a : α), f a ^ (p * p2) ∂μ) ^ (1 / p2 * (1 / p)) * (∫⁻ (a : α), g a ^ (p * q2) ∂μ) ^ (1 / q2 * (1 / p)) =
    (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have hpp2 : p * p2 = q := by
  symm
  rw [mul_comm, ← div_eq_iff hp0_ne]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ p * p2 = q
[PROOFSTEP]
symm
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
⊢ q = p * p2
[PROOFSTEP]
rw [mul_comm, ← div_eq_iff hp0_ne]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
hpp2 : p * p2 = q
⊢ (∫⁻ (a : α), f a ^ (p * p2) ∂μ) ^ (1 / p2 * (1 / p)) * (∫⁻ (a : α), g a ^ (p * q2) ∂μ) ^ (1 / q2 * (1 / p)) =
    (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
have hpq2 : p * q2 = r := by
  rw [← inv_inv r, ← one_div, ← one_div, h_one_div_r]
  field_simp [Real.conjugateExponent, hp0_ne, hq0_ne]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
hpp2 : p * p2 = q
⊢ p * q2 = r
[PROOFSTEP]
rw [← inv_inv r, ← one_div, ← one_div, h_one_div_r]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
hpp2 : p * p2 = q
⊢ p * q2 = 1 / (1 / p - 1 / q)
[PROOFSTEP]
field_simp [Real.conjugateExponent, hp0_ne, hq0_ne]
[GOAL]
α✝ : Type u_1
inst✝¹ : MeasurableSpace α✝
μ✝ : Measure α✝
α : Type u_2
inst✝ : MeasurableSpace α
p q r : ℝ
hp0_lt : 0 < p
hpq : p < q
hpqr : 1 / p = 1 / q + 1 / r
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp0_ne : p ≠ 0
hp0 : 0 ≤ p
hq0_lt : 0 < q
hq0_ne : q ≠ 0
h_one_div_r : 1 / r = 1 / p - 1 / q
x✝ : r ≠ 0
p2 : ℝ := q / p
q2 : ℝ := Real.conjugateExponent p2
hp2q2 : Real.IsConjugateExponent p2 q2
hpp2 : p * p2 = q
hpq2 : p * q2 = r
⊢ (∫⁻ (a : α), f a ^ (p * p2) ∂μ) ^ (1 / p2 * (1 / p)) * (∫⁻ (a : α), g a ^ (p * q2) ∂μ) ^ (1 / q2 * (1 / p)) =
    (∫⁻ (a : α), f a ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r)
[PROOFSTEP]
simp_rw [div_mul_div_comm, mul_one, mul_comm p2, mul_comm q2, hpp2, hpq2]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (a : α), f a * g a ^ (p - 1) ∂μ ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
refine' le_trans (ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf (hg.pow_const _)) _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
⊢ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), (g a ^ (p - 1)) ^ q ∂μ) ^ (1 / q) ≤
    (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
by_cases hf_zero_rpow : (∫⁻ a : α, f a ^ p ∂μ) ^ (1 / p) = 0
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
⊢ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), (g a ^ (p - 1)) ^ q ∂μ) ^ (1 / q) ≤
    (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
rw [hf_zero_rpow, zero_mul]
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
⊢ 0 ≤ 0 * (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
exact zero_le _
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
⊢ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), (g a ^ (p - 1)) ^ q ∂μ) ^ (1 / q) ≤
    (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
have hf_top_rpow : (∫⁻ a : α, f a ^ p ∂μ) ^ (1 / p) ≠ ⊤ :=
  by
  by_contra h
  refine' hf_top _
  have hp_not_neg : ¬p < 0 := by simp [hpq.nonneg]
  simpa [hpq.pos, hp_not_neg] using h
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
⊢ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) ≠ ⊤
[PROOFSTEP]
by_contra h
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
h : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = ⊤
⊢ False
[PROOFSTEP]
refine' hf_top _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
h : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = ⊤
⊢ ∫⁻ (a : α), f a ^ p ∂μ = ⊤
[PROOFSTEP]
have hp_not_neg : ¬p < 0 := by simp [hpq.nonneg]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
h : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = ⊤
⊢ ¬p < 0
[PROOFSTEP]
simp [hpq.nonneg]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
h : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = ⊤
hp_not_neg : ¬p < 0
⊢ ∫⁻ (a : α), f a ^ p ∂μ = ⊤
[PROOFSTEP]
simpa [hpq.pos, hp_not_neg] using h
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
hf_top_rpow : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) ≠ ⊤
⊢ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), (g a ^ (p - 1)) ^ q ∂μ) ^ (1 / q) ≤
    (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
refine' (ENNReal.mul_le_mul_left hf_zero_rpow hf_top_rpow).mpr (le_of_eq _)
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
hf_top_rpow : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) ≠ ⊤
⊢ (∫⁻ (a : α), (g a ^ (p - 1)) ^ q ∂μ) ^ (1 / q) = (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
congr
[GOAL]
case neg.e_a.e_f
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
hf_top_rpow : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) ≠ ⊤
⊢ (fun a => (g a ^ (p - 1)) ^ q) = fun a => g a ^ p
[PROOFSTEP]
ext1 a
[GOAL]
case neg.e_a.e_f.h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hf_zero_rpow : ¬(∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) = 0
hf_top_rpow : (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) ≠ ⊤
a : α
⊢ (g a ^ (p - 1)) ^ q = g a ^ p
[PROOFSTEP]
rw [← ENNReal.rpow_mul, hpq.sub_one_mul_conj]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      (∫⁻ (a : α), (f a + g a) ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
calc
  (∫⁻ a, (f + g) a ^ p ∂μ) ≤ ∫⁻ a, (f + g) a * (f + g) a ^ (p - 1) ∂μ :=
    by
    refine' lintegral_mono fun a => _
    dsimp only
    by_cases h_zero : (f + g) a = 0
    · rw [h_zero, ENNReal.zero_rpow_of_pos hpq.pos]
      exact zero_le _
    by_cases h_top : (f + g) a = ⊤
    · rw [h_top, ENNReal.top_rpow_of_pos hpq.sub_one_pos, ENNReal.top_mul_top]
      exact le_top
    refine' le_of_eq _
    nth_rw 2 [← ENNReal.rpow_one ((f + g) a)]
    rw [← ENNReal.rpow_add _ _ h_zero h_top, add_sub_cancel'_right]
  _ = (∫⁻ a : α, f a * (f + g) a ^ (p - 1) ∂μ) + ∫⁻ a : α, g a * (f + g) a ^ (p - 1) ∂μ :=
    by
    have h_add_m : AEMeasurable (fun a : α => (f + g) a ^ (p - 1 : ℝ)) μ := (hf.add hg).pow_const _
    have h_add_apply :
      (∫⁻ a : α, (f + g) a * (f + g) a ^ (p - 1) ∂μ) = ∫⁻ a : α, (f a + g a) * (f + g) a ^ (p - 1) ∂μ := rfl
    simp_rw [h_add_apply, add_mul]
    rw [lintegral_add_left' (hf.mul h_add_m)]
  _ ≤ ((∫⁻ a, f a ^ p ∂μ) ^ (1 / p) + (∫⁻ a, g a ^ p ∂μ) ^ (1 / p)) * (∫⁻ a, (f a + g a) ^ p ∂μ) ^ (1 / q) :=
    by
    rw [add_mul]
    exact
      add_le_add (lintegral_mul_rpow_le_lintegral_rpow_mul_lintegral_rpow hpq hf (hf.add hg) hf_top)
        (lintegral_mul_rpow_le_lintegral_rpow_mul_lintegral_rpow hpq hg (hf.add hg) hg_top)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤ ∫⁻ (a : α), (f + g) a * (f + g) a ^ (p - 1) ∂μ
[PROOFSTEP]
refine' lintegral_mono fun a => _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
⊢ (f + g) a ^ p ≤ (f + g) a * (f + g) a ^ (p - 1)
[PROOFSTEP]
dsimp only
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
⊢ (f + g) a ^ p ≤ (f + g) a * (f + g) a ^ (p - 1)
[PROOFSTEP]
by_cases h_zero : (f + g) a = 0
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : (f + g) a = 0
⊢ (f + g) a ^ p ≤ (f + g) a * (f + g) a ^ (p - 1)
[PROOFSTEP]
rw [h_zero, ENNReal.zero_rpow_of_pos hpq.pos]
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : (f + g) a = 0
⊢ 0 ≤ 0 * 0 ^ (p - 1)
[PROOFSTEP]
exact zero_le _
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : ¬(f + g) a = 0
⊢ (f + g) a ^ p ≤ (f + g) a * (f + g) a ^ (p - 1)
[PROOFSTEP]
by_cases h_top : (f + g) a = ⊤
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : ¬(f + g) a = 0
h_top : (f + g) a = ⊤
⊢ (f + g) a ^ p ≤ (f + g) a * (f + g) a ^ (p - 1)
[PROOFSTEP]
rw [h_top, ENNReal.top_rpow_of_pos hpq.sub_one_pos, ENNReal.top_mul_top]
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : ¬(f + g) a = 0
h_top : (f + g) a = ⊤
⊢ ⊤ ^ p ≤ ⊤
[PROOFSTEP]
exact le_top
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : ¬(f + g) a = 0
h_top : ¬(f + g) a = ⊤
⊢ (f + g) a ^ p ≤ (f + g) a * (f + g) a ^ (p - 1)
[PROOFSTEP]
refine' le_of_eq _
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : ¬(f + g) a = 0
h_top : ¬(f + g) a = ⊤
⊢ (f + g) a ^ p = (f + g) a * (f + g) a ^ (p - 1)
[PROOFSTEP]
nth_rw 2 [← ENNReal.rpow_one ((f + g) a)]
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
a : α
h_zero : ¬(f + g) a = 0
h_top : ¬(f + g) a = ⊤
⊢ (f + g) a ^ p = (f + g) a ^ 1 * (f + g) a ^ (p - 1)
[PROOFSTEP]
rw [← ENNReal.rpow_add _ _ h_zero h_top, add_sub_cancel'_right]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (a : α), (f + g) a * (f + g) a ^ (p - 1) ∂μ =
    ∫⁻ (a : α), f a * (f + g) a ^ (p - 1) ∂μ + ∫⁻ (a : α), g a * (f + g) a ^ (p - 1) ∂μ
[PROOFSTEP]
have h_add_m : AEMeasurable (fun a : α => (f + g) a ^ (p - 1 : ℝ)) μ := (hf.add hg).pow_const _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_m : AEMeasurable fun a => (f + g) a ^ (p - 1)
⊢ ∫⁻ (a : α), (f + g) a * (f + g) a ^ (p - 1) ∂μ =
    ∫⁻ (a : α), f a * (f + g) a ^ (p - 1) ∂μ + ∫⁻ (a : α), g a * (f + g) a ^ (p - 1) ∂μ
[PROOFSTEP]
have h_add_apply : (∫⁻ a : α, (f + g) a * (f + g) a ^ (p - 1) ∂μ) = ∫⁻ a : α, (f a + g a) * (f + g) a ^ (p - 1) ∂μ :=
  rfl
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_m : AEMeasurable fun a => (f + g) a ^ (p - 1)
h_add_apply : ∫⁻ (a : α), (f + g) a * (f + g) a ^ (p - 1) ∂μ = ∫⁻ (a : α), (f a + g a) * (f + g) a ^ (p - 1) ∂μ
⊢ ∫⁻ (a : α), (f + g) a * (f + g) a ^ (p - 1) ∂μ =
    ∫⁻ (a : α), f a * (f + g) a ^ (p - 1) ∂μ + ∫⁻ (a : α), g a * (f + g) a ^ (p - 1) ∂μ
[PROOFSTEP]
simp_rw [h_add_apply, add_mul]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_m : AEMeasurable fun a => (f + g) a ^ (p - 1)
h_add_apply : ∫⁻ (a : α), (f + g) a * (f + g) a ^ (p - 1) ∂μ = ∫⁻ (a : α), (f a + g a) * (f + g) a ^ (p - 1) ∂μ
⊢ ∫⁻ (a : α), f a * (f + g) a ^ (p - 1) + g a * (f + g) a ^ (p - 1) ∂μ =
    ∫⁻ (a : α), f a * (f + g) a ^ (p - 1) ∂μ + ∫⁻ (a : α), g a * (f + g) a ^ (p - 1) ∂μ
[PROOFSTEP]
rw [lintegral_add_left' (hf.mul h_add_m)]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (a : α), f a * (f + g) a ^ (p - 1) ∂μ + ∫⁻ (a : α), g a * (f + g) a ^ (p - 1) ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      (∫⁻ (a : α), (f a + g a) ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
rw [add_mul]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
⊢ ∫⁻ (a : α), f a * (f + g) a ^ (p - 1) ∂μ + ∫⁻ (a : α), g a * (f + g) a ^ (p - 1) ∂μ ≤
    (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), (f a + g a) ^ p ∂μ) ^ (1 / q) +
      (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), (f a + g a) ^ p ∂μ) ^ (1 / q)
[PROOFSTEP]
exact
  add_le_add (lintegral_mul_rpow_le_lintegral_rpow_mul_lintegral_rpow hpq hf (hf.add hg) hf_top)
    (lintegral_mul_rpow_le_lintegral_rpow_mul_lintegral_rpow hpq hg (hf.add hg) hg_top)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
have hp_not_nonpos : ¬p ≤ 0 := by simp [hpq.pos]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
⊢ ¬p ≤ 0
[PROOFSTEP]
simp [hpq.pos]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
have htop_rpow : (∫⁻ a, (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤ :=
  by
  by_contra h
  exact h_add_top (@ENNReal.rpow_eq_top_of_nonneg _ (1 / p) (by simp [hpq.nonneg]) h)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
[PROOFSTEP]
by_contra h
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
h : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) = ⊤
⊢ False
[PROOFSTEP]
exact h_add_top (@ENNReal.rpow_eq_top_of_nonneg _ (1 / p) (by simp [hpq.nonneg]) h)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
h : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) = ⊤
⊢ 0 ≤ 1 / p
[PROOFSTEP]
simp [hpq.nonneg]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
have h0_rpow : (∫⁻ a, (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0 := by
  simp [h_add_zero, h_add_top, hpq.nonneg, hp_not_nonpos, -Pi.add_apply]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
[PROOFSTEP]
simp [h_add_zero, h_add_top, hpq.nonneg, hp_not_nonpos, -Pi.add_apply]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
suffices h :
  1 ≤ (∫⁻ a : α, (f + g) a ^ p ∂μ) ^ (-(1 / p)) * ((∫⁻ a : α, f a ^ p ∂μ) ^ (1 / p) + (∫⁻ a : α, g a ^ p ∂μ) ^ (1 / p))
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h :
  1 ≤
    (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) *
      ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
rwa [← mul_le_mul_left h0_rpow htop_rpow, ← mul_assoc, ← rpow_add _ _ h_add_zero h_add_top, ← sub_eq_add_neg,
  _root_.sub_self, rpow_zero, one_mul, mul_one] at h 
[GOAL]
case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
⊢ 1 ≤
    (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) *
      ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
have h :
  (∫⁻ a : α, (f + g) a ^ p ∂μ) ≤
    ((∫⁻ a : α, f a ^ p ∂μ) ^ (1 / p) + (∫⁻ a : α, g a ^ p ∂μ) ^ (1 / p)) * (∫⁻ a : α, (f + g) a ^ p ∂μ) ^ (1 / q) :=
  lintegral_rpow_add_le_add_snorm_mul_lintegral_rpow_add hpq hf hf_top hg hg_top
[GOAL]
case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / q)
⊢ 1 ≤
    (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) *
      ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
have h_one_div_q : 1 / q = 1 - 1 / p := by
  nth_rw 2 [← hpq.inv_add_inv_conj]
  ring
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / q)
⊢ 1 / q = 1 - 1 / p
[PROOFSTEP]
nth_rw 2 [← hpq.inv_add_inv_conj]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / q)
⊢ 1 / q = 1 / p + 1 / q - 1 / p
[PROOFSTEP]
ring
[GOAL]
case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / q)
h_one_div_q : 1 / q = 1 - 1 / p
⊢ 1 ≤
    (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) *
      ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
simp_rw [h_one_div_q, sub_eq_add_neg 1 (1 / p), ENNReal.rpow_add _ _ h_add_zero h_add_top, rpow_one] at h 
[GOAL]
case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
⊢ 1 ≤
    (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) *
      ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
conv_rhs at h => enter [2]; rw [mul_comm]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
| ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
    ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
[PROOFSTEP]
enter [2]; rw [mul_comm]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
| ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
    ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
[PROOFSTEP]
enter [2]; rw [mul_comm]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
| ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
    ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
[PROOFSTEP]
enter [2]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)))
| (∫⁻ (a : α), (f + g) a ^ p ∂μ) * (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p))
[PROOFSTEP]
rw [mul_comm]
[GOAL]
case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) * ∫⁻ (a : α), (f + g) a ^ p ∂μ)
⊢ 1 ≤
    (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) *
      ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
conv_lhs at h => rw [← one_mul (∫⁻ a : α, (f + g) a ^ p ∂μ)]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) * ∫⁻ (a : α), (f + g) a ^ p ∂μ)
| ∫⁻ (a : α), (f + g) a ^ p ∂μ
[PROOFSTEP]
rw [← one_mul (∫⁻ a : α, (f + g) a ^ p ∂μ)]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) * ∫⁻ (a : α), (f + g) a ^ p ∂μ)
| ∫⁻ (a : α), (f + g) a ^ p ∂μ
[PROOFSTEP]
rw [← one_mul (∫⁻ a : α, (f + g) a ^ p ∂μ)]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) * ∫⁻ (a : α), (f + g) a ^ p ∂μ)
| ∫⁻ (a : α), (f + g) a ^ p ∂μ
[PROOFSTEP]
rw [← one_mul (∫⁻ a : α, (f + g) a ^ p ∂μ)]
[GOAL]
case h
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0∞
hf : AEMeasurable f
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg : AEMeasurable g
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h_add_zero : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ 0
h_add_top : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
hp_not_nonpos : ¬p ≤ 0
htop_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ ⊤
h0_rpow : (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≠ 0
h_one_div_q : 1 / q = 1 - 1 / p
h :
  1 * ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤
    ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)) *
      ((∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) * ∫⁻ (a : α), (f + g) a ^ p ∂μ)
⊢ 1 ≤
    (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (-(1 / p)) *
      ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
rwa [← mul_assoc, ENNReal.mul_le_mul_right h_add_zero h_add_top, mul_comm] at h 
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
have hp_pos : 0 < p := lt_of_lt_of_le zero_lt_one hp1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
by_cases hf_top : ∫⁻ a, f a ^ p ∂μ = ⊤
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ∫⁻ (a : α), f a ^ p ∂μ = ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
simp [hf_top, hp_pos]
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
by_cases hg_top : ∫⁻ a, g a ^ p ∂μ = ⊤
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ = ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
simp [hg_top, hp_pos]
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
by_cases h1 : p = 1
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : p = 1
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
refine' le_of_eq _
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : p = 1
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) = (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
simp_rw [h1, one_div_one, ENNReal.rpow_one]
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : p = 1
⊢ ∫⁻ (a : α), (f + g) a ∂μ = ∫⁻ (a : α), f a ∂μ + ∫⁻ (a : α), g a ∂μ
[PROOFSTEP]
exact lintegral_add_left' hf _
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
have hp1_lt : 1 < p := by
  refine' lt_of_le_of_ne hp1 _
  symm
  exact h1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
⊢ 1 < p
[PROOFSTEP]
refine' lt_of_le_of_ne hp1 _
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
⊢ 1 ≠ p
[PROOFSTEP]
symm
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
⊢ p ≠ 1
[PROOFSTEP]
exact h1
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
have hpq := Real.isConjugateExponent_conjugateExponent hp1_lt
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
by_cases h0 : (∫⁻ a, (f + g) a ^ p ∂μ) = 0
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
rw [h0, @ENNReal.zero_rpow_of_pos (1 / p) (by simp [lt_of_lt_of_le zero_lt_one hp1])]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
⊢ 0 < 1 / p
[PROOFSTEP]
simp [lt_of_lt_of_le zero_lt_one hp1]
[GOAL]
case pos
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
⊢ 0 ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
exact zero_le _
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ¬∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
have htop : (∫⁻ a, (f + g) a ^ p ∂μ) ≠ ⊤ := by
  rw [← Ne.def] at hf_top hg_top 
  rw [← lt_top_iff_ne_top] at hf_top hg_top ⊢
  exact lintegral_rpow_add_lt_top_of_lintegral_rpow_lt_top hf hf_top hg_top hp1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ¬∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
[PROOFSTEP]
rw [← Ne.def] at hf_top hg_top 
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ∫⁻ (a : α), f a ^ p ∂μ ≠ ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ ≠ ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ¬∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
[PROOFSTEP]
rw [← lt_top_iff_ne_top] at hf_top hg_top ⊢
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ∫⁻ (a : α), f a ^ p ∂μ < ⊤
hg_top : ∫⁻ (a : α), g a ^ p ∂μ < ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ¬∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ < ⊤
[PROOFSTEP]
exact lintegral_rpow_add_lt_top_of_lintegral_rpow_lt_top hf hf_top hg_top hp1
[GOAL]
case neg
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hg : AEMeasurable g
hp1 : 1 ≤ p
hp_pos : 0 < p
hf_top : ¬∫⁻ (a : α), f a ^ p ∂μ = ⊤
hg_top : ¬∫⁻ (a : α), g a ^ p ∂μ = ⊤
h1 : ¬p = 1
hp1_lt : 1 < p
hpq : Real.IsConjugateExponent p (Real.conjugateExponent p)
h0 : ¬∫⁻ (a : α), (f + g) a ^ p ∂μ = 0
htop : ∫⁻ (a : α), (f + g) a ^ p ∂μ ≠ ⊤
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
exact lintegral_Lp_add_le_aux hpq hf hf_top hg hg_top h0 htop
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ p
hp1 : p ≤ 1
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤
    2 ^ (1 / p - 1) * ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
rcases eq_or_lt_of_le hp0 with (rfl | hp)
[GOAL]
case inl
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ 0
hp1 : 0 ≤ 1
⊢ (∫⁻ (a : α), (f + g) a ^ 0 ∂μ) ^ (1 / 0) ≤
    2 ^ (1 / 0 - 1) * ((∫⁻ (a : α), f a ^ 0 ∂μ) ^ (1 / 0) + (∫⁻ (a : α), g a ^ 0 ∂μ) ^ (1 / 0))
[PROOFSTEP]
simp only [Pi.add_apply, rpow_zero, lintegral_one, _root_.div_zero, zero_sub]
[GOAL]
case inl
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ 0
hp1 : 0 ≤ 1
⊢ 1 ≤ 2 ^ (-1) * (1 + 1)
[PROOFSTEP]
norm_num
[GOAL]
case inl
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ 0
hp1 : 0 ≤ 1
⊢ 1 ≤ 2 ^ (-1) * 2
[PROOFSTEP]
rw [rpow_neg, rpow_one, ENNReal.inv_mul_cancel two_ne_zero two_ne_top]
[GOAL]
case inr
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ p
hp1 : p ≤ 1
hp : 0 < p
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤
    2 ^ (1 / p - 1) * ((∫⁻ (a : α), f a ^ p ∂μ) ^ (1 / p) + (∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p))
[PROOFSTEP]
calc
  (∫⁻ a, (f + g) a ^ p ∂μ) ^ (1 / p) ≤ ((∫⁻ a, f a ^ p ∂μ) + ∫⁻ a, g a ^ p ∂μ) ^ (1 / p) :=
    by
    apply rpow_le_rpow _ (div_nonneg zero_le_one hp0)
    rw [← lintegral_add_left' (hf.pow_const p)]
    exact lintegral_mono fun a => rpow_add_le_add_rpow _ _ hp0 hp1
  _ ≤ (2 : ℝ≥0∞) ^ (1 / p - 1) * ((∫⁻ a, f a ^ p ∂μ) ^ (1 / p) + (∫⁻ a, g a ^ p ∂μ) ^ (1 / p)) :=
    rpow_add_le_mul_rpow_add_rpow _ _ ((one_le_div hp).2 hp1)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ p
hp1 : p ≤ 1
hp : 0 < p
⊢ (∫⁻ (a : α), (f + g) a ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), f a ^ p ∂μ + ∫⁻ (a : α), g a ^ p ∂μ) ^ (1 / p)
[PROOFSTEP]
apply rpow_le_rpow _ (div_nonneg zero_le_one hp0)
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ p
hp1 : p ≤ 1
hp : 0 < p
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤ ∫⁻ (a : α), f a ^ p ∂μ + ∫⁻ (a : α), g a ^ p ∂μ
[PROOFSTEP]
rw [← lintegral_add_left' (hf.pow_const p)]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p : ℝ
f g : α → ℝ≥0∞
hf : AEMeasurable f
hp0 : 0 ≤ p
hp1 : p ≤ 1
hp : 0 < p
⊢ ∫⁻ (a : α), (f + g) a ^ p ∂μ ≤ ∫⁻ (a : α), f a ^ p + g a ^ p ∂μ
[PROOFSTEP]
exact lintegral_mono fun a => rpow_add_le_add_rpow _ _ hp0 hp1
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0
hf : AEMeasurable f
hg : AEMeasurable g
⊢ ∫⁻ (a : α), ↑((f * g) a) ∂μ ≤ (∫⁻ (a : α), ↑(f a) ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), ↑(g a) ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
simp_rw [Pi.mul_apply, ENNReal.coe_mul]
[GOAL]
α : Type u_1
inst✝ : MeasurableSpace α
μ : Measure α
p q : ℝ
hpq : Real.IsConjugateExponent p q
f g : α → ℝ≥0
hf : AEMeasurable f
hg : AEMeasurable g
⊢ ∫⁻ (a : α), ↑(f a) * ↑(g a) ∂μ ≤ (∫⁻ (a : α), ↑(f a) ^ p ∂μ) ^ (1 / p) * (∫⁻ (a : α), ↑(g a) ^ q ∂μ) ^ (1 / q)
[PROOFSTEP]
exact ENNReal.lintegral_mul_le_Lp_mul_Lq μ hpq hf.coe_nnreal_ennreal hg.coe_nnreal_ennreal
