Theorem: MeasureTheory.Lp_toLp_restrict_add
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

Proof steps:
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ Memℒp.toLp ↑↑(f + g) ⋯ = Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯
state_after: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) =ᶠ[ae (μ.restrict s)] ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯)
tactic: ext1
state_before: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) =ᶠ[ae (μ.restrict s)] ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯)
state_after: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
tactic: refine (ae_restrict_of_ae (Lp.coeFn_add f g)).mp ?_
state_before: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
state_after: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x →
      ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
tactic: refine
    (Lp.coeFn_add (Memℒp.toLp f ((Lp.memℒp f).restrict s))
          (Memℒp.toLp g ((Lp.memℒp g).restrict s))).mp ?_
state_before: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x →
      ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
state_after: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(Memℒp.toLp ↑↑f ⋯) x = ↑↑f x →
      ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x →
        ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
tactic: refine (Memℒp.coeFn_toLp ((Lp.memℒp f).restrict s)).mp ?_
state_before: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(Memℒp.toLp ↑↑f ⋯) x = ↑↑f x →
      ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x →
        ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
state_after: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(Memℒp.toLp ↑↑g ⋯) x = ↑↑g x →
      ↑↑(Memℒp.toLp ↑↑f ⋯) x = ↑↑f x →
        ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x →
          ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
tactic: refine (Memℒp.coeFn_toLp ((Lp.memℒp g).restrict s)).mp ?_
state_before: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
⊢ ∀ᵐ (x : X) ∂μ.restrict s,
    ↑↑(Memℒp.toLp ↑↑g ⋯) x = ↑↑g x →
      ↑↑(Memℒp.toLp ↑↑f ⋯) x = ↑↑f x →
        ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x →
          ↑↑(f + g) x = (↑↑f + ↑↑g) x → ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
state_after: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
x : X
hx1 : ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(f + g) x
hx2 : ↑↑(Memℒp.toLp ↑↑g ⋯) x = ↑↑g x
hx3 : ↑↑(Memℒp.toLp ↑↑f ⋯) x = ↑↑f x
hx4 : ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x
hx5 : ↑↑(f + g) x = (↑↑f + ↑↑g) x
⊢ ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
tactic: refine (Memℒp.coeFn_toLp ((Lp.memℒp (f + g)).restrict s)).mono fun x hx1 hx2 hx3 hx4 hx5 => ?_
state_before: case h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace X
inst✝³ : NormedAddCommGroup E
𝕜 : Type u_5
inst✝² : NormedField 𝕜
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : ℝ≥0∞
μ : Measure X
f g : ↥(Lp E p μ)
s : Set X
x : X
hx1 : ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(f + g) x
hx2 : ↑↑(Memℒp.toLp ↑↑g ⋯) x = ↑↑g x
hx3 : ↑↑(Memℒp.toLp ↑↑f ⋯) x = ↑↑f x
hx4 : ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x = (↑↑(Memℒp.toLp ↑↑f ⋯) + ↑↑(Memℒp.toLp ↑↑g ⋯)) x
hx5 : ↑↑(f + g) x = (↑↑f + ↑↑g) x
⊢ ↑↑(Memℒp.toLp ↑↑(f + g) ⋯) x = ↑↑(Memℒp.toLp ↑↑f ⋯ + Memℒp.toLp ↑↑g ⋯) x
state_after: no goals
tactic: rw [hx4, hx1, Pi.add_apply, hx2, hx3, hx5, Pi.add_apply]