Theorem: MeasureTheory.Memℒp.piecewise
File: Mathlib/MeasureTheory/Function/LpSpace.lean

Proof steps:
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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
⊢ Memℒp (s.piecewise f g) 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : p = 0
⊢ Memℒp (s.piecewise f g) 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
⊢ Memℒp (s.piecewise f g) p μ
tactic: by_cases hp_zero : p = 0
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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
⊢ Memℒp (s.piecewise f g) 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
⊢ eLpNorm (s.piecewise f g) p μ < ⊤
tactic: refine ⟨AEStronglyMeasurable.piecewise hs hf.1 hg.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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
⊢ eLpNorm (s.piecewise f g) p μ < ⊤
state_after: case neg.inl
α : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
m m0 : MeasurableSpace α
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f ⊤ (μ.restrict s)
hg : Memℒp g ⊤ (μ.restrict sᶜ)
hp_zero : ¬⊤ = 0
⊢ eLpNorm (s.piecewise f g) ⊤ μ < ⊤

case neg.inr
α : 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
hp_top : p ≠ ⊤
⊢ eLpNorm (s.piecewise f g) p μ < ⊤
tactic: rcases eq_or_ne p ∞ with rfl | hp_top
state_before: case neg.inr
α : 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
hp_top : p ≠ ⊤
⊢ eLpNorm (s.piecewise f g) p μ < ⊤
state_after: case neg.inr
α : 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
hp_top : p ≠ ⊤
⊢ ∫⁻ (x : α) in s, ↑‖s.piecewise f g x‖₊ ^ p.toReal ∂μ < ⊤ ∧ ∫⁻ (x : α) in sᶜ, ↑‖s.piecewise f g x‖₊ ^ p.toReal ∂μ < ⊤
tactic: rw [eLpNorm_lt_top_iff_lintegral_rpow_nnnorm_lt_top hp_zero hp_top, ← lintegral_add_compl _ hs,
    ENNReal.add_lt_top]
state_before: case neg.inr
α : 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
hp_top : p ≠ ⊤
⊢ ∫⁻ (x : α) in s, ↑‖s.piecewise f g x‖₊ ^ p.toReal ∂μ < ⊤ ∧ ∫⁻ (x : α) in sᶜ, ↑‖s.piecewise f g x‖₊ ^ p.toReal ∂μ < ⊤
state_after: case neg.inr.left
α : 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
hp_top : p ≠ ⊤
⊢ ∫⁻ (x : α) in s, ↑‖s.piecewise f g x‖₊ ^ p.toReal ∂μ < ⊤

case neg.inr.right
α : 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
c : E
f : α → E
hf✝ : AEStronglyMeasurable f μ
s : Set α
inst✝ : DecidablePred fun x => x ∈ s
g : α → E
hs : MeasurableSet s
hf : Memℒp f p (μ.restrict s)
hg : Memℒp g p (μ.restrict sᶜ)
hp_zero : ¬p = 0
hp_top : p ≠ ⊤
⊢ ∫⁻ (x : α) in sᶜ, ↑‖s.piecewise f g x‖₊ ^ p.toReal ∂μ < ⊤
tactic: constructor