Theorem: MeasureTheory.snorm_indicator_ge_of_bdd_below
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: rw [ENNReal.smul_def, smul_eq_mul, snorm_eq_lintegral_rpow_nnnorm hp hp',
  ENNReal.le_rpow_one_div_iff (ENNReal.toReal_pos hp hp'),
  ENNReal.mul_rpow_of_nonneg _ _ ENNReal.toReal_nonneg, ← ENNReal.rpow_mul,
  one_div_mul_cancel (ENNReal.toReal_pos hp hp').ne.symm, ENNReal.rpow_one, ← set_lintegral_const,
  ← lintegral_indicator _ hs]
state_before: α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ C • ↑↑μ s ^ (1 / ENNReal.toReal p) ≤ snorm (Set.indicator s f) p μ

tactic: refine' lintegral_mono_ae _
state_before: α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ (∫⁻ (a : α), Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) a ∂μ) ≤
    ∫⁻ (x : α), ↑‖Set.indicator s f x‖₊ ^ ENNReal.toReal p ∂μ

tactic: filter_upwards [hf] with x hx
state_before: α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ ∀ᵐ (a : α) ∂μ, Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) a ≤ ↑‖Set.indicator s f a‖₊ ^ ENNReal.toReal p

tactic: rw [nnnorm_indicator_eq_indicator_nnnorm]
state_before: case h
α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑‖Set.indicator s f x‖₊ ^ ENNReal.toReal p

tactic: by_cases hxs : x ∈ s
state_before: case h
α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑(Set.indicator s (fun a => ‖f a‖₊) x) ^ ENNReal.toReal p

tactic: simp only [Set.indicator_of_mem hxs] at hx⊢
state_before: case pos
α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
hxs : x ∈ s
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑(Set.indicator s (fun a => ‖f a‖₊) x) ^ ENNReal.toReal p

tactic: exact ENNReal.rpow_le_rpow (ENNReal.coe_le_coe.2 (hx hxs)) ENNReal.toReal_nonneg
state_before: case pos
α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hxs : x ∈ s
hx : x ∈ s → C ≤ ‖f x‖₊
⊢ ↑C ^ ENNReal.toReal p ≤ ↑‖f x‖₊ ^ ENNReal.toReal p

tactic: simp [Set.indicator_of_not_mem hxs]
state_before: case neg
α : Type u_1
E : Type ?u.5996188
F : Type u_2
G : Type ?u.5996194
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
hp : p ≠ 0
hp' : p ≠ ⊤
f : α → F
C : ℝ≥0
s : Set α
hs : MeasurableSet s
hf : ∀ᵐ (x : α) ∂μ, x ∈ s → C ≤ ‖Set.indicator s f x‖₊
x : α
hx : x ∈ s → C ≤ ‖Set.indicator s f x‖₊
hxs : ¬x ∈ s
⊢ Set.indicator s (fun x => ↑C ^ ENNReal.toReal p) x ≤ ↑(Set.indicator s (fun a => ‖f a‖₊) x) ^ ENNReal.toReal p