Theorem: MeasureTheory.Memℒp.memℒp_of_exponent_le
File: Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean

Proof steps:
state_before: α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hfq : Memℒp f q μ
hpq : p ≤ q
⊢ Memℒp f p μ
state_after: case intro
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
⊢ Memℒp f p μ
tactic: cases' hfq with hfq_m hfq_lt_top
state_before: case intro
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
⊢ Memℒp f p μ
state_after: case pos
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p = 0
⊢ Memℒp f p μ

case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : ¬p = 0
⊢ Memℒp f p μ
tactic: by_cases hp0 : p = 0
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : ¬p = 0
⊢ Memℒp f p μ
state_after: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
⊢ Memℒp f p μ
tactic: rw [← Ne] at hp0
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
⊢ Memℒp f p μ
state_after: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
⊢ eLpNorm f p μ < ⊤
tactic: refine ⟨hfq_m, ?_⟩
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
⊢ eLpNorm f p μ < ⊤
state_after: case pos
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
⊢ eLpNorm f p μ < ⊤

case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
⊢ eLpNorm f p μ < ⊤
tactic: by_cases hp_top : p = ∞
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
⊢ eLpNorm f p μ < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
⊢ eLpNorm f p μ < ⊤
tactic: have hp_pos : 0 < p.toReal := ENNReal.toReal_pos hp0 hp_top
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
⊢ eLpNorm f p μ < ⊤
state_after: case pos
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : q = ⊤
⊢ eLpNorm f p μ < ⊤

case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
⊢ eLpNorm f p μ < ⊤
tactic: by_cases hq_top : q = ∞
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
⊢ eLpNorm f p μ < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
⊢ eLpNorm f p μ < ⊤
tactic: have hq0 : q ≠ 0 := by
    by_contra hq_eq_zero
    have hp_eq_zero : p = 0 := le_antisymm (by rwa [hq_eq_zero] at hpq) (zero_le _)
    rw [hp_eq_zero, ENNReal.zero_toReal] at hp_pos
    exact (lt_irrefl _) hp_pos
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
⊢ eLpNorm f p μ < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : p.toReal ≤ q.toReal
⊢ eLpNorm f p μ < ⊤
tactic: have hpq_real : p.toReal ≤ q.toReal := by rwa [ENNReal.toReal_le_toReal hp_top hq_top]
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : p.toReal ≤ q.toReal
⊢ eLpNorm f p μ < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : p.toReal ≤ q.toReal
⊢ eLpNorm' f p.toReal μ < ⊤
tactic: rw [eLpNorm_eq_eLpNorm' hp0 hp_top]
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : p.toReal ≤ q.toReal
⊢ eLpNorm' f p.toReal μ < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm' f q.toReal μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : p.toReal ≤ q.toReal
⊢ eLpNorm' f p.toReal μ < ⊤
tactic: rw [eLpNorm_eq_eLpNorm' hq0 hq_top] at hfq_lt_top
state_before: case neg
α : Type u_1
E : Type u_2
m : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
μ : Measure α
f✝ : α → E
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : eLpNorm' f q.toReal μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < p.toReal
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : p.toReal ≤ q.toReal
⊢ eLpNorm' f p.toReal μ < ⊤
state_after: no goals
tactic: exact eLpNorm'_lt_top_of_eLpNorm'_lt_top_of_exponent_le hfq_m hfq_lt_top hp_pos.le hpq_real