Theorem: MeasureTheory.snorm_indicator_const_le
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: rcases eq_or_ne p 0 with (rfl | hp)
state_before: α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
p : ℝ≥0∞
⊢ snorm (Set.indicator s fun x => c) p μ ≤ ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: rcases eq_or_ne p ∞ with (rfl | h'p)
state_before: case inr
α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
p : ℝ≥0∞
hp : p ≠ 0
⊢ snorm (Set.indicator s fun x => c) p μ ≤ ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: let t := toMeasurable μ s
state_before: case inr.inr
α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
p : ℝ≥0∞
hp : p ≠ 0
h'p : p ≠ ⊤
⊢ snorm (Set.indicator s fun x => c) p μ ≤ ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: calc
  snorm (s.indicator fun _ => c) p μ ≤ snorm (t.indicator fun _ => c) p μ :=
    snorm_mono (norm_indicator_le_of_subset (subset_toMeasurable _ _) _)
  _ = ‖c‖₊ * μ t ^ (1 / p.toReal) :=
    (snorm_indicator_const (measurableSet_toMeasurable _ _) hp h'p)
  _ = ‖c‖₊ * μ s ^ (1 / p.toReal) := by rw [measure_toMeasurable]
state_before: case inr.inr
α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
p : ℝ≥0∞
hp : p ≠ 0
h'p : p ≠ ⊤
t : Set α := toMeasurable μ s
⊢ snorm (Set.indicator s fun x => c) p μ ≤ ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: simp only [snorm_exponent_zero, zero_le']
state_before: case inl
α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
⊢ snorm (Set.indicator s fun x => c) 0 μ ≤ ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal 0)

tactic: simp only [snorm_exponent_top, ENNReal.top_toReal, _root_.div_zero, ENNReal.rpow_zero, mul_one]
state_before: case inr.inl
α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
hp : ⊤ ≠ 0
⊢ snorm (Set.indicator s fun x => c) ⊤ μ ≤ ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal ⊤)

tactic: exact snormEssSup_indicator_const_le _ _
state_before: case inr.inl
α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
hp : ⊤ ≠ 0
⊢ snormEssSup (Set.indicator s fun x => c) μ ≤ ↑‖c‖₊

tactic: rw [measure_toMeasurable]
state_before: α : Type u_1
E : Type ?u.648257
F : Type ?u.648260
G : Type u_2
m m0 : MeasurableSpace α
p✝ : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c✝ : E
f : α → E
hf : AEStronglyMeasurable f μ
c : G
p : ℝ≥0∞
hp : p ≠ 0
h'p : p ≠ ⊤
t : Set α := toMeasurable μ s
⊢ ↑‖c‖₊ * ↑↑μ t ^ (1 / ENNReal.toReal p) = ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)