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

tactic: have hp_pos : 0 < p.toReal := ENNReal.toReal_pos hp hp_top
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
⊢ snorm (Set.indicator s fun x => c) p μ = ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: rw [snorm_eq_lintegral_rpow_nnnorm hp hp_top]
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ snorm (Set.indicator s fun x => c) p μ = ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: simp_rw [nnnorm_indicator_eq_indicator_nnnorm, ENNReal.coe_indicator]
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ (∫⁻ (x : α), ↑‖Set.indicator s (fun x => c) x‖₊ ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) =
    ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: have h_indicator_pow :
  (fun a : α => s.indicator (fun _ : α => (‖c‖₊ : ℝ≥0∞)) a ^ p.toReal) =
    s.indicator fun _ : α => (‖c‖₊ : ℝ≥0∞) ^ p.toReal := by
  rw [Set.comp_indicator_const (‖c‖₊ : ℝ≥0∞) (fun x => x ^ p.toReal) _]
  simp [hp_pos]
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ (∫⁻ (x : α), Set.indicator s (fun x => ↑‖c‖₊) x ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) =
    ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: rw [h_indicator_pow, lintegral_indicator _ hs, set_lintegral_const, ENNReal.mul_rpow_of_nonneg]
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
h_indicator_pow :
  (fun a => Set.indicator s (fun x => ↑‖c‖₊) a ^ ENNReal.toReal p) = Set.indicator s fun x => ↑‖c‖₊ ^ ENNReal.toReal p
⊢ (∫⁻ (x : α), Set.indicator s (fun x => ↑‖c‖₊) x ^ ENNReal.toReal p ∂μ) ^ (1 / ENNReal.toReal p) =
    ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: rw [Set.comp_indicator_const (‖c‖₊ : ℝ≥0∞) (fun x => x ^ p.toReal) _]
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ (fun a => Set.indicator s (fun x => ↑‖c‖₊) a ^ ENNReal.toReal p) = Set.indicator s fun x => ↑‖c‖₊ ^ ENNReal.toReal p

tactic: simp [hp_pos]
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
⊢ (fun x => x ^ ENNReal.toReal p) 0 = 0

tactic: rw [← ENNReal.rpow_mul, mul_one_div_cancel hp_pos.ne.symm, ENNReal.rpow_one]
state_before: α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
h_indicator_pow :
  (fun a => Set.indicator s (fun x => ↑‖c‖₊) a ^ ENNReal.toReal p) = Set.indicator s fun x => ↑‖c‖₊ ^ ENNReal.toReal p
⊢ (↑‖c‖₊ ^ ENNReal.toReal p) ^ (1 / ENNReal.toReal p) * ↑↑μ s ^ (1 / ENNReal.toReal p) =
    ↑‖c‖₊ * ↑↑μ s ^ (1 / ENNReal.toReal p)

tactic: simp [hp_pos.le]
state_before: case hz
α : Type u_1
E : Type ?u.641361
F : Type ?u.641364
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
hs : MeasurableSet s
hp : p ≠ 0
hp_top : p ≠ ⊤
hp_pos : 0 < ENNReal.toReal p
h_indicator_pow :
  (fun a => Set.indicator s (fun x => ↑‖c‖₊) a ^ ENNReal.toReal p) = Set.indicator s fun x => ↑‖c‖₊ ^ ENNReal.toReal p
⊢ 0 ≤ 1 / ENNReal.toReal p