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

tactic: cases' hfq with hfq_m hfq_lt_top
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hfq : Memℒp f q
hpq : p ≤ q
⊢ Memℒp f p

tactic: by_cases hp0 : p = 0
state_before: case intro
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
⊢ Memℒp f p

tactic: rw [← Ne.def] at hp0
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : ¬p = 0
⊢ Memℒp f p

tactic: refine' ⟨hfq_m, _⟩
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
⊢ Memℒp f p

tactic: by_cases hp_top : p = ∞
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
⊢ snorm f p μ < ⊤

tactic: have hp_pos : 0 < p.toReal := ENNReal.toReal_pos hp0 hp_top
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
⊢ snorm f p μ < ⊤

tactic: by_cases hq_top : q = ∞
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ snorm f p μ < ⊤

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
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
⊢ snorm f p μ < ⊤

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
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
⊢ snorm f p μ < ⊤

tactic: rw [snorm_eq_snorm' hp0 hp_top]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : ENNReal.toReal p ≤ ENNReal.toReal q
⊢ snorm f p μ < ⊤

tactic: rw [snorm_eq_snorm' hq0 hq_top] at hfq_lt_top
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : ENNReal.toReal p ≤ ENNReal.toReal q
⊢ snorm' f (ENNReal.toReal p) μ < ⊤

tactic: exact snorm'_lt_top_of_snorm'_lt_top_of_exponent_le hfq_m hfq_lt_top (le_of_lt hp_pos) hpq_real
state_before: case neg
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm' f (ENNReal.toReal q) μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
hpq_real : ENNReal.toReal p ≤ ENNReal.toReal q
⊢ snorm' f (ENNReal.toReal p) μ < ⊤

tactic: rwa [hp0, memℒp_zero_iff_aestronglyMeasurable]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p = 0
⊢ Memℒp f p

tactic: have hq_top : q = ∞ := by rwa [hp_top, top_le_iff] at hpq
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
⊢ snorm f p μ < ⊤

tactic: rw [hp_top]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
hq_top : q = ⊤
⊢ snorm f p μ < ⊤

tactic: rwa [hq_top] at hfq_lt_top
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
hq_top : q = ⊤
⊢ snorm f ⊤ μ < ⊤

tactic: rwa [hp_top, top_le_iff] at hpq
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : p = ⊤
⊢ q = ⊤

tactic: rw [snorm_eq_snorm' hp0 hp_top]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snorm f p μ < ⊤

tactic: rw [hq_top, snorm_exponent_top] at hfq_lt_top
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snorm' f (ENNReal.toReal p) μ < ⊤

tactic: refine' lt_of_le_of_lt (snorm'_le_snormEssSup_mul_rpow_measure_univ hp_pos) _
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snorm' f (ENNReal.toReal p) μ < ⊤

tactic: refine' ENNReal.mul_lt_top hfq_lt_top.ne _
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ snormEssSup f μ * ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) < ⊤

tactic: exact (ENNReal.rpow_lt_top_of_nonneg (by simp [hp_pos.le]) (measure_ne_top μ Set.univ)).ne
state_before: case pos
α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ ↑↑μ Set.univ ^ (1 / ENNReal.toReal p) ≠ ⊤

tactic: simp [hp_pos.le]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snormEssSup f μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : q = ⊤
⊢ 0 ≤ 1 / ENNReal.toReal p

tactic: by_contra hq_eq_zero
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
⊢ q ≠ 0

tactic: have hp_eq_zero : p = 0 := le_antisymm (by rwa [hq_eq_zero] at hpq) (zero_le _)
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
⊢ False

tactic: rw [hp_eq_zero, ENNReal.zero_toReal] at hp_pos
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
hp_eq_zero : p = 0
⊢ False

tactic: exact (lt_irrefl _) hp_pos
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < 0
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
hp_eq_zero : p = 0
⊢ False

tactic: rwa [hq_eq_zero] at hpq
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq_eq_zero : q = 0
⊢ p ≤ 0

tactic: rwa [ENNReal.toReal_le_toReal hp_top hq_top]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.5027535
G : Type ?u.5027538
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
p q : ℝ≥0∞
inst✝ : IsFiniteMeasure μ
f : α → E
hpq : p ≤ q
hfq_m : AEStronglyMeasurable f μ
hfq_lt_top : snorm f q μ < ⊤
hp0 : p ≠ 0
hp_top : ¬p = ⊤
hp_pos : 0 < ENNReal.toReal p
hq_top : ¬q = ⊤
hq0 : q ≠ 0
⊢ ENNReal.toReal p ≤ ENNReal.toReal q