Theorem: MeasureTheory.snorm'_le_snorm'_mul_rpow_measure_univ
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: have hq0_lt : 0 < q := lt_of_lt_of_le hp0_lt hpq
state_before: α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: by_cases hpq_eq : p = q
state_before: α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: have hpq : p < q := lt_of_le_of_ne hpq hpq_eq
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: let g := fun _ : α => (1 : ℝ≥0∞)
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: have h_rw : (∫⁻ a, (‖f a‖₊ : ℝ≥0∞) ^ p ∂μ) = ∫⁻ a, ((‖f a‖₊ : ℝ≥0∞) * g a) ^ p ∂μ :=
  lintegral_congr fun a => by simp
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: repeat' rw [snorm']
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: rw [h_rw]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: let r := p * q / (q - p)
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: have hpqr : 1 / p = 1 / q + 1 / r := by
  field_simp [(ne_of_lt hp0_lt).symm, (ne_of_lt hq0_lt).symm]
  ring
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: calc
  (∫⁻ a : α, (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
      (∫⁻ a : α, ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ a : α, g a ^ r ∂μ) ^ (1 / r) :=
    ENNReal.lintegral_Lp_mul_le_Lq_mul_Lr hp0_lt hpq hpqr μ hf.ennnorm aemeasurable_const
  _ = (∫⁻ a : α, ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * μ Set.univ ^ (1 / p - 1 / q) := by
    rw [hpqr]; simp
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ) ^ (1 / p) ≤
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: rw [hpq_eq, sub_self, ENNReal.rpow_zero, mul_one]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : p = q
⊢ snorm' f p μ ≤ snorm' f q μ * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: simp
state_before: α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
a : α
⊢ ↑‖f a‖₊ ^ p = (↑‖f a‖₊ * g a) ^ p

tactic: rw [snorm']
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) ^ (1 / p) ≤ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: field_simp [(ne_of_lt hp0_lt).symm, (ne_of_lt hq0_lt).symm]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
⊢ 1 / p = 1 / q + 1 / r

tactic: ring
state_before: α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
⊢ p * q = q * p

tactic: rw [hpqr]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r) =
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / p - 1 / q)

tactic: simp
state_before: α : Type u_1
E : Type u_2
F : Type ?u.3186605
G : Type ?u.3186608
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
p q : ℝ
hp0_lt : 0 < p
hpq✝ : p ≤ q
f : α → E
hf : AEStronglyMeasurable f μ
hq0_lt : 0 < q
hpq_eq : ¬p = q
hpq : p < q
g : α → ℝ≥0∞ := fun x => 1
h_rw : (∫⁻ (a : α), ↑‖f a‖₊ ^ p ∂μ) = ∫⁻ (a : α), (↑‖f a‖₊ * g a) ^ p ∂μ
r : ℝ := p * q / (q - p)
hpqr : 1 / p = 1 / q + 1 / r
⊢ (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * (∫⁻ (a : α), g a ^ r ∂μ) ^ (1 / r) =
    (∫⁻ (a : α), ↑‖f a‖₊ ^ q ∂μ) ^ (1 / q) * ↑↑μ Set.univ ^ (1 / q + 1 / r - 1 / q)