Theorem: ContinuousLinearMap.integral_comp_comm
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: apply φ_int.induction (P := fun φ => ∫ x, L (φ x) ∂μ = L (∫ x, φ x ∂μ))
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)
state_after: case h_ind
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ ∀ (c : E) ⦃s : Set X⦄,
    MeasurableSet s → μ s < ⊤ → (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) (s.indicator fun x => c)

case h_add
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ ∀ ⦃f g : X → E⦄,
    Disjoint (support f) (support g) →
      Integrable f μ →
        Integrable g μ →
          (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) f →
            (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) g →
              (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) (f + g)

case h_closed
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ IsClosed {f | (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) ↑↑f}

case h_ae
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ ∀ ⦃f g : X → E⦄,
    f =ᶠ[ae μ] g →
      Integrable f μ →
        (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) f →
          (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) g

tactic: intro e s s_meas _
state_before: case h_ind
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ ∀ (c : E) ⦃s : Set X⦄,
    MeasurableSet s → μ s < ⊤ → (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) (s.indicator fun x => c)
state_after: case h_ind
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
e : E
s : Set X
s_meas : MeasurableSet s
a✝ : μ s < ⊤
⊢ ∫ (x : X), L (s.indicator (fun x => e) x) ∂μ = L (∫ (x : X), s.indicator (fun x => e) x ∂μ)

tactic: rw [integral_indicator_const e s_meas, ← @smul_one_smul E ℝ 𝕜 _ _ _ _ _ (μ s).toReal e,
  ContinuousLinearMap.map_smul, @smul_one_smul F ℝ 𝕜 _ _ _ _ _ (μ s).toReal (L e), ←
  integral_indicator_const (L e) s_meas]
state_before: case h_ind
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
e : E
s : Set X
s_meas : MeasurableSet s
a✝ : μ s < ⊤
⊢ ∫ (x : X), L (s.indicator (fun x => e) x) ∂μ = L (∫ (x : X), s.indicator (fun x => e) x ∂μ)
state_after: case h_ind
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
e : E
s : Set X
s_meas : MeasurableSet s
a✝ : μ s < ⊤
⊢ ∫ (x : X), L (s.indicator (fun x => e) x) ∂μ = ∫ (x : X), s.indicator (fun x => L e) x ∂μ

tactic: congr 1 with a
state_before: case h_ind
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
e : E
s : Set X
s_meas : MeasurableSet s
a✝ : μ s < ⊤
⊢ ∫ (x : X), L (s.indicator (fun x => e) x) ∂μ = ∫ (x : X), s.indicator (fun x => L e) x ∂μ
state_after: case h_ind.e_f.h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
e : E
s : Set X
s_meas : MeasurableSet s
a✝ : μ s < ⊤
a : X
⊢ L (s.indicator (fun x => e) a) = s.indicator (fun x => L e) a

tactic: rw [← Function.comp_def L, Set.indicator_comp_of_zero L.map_zero, Function.comp_apply]
state_before: case h_ind.e_f.h
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
e : E
s : Set X
s_meas : MeasurableSet s
a✝ : μ s < ⊤
a : X
⊢ L (s.indicator (fun x => e) a) = s.indicator (fun x => L e) a
state_after: no goals

tactic: intro f g _ f_int g_int hf hg
state_before: case h_add
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ ∀ ⦃f g : X → E⦄,
    Disjoint (support f) (support g) →
      Integrable f μ →
        Integrable g μ →
          (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) f →
            (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) g →
              (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) (f + g)
state_after: case h_add
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
a✝ : Disjoint (support f) (support g)
f_int : Integrable f μ
g_int : Integrable g μ
hf : ∫ (x : X), L (f x) ∂μ = L (∫ (x : X), f x ∂μ)
hg : ∫ (x : X), L (g x) ∂μ = L (∫ (x : X), g x ∂μ)
⊢ ∫ (x : X), L ((f + g) x) ∂μ = L (∫ (x : X), (f + g) x ∂μ)

tactic: simp [L.map_add, integral_add (μ := μ) f_int g_int,
  integral_add (μ := μ) (L.integrable_comp f_int) (L.integrable_comp g_int), hf, hg]
state_before: case h_add
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
a✝ : Disjoint (support f) (support g)
f_int : Integrable f μ
g_int : Integrable g μ
hf : ∫ (x : X), L (f x) ∂μ = L (∫ (x : X), f x ∂μ)
hg : ∫ (x : X), L (g x) ∂μ = L (∫ (x : X), g x ∂μ)
⊢ ∫ (x : X), L ((f + g) x) ∂μ = L (∫ (x : X), (f + g) x ∂μ)
state_after: no goals

tactic: exact isClosed_eq L.continuous_integral_comp_L1 (L.continuous.comp continuous_integral)
state_before: case h_closed
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ IsClosed {f | (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) ↑↑f}
state_after: no goals

tactic: intro f g hfg _ hf
state_before: case h_ae
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
⊢ ∀ ⦃f g : X → E⦄,
    f =ᶠ[ae μ] g →
      Integrable f μ →
        (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) f →
          (fun φ => ∫ (x : X), L (φ x) ∂μ = L (∫ (x : X), φ x ∂μ)) g
state_after: case h_ae
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
hfg : f =ᶠ[ae μ] g
a✝ : Integrable f μ
hf : ∫ (x : X), L (f x) ∂μ = L (∫ (x : X), f x ∂μ)
⊢ ∫ (x : X), L (g x) ∂μ = L (∫ (x : X), g x ∂μ)

tactic: convert hf using 1 <;> clear hf
state_before: case h_ae
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
hfg : f =ᶠ[ae μ] g
a✝ : Integrable f μ
hf : ∫ (x : X), L (f x) ∂μ = L (∫ (x : X), f x ∂μ)
⊢ ∫ (x : X), L (g x) ∂μ = L (∫ (x : X), g x ∂μ)
state_after: case h.e'_2
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
hfg : f =ᶠ[ae μ] g
a✝ : Integrable f μ
⊢ ∫ (x : X), L (g x) ∂μ = ∫ (x : X), L (f x) ∂μ

case h.e'_3
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
hfg : f =ᶠ[ae μ] g
a✝ : Integrable f μ
⊢ L (∫ (x : X), g x ∂μ) = L (∫ (x : X), f x ∂μ)

tactic: exact integral_congr_ae (hfg.fun_comp L).symm
state_before: case h.e'_2
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
hfg : f =ᶠ[ae μ] g
a✝ : Integrable f μ
⊢ ∫ (x : X), L (g x) ∂μ = ∫ (x : X), L (f x) ∂μ
state_after: no goals

tactic: rw [integral_congr_ae hfg.symm]
state_before: case h.e'_3
X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝⁹ : MeasurableSpace X
μ : Measure X
𝕜 : Type u_5
inst✝⁸ : RCLike 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
p : ℝ≥0∞
inst✝³ : NormedSpace ℝ F
inst✝² : CompleteSpace F
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
L : E →L[𝕜] F
φ : X → E
φ_int : Integrable φ μ
f g : X → E
hfg : f =ᶠ[ae μ] g
a✝ : Integrable f μ
⊢ L (∫ (x : X), g x ∂μ) = L (∫ (x : X), f x ∂μ)
state_after: no goals