Theorem: ContinuousMultilinearMap.linearDeriv_apply
File: Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean

Proof steps:
state_before: R : Type u
ι : Type v
n : ℕ
M : Fin n.succ → Type w
M₁ : ι → Type w₁
M₁' : ι → Type w₁'
M₂ : Type w₂
M₃ : Type w₃
M₄ : Type w₄
inst✝²¹ : Semiring R
inst✝²⁰ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝¹⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝¹⁸ : (i : ι) → AddCommMonoid (M₁' i)
inst✝¹⁷ : AddCommMonoid M₂
inst✝¹⁶ : AddCommMonoid M₃
inst✝¹⁵ : AddCommMonoid M₄
inst✝¹⁴ : (i : Fin n.succ) → Module R (M i)
inst✝¹³ : (i : ι) → Module R (M₁ i)
inst✝¹² : (i : ι) → Module R (M₁' i)
inst✝¹¹ : Module R M₂
inst✝¹⁰ : Module R M₃
inst✝⁹ : Module R M₄
inst✝⁸ : (i : Fin n.succ) → TopologicalSpace (M i)
inst✝⁷ : (i : ι) → TopologicalSpace (M₁ i)
inst✝⁶ : (i : ι) → TopologicalSpace (M₁' i)
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : TopologicalSpace M₄
f f' : ContinuousMultilinearMap R M₁ M₂
inst✝² : ContinuousAdd M₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
x y : (i : ι) → M₁ i
⊢ (f.linearDeriv x) y = ∑ i : ι, f (update x i (y i))
state_after: R : Type u
ι : Type v
n : ℕ
M : Fin n.succ → Type w
M₁ : ι → Type w₁
M₁' : ι → Type w₁'
M₂ : Type w₂
M₃ : Type w₃
M₄ : Type w₄
inst✝²¹ : Semiring R
inst✝²⁰ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝¹⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝¹⁸ : (i : ι) → AddCommMonoid (M₁' i)
inst✝¹⁷ : AddCommMonoid M₂
inst✝¹⁶ : AddCommMonoid M₃
inst✝¹⁵ : AddCommMonoid M₄
inst✝¹⁴ : (i : Fin n.succ) → Module R (M i)
inst✝¹³ : (i : ι) → Module R (M₁ i)
inst✝¹² : (i : ι) → Module R (M₁' i)
inst✝¹¹ : Module R M₂
inst✝¹⁰ : Module R M₃
inst✝⁹ : Module R M₄
inst✝⁸ : (i : Fin n.succ) → TopologicalSpace (M i)
inst✝⁷ : (i : ι) → TopologicalSpace (M₁ i)
inst✝⁶ : (i : ι) → TopologicalSpace (M₁' i)
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : TopologicalSpace M₄
f f' : ContinuousMultilinearMap R M₁ M₂
inst✝² : ContinuousAdd M₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
x y : (i : ι) → M₁ i
⊢ (∑ i : ι,
        (let __src := f.toLinearMap x i;
            { toLinearMap := __src, cont := ⋯ }).comp
          (ContinuousLinearMap.proj i))
      y =
    ∑ i : ι, f (update x i (y i))
tactic: unfold linearDeriv toContinuousLinearMap
state_before: R : Type u
ι : Type v
n : ℕ
M : Fin n.succ → Type w
M₁ : ι → Type w₁
M₁' : ι → Type w₁'
M₂ : Type w₂
M₃ : Type w₃
M₄ : Type w₄
inst✝²¹ : Semiring R
inst✝²⁰ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝¹⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝¹⁸ : (i : ι) → AddCommMonoid (M₁' i)
inst✝¹⁷ : AddCommMonoid M₂
inst✝¹⁶ : AddCommMonoid M₃
inst✝¹⁵ : AddCommMonoid M₄
inst✝¹⁴ : (i : Fin n.succ) → Module R (M i)
inst✝¹³ : (i : ι) → Module R (M₁ i)
inst✝¹² : (i : ι) → Module R (M₁' i)
inst✝¹¹ : Module R M₂
inst✝¹⁰ : Module R M₃
inst✝⁹ : Module R M₄
inst✝⁸ : (i : Fin n.succ) → TopologicalSpace (M i)
inst✝⁷ : (i : ι) → TopologicalSpace (M₁ i)
inst✝⁶ : (i : ι) → TopologicalSpace (M₁' i)
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : TopologicalSpace M₄
f f' : ContinuousMultilinearMap R M₁ M₂
inst✝² : ContinuousAdd M₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
x y : (i : ι) → M₁ i
⊢ (∑ i : ι,
        (let __src := f.toLinearMap x i;
            { toLinearMap := __src, cont := ⋯ }).comp
          (ContinuousLinearMap.proj i))
      y =
    ∑ i : ι, f (update x i (y i))
state_after: R : Type u
ι : Type v
n : ℕ
M : Fin n.succ → Type w
M₁ : ι → Type w₁
M₁' : ι → Type w₁'
M₂ : Type w₂
M₃ : Type w₃
M₄ : Type w₄
inst✝²¹ : Semiring R
inst✝²⁰ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝¹⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝¹⁸ : (i : ι) → AddCommMonoid (M₁' i)
inst✝¹⁷ : AddCommMonoid M₂
inst✝¹⁶ : AddCommMonoid M₃
inst✝¹⁵ : AddCommMonoid M₄
inst✝¹⁴ : (i : Fin n.succ) → Module R (M i)
inst✝¹³ : (i : ι) → Module R (M₁ i)
inst✝¹² : (i : ι) → Module R (M₁' i)
inst✝¹¹ : Module R M₂
inst✝¹⁰ : Module R M₃
inst✝⁹ : Module R M₄
inst✝⁸ : (i : Fin n.succ) → TopologicalSpace (M i)
inst✝⁷ : (i : ι) → TopologicalSpace (M₁ i)
inst✝⁶ : (i : ι) → TopologicalSpace (M₁' i)
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : TopologicalSpace M₄
f f' : ContinuousMultilinearMap R M₁ M₂
inst✝² : ContinuousAdd M₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
x y : (i : ι) → M₁ i
⊢ ∑ c : ι, (⇑(f.toLinearMap x c) ∘ ⇑(ContinuousLinearMap.proj c)) y = ∑ i : ι, f (update x i (y i))
tactic: simp only [ContinuousLinearMap.coe_sum', ContinuousLinearMap.coe_comp',
    ContinuousLinearMap.coe_mk', LinearMap.coe_mk, LinearMap.coe_toAddHom, Finset.sum_apply]
state_before: R : Type u
ι : Type v
n : ℕ
M : Fin n.succ → Type w
M₁ : ι → Type w₁
M₁' : ι → Type w₁'
M₂ : Type w₂
M₃ : Type w₃
M₄ : Type w₄
inst✝²¹ : Semiring R
inst✝²⁰ : (i : Fin n.succ) → AddCommMonoid (M i)
inst✝¹⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝¹⁸ : (i : ι) → AddCommMonoid (M₁' i)
inst✝¹⁷ : AddCommMonoid M₂
inst✝¹⁶ : AddCommMonoid M₃
inst✝¹⁵ : AddCommMonoid M₄
inst✝¹⁴ : (i : Fin n.succ) → Module R (M i)
inst✝¹³ : (i : ι) → Module R (M₁ i)
inst✝¹² : (i : ι) → Module R (M₁' i)
inst✝¹¹ : Module R M₂
inst✝¹⁰ : Module R M₃
inst✝⁹ : Module R M₄
inst✝⁸ : (i : Fin n.succ) → TopologicalSpace (M i)
inst✝⁷ : (i : ι) → TopologicalSpace (M₁ i)
inst✝⁶ : (i : ι) → TopologicalSpace (M₁' i)
inst✝⁵ : TopologicalSpace M₂
inst✝⁴ : TopologicalSpace M₃
inst✝³ : TopologicalSpace M₄
f f' : ContinuousMultilinearMap R M₁ M₂
inst✝² : ContinuousAdd M₂
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
x y : (i : ι) → M₁ i
⊢ ∑ c : ι, (⇑(f.toLinearMap x c) ∘ ⇑(ContinuousLinearMap.proj c)) y = ∑ i : ι, f (update x i (y i))
state_after: no goals
tactic: rfl