Theorem: MeasureTheory.snorm_restrict_eq_of_support_subset
File: Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

tactic: by_cases hp0 : p = 0
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
⊢ snorm f p (μ.restrict s) = snorm f p μ
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : p = 0
⊢ snorm f p (μ.restrict s) = snorm f p μ

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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
⊢ snorm f p (μ.restrict s) = snorm f p μ

tactic: by_cases hp_top : p = ∞
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
⊢ snorm f p (μ.restrict s) = snorm f p μ
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ snorm f p (μ.restrict s) = snorm f p μ

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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm f p (μ.restrict s) = snorm f p μ

tactic: simp [hp0]
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : p = 0
⊢ snorm f p (μ.restrict s) = snorm f p μ
state_after: no goals

tactic: simp only [hp_top, snorm_exponent_top, snormEssSup]
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ snorm f p (μ.restrict s) = snorm f p μ
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ essSup (fun x => ↑‖f x‖₊) (μ.restrict s) = essSup (fun x => ↑‖f x‖₊) μ

tactic: apply ENNReal.essSup_restrict_eq_of_support_subset
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ essSup (fun x => ↑‖f x‖₊) (μ.restrict s) = essSup (fun x => ↑‖f x‖₊) μ
state_after: case pos.hsf
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ (Function.support fun x => ↑‖f x‖₊) ⊆ s

tactic: apply Function.support_subset_iff.2 (fun x hx ↦ ?_)
state_before: case pos.hsf
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
⊢ (Function.support fun x => ↑‖f x‖₊) ⊆ s
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
x : α
hx : ↑‖f x‖₊ ≠ 0
⊢ x ∈ s

tactic: simp only [ne_eq, ENNReal.coe_eq_zero, nnnorm_eq_zero] at hx
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
x : α
hx : ↑‖f x‖₊ ≠ 0
⊢ x ∈ s
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
x : α
hx : ¬f x = 0
⊢ x ∈ s

tactic: exact Function.support_subset_iff.1 hsf x hx
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : p = ⊤
x : α
hx : ¬f x = 0
⊢ x ∈ s
state_after: no goals

tactic: simp_rw [snorm_eq_snorm' hp0 hp_top, snorm']
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ snorm f p (μ.restrict s) = snorm f p μ
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ (∫⁻ (a : α) in s, ↑‖f a‖₊ ^ p.toReal ∂μ) ^ (1 / p.toReal) = (∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ) ^ (1 / p.toReal)

tactic: congr 1
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ (∫⁻ (a : α) in s, ↑‖f a‖₊ ^ p.toReal ∂μ) ^ (1 / p.toReal) = (∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ) ^ (1 / p.toReal)
state_after: case neg.e_a
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ ∫⁻ (a : α) in s, ↑‖f a‖₊ ^ p.toReal ∂μ = ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ

tactic: apply setLIntegral_eq_of_support_subset
state_before: case neg.e_a
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ ∫⁻ (a : α) in s, ↑‖f a‖₊ ^ p.toReal ∂μ = ∫⁻ (a : α), ↑‖f a‖₊ ^ p.toReal ∂μ
state_after: case neg.e_a.hsf
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ (Function.support fun x => ↑‖f x‖₊ ^ p.toReal) ⊆ s

tactic: have : ¬(p.toReal ≤ 0) := by simpa only [not_le] using ENNReal.toReal_pos hp0 hp_top
state_before: case neg.e_a.hsf
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ (Function.support fun x => ↑‖f x‖₊ ^ p.toReal) ⊆ s
state_after: case neg.e_a.hsf
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
this : ¬p.toReal ≤ 0
⊢ (Function.support fun x => ↑‖f x‖₊ ^ p.toReal) ⊆ s

tactic: simpa [this] using hsf
state_before: case neg.e_a.hsf
α : 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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
this : ¬p.toReal ≤ 0
⊢ (Function.support fun x => ↑‖f x‖₊ ^ p.toReal) ⊆ s
state_after: no goals

tactic: simpa only [not_le] using ENNReal.toReal_pos hp0 hp_top
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
s : Set α
f : α → F
hsf : Function.support f ⊆ s
hp0 : ¬p = 0
hp_top : ¬p = ⊤
⊢ ¬p.toReal ≤ 0
state_after: no goals