Theorem: MeasureTheory.Memℒp.norm_rpow_div
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: refine ⟨(hf.1.norm.aemeasurable.pow_const q.toReal).aestronglyMeasurable, ?_⟩
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
⊢ Memℒp (fun x => ‖f x‖ ^ q.toReal) (p / q) μ
state_after: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤

tactic: by_cases q_top : q = ∞
state_before: α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : q = ⊤
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤

case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤

tactic: by_cases q_zero : q = 0
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤

case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤

tactic: rw [snorm_norm_rpow _ (ENNReal.toReal_pos q_zero q_top)]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm f (p / q * ENNReal.ofReal q.toReal) μ ^ q.toReal < ⊤

tactic: apply ENNReal.rpow_lt_top_of_nonneg ENNReal.toReal_nonneg
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm f (p / q * ENNReal.ofReal q.toReal) μ ^ q.toReal < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm f (p / q * ENNReal.ofReal q.toReal) μ ≠ ⊤

tactic: rw [ENNReal.ofReal_toReal q_top, div_eq_mul_inv, mul_assoc, ENNReal.inv_mul_cancel q_zero q_top,
  mul_one]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm f (p / q * ENNReal.ofReal q.toReal) μ ≠ ⊤
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm f p μ ≠ ⊤

tactic: exact hf.2.ne
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : ¬q = 0
⊢ snorm f p μ ≠ ⊤
state_after: no goals

tactic: simp [q_top]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : q = ⊤
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤
state_after: no goals

tactic: simp [q_zero]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
⊢ snorm (fun x => ‖f x‖ ^ q.toReal) (p / q) μ < ⊤
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
⊢ snorm (fun x => 1) (p / 0) μ < ⊤

tactic: by_cases p_zero : p = 0
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
⊢ snorm (fun x => 1) (p / 0) μ < ⊤
state_after: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
p_zero : p = 0
⊢ snorm (fun x => 1) (p / 0) μ < ⊤

case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
p_zero : ¬p = 0
⊢ snorm (fun x => 1) (p / 0) μ < ⊤

tactic: rw [ENNReal.div_zero p_zero]
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
p_zero : ¬p = 0
⊢ snorm (fun x => 1) (p / 0) μ < ⊤
state_after: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
p_zero : ¬p = 0
⊢ snorm (fun x => 1) ⊤ μ < ⊤

tactic: exact (memℒp_top_const (1 : ℝ)).2
state_before: case neg
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
p_zero : ¬p = 0
⊢ snorm (fun x => 1) ⊤ μ < ⊤
state_after: no goals

tactic: simp [p_zero]
state_before: case pos
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
p : ℝ≥0∞
q✝ : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → E
hf : Memℒp f p μ
q : ℝ≥0∞
q_top : ¬q = ⊤
q_zero : q = 0
p_zero : p = 0
⊢ snorm (fun x => 1) (p / 0) μ < ⊤
state_after: no goals