Theorem: MeasureTheory.meas_ge_le_mul_pow_snorm
File: Mathlib/MeasureTheory/Function/LpSeminorm/ChebyshevMarkov.lean

tactic: by_cases h : ε = ∞
state_before: α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal
state_after: case pos
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ε = ⊤
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal

case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal

tactic: have hεpow : ε ^ p.toReal ≠ 0 := (ENNReal.rpow_pos (pos_iff_ne_zero.2 hε) h).ne.symm
state_before: case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal
state_after: case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ p.toReal ≠ 0
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal

tactic: have hεpow' : ε ^ p.toReal ≠ ∞ := ENNReal.rpow_ne_top_of_nonneg ENNReal.toReal_nonneg h
state_before: case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ p.toReal ≠ 0
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal
state_after: case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ p.toReal ≠ 0
hεpow' : ε ^ p.toReal ≠ ⊤
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal

tactic: rw [ENNReal.inv_rpow, ← ENNReal.mul_le_mul_left hεpow hεpow', ← mul_assoc,
  ENNReal.mul_inv_cancel hεpow hεpow', one_mul]
state_before: case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ p.toReal ≠ 0
hεpow' : ε ^ p.toReal ≠ ⊤
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal
state_after: case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ p.toReal ≠ 0
hεpow' : ε ^ p.toReal ≠ ⊤
⊢ ε ^ p.toReal * μ {x | ε ≤ ↑‖f x‖₊} ≤ snorm f p μ ^ p.toReal

tactic: exact mul_meas_ge_le_pow_snorm' μ hp_ne_zero hp_ne_top hf ε
state_before: case neg
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ¬ε = ⊤
hεpow : ε ^ p.toReal ≠ 0
hεpow' : ε ^ p.toReal ≠ ⊤
⊢ ε ^ p.toReal * μ {x | ε ≤ ↑‖f x‖₊} ≤ snorm f p μ ^ p.toReal
state_after: no goals

tactic: simp [h]
state_before: case pos
α : Type u_1
E : Type u_2
m0 : MeasurableSpace α
inst✝ : NormedAddCommGroup E
p : ℝ≥0∞
μ : Measure α
f : α → E
hp_ne_zero : p ≠ 0
hp_ne_top : p ≠ ⊤
hf : AEStronglyMeasurable f μ
ε : ℝ≥0∞
hε : ε ≠ 0
h : ε = ⊤
⊢ μ {x | ε ≤ ↑‖f x‖₊} ≤ ε⁻¹ ^ p.toReal * snorm f p μ ^ p.toReal
state_after: no goals