Theorem: ContinuousMultilinearMap.changeOrigin_toFormalMultilinearSeries
File: Mathlib/Analysis/Calculus/FDeriv/Analytic.lean

Proof steps:
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
⊢ (continuousMultilinearCurryFin1 𝕜 ((i : ι) → E i) F) (f.toFormalMultilinearSeries.changeOrigin x 1) = f.linearDeriv x
state_after: case h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
⊢ ((continuousMultilinearCurryFin1 𝕜 ((i : ι) → E i) F) (f.toFormalMultilinearSeries.changeOrigin x 1)) y =
    (f.linearDeriv x) y
tactic: ext y
state_before: case h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
⊢ ((continuousMultilinearCurryFin1 𝕜 ((i : ι) → E i) F) (f.toFormalMultilinearSeries.changeOrigin x 1)) y =
    (f.linearDeriv x) y
state_after: case h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
⊢ (∑' (n : ℕ), (f.toFormalMultilinearSeries.changeOriginSeries 1 n) fun x_1 => x) (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))
tactic: rw [continuousMultilinearCurryFin1_apply, linearDeriv_apply,
      changeOrigin, FormalMultilinearSeries.sum]
state_before: case h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
⊢ (∑' (n : ℕ), (f.toFormalMultilinearSeries.changeOriginSeries 1 n) fun x_1 => x) (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))
state_after: case h.inl
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : IsEmpty ι
⊢ (∑' (n : ℕ), (f.toFormalMultilinearSeries.changeOriginSeries 1 n) fun x_1 => x) (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))

case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ (∑' (n : ℕ), (f.toFormalMultilinearSeries.changeOriginSeries 1 n) fun x_1 => x) (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))
tactic: cases isEmpty_or_nonempty ι
state_before: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ (∑' (n : ℕ), (f.toFormalMultilinearSeries.changeOriginSeries 1 n) fun x_1 => x) (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))
state_after: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ((∑ s : { s // s.card = Fintype.card ι - 1 },
          f.toFormalMultilinearSeries.changeOriginSeriesTerm 1 (Fintype.card ι - 1) ↑s ⋯)
        fun x_1 => x)
      (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))

case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ∀ (b' : ℕ), b' ≠ Fintype.card ι - 1 → ((f.toFormalMultilinearSeries.changeOriginSeries 1 b') fun x_1 => x) = 0
tactic: rw [tsum_eq_single (Fintype.card ι - 1), changeOriginSeries]
state_before: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ((∑ s : { s // s.card = Fintype.card ι - 1 },
          f.toFormalMultilinearSeries.changeOriginSeriesTerm 1 (Fintype.card ι - 1) ↑s ⋯)
        fun x_1 => x)
      (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))

case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ∀ (b' : ℕ), b' ≠ Fintype.card ι - 1 → ((f.toFormalMultilinearSeries.changeOriginSeries 1 b') fun x_1 => x) = 0
state_after: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ∀ (b' : ℕ), b' ≠ Fintype.card ι - 1 → ((f.toFormalMultilinearSeries.changeOriginSeries 1 b') fun x_1 => x) = 0

case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ((∑ s : { s // s.card = Fintype.card ι - 1 },
          f.toFormalMultilinearSeries.changeOriginSeriesTerm 1 (Fintype.card ι - 1) ↑s ⋯)
        fun x_1 => x)
      (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))
tactic: swap
state_before: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ((∑ s : { s // s.card = Fintype.card ι - 1 },
          f.toFormalMultilinearSeries.changeOriginSeriesTerm 1 (Fintype.card ι - 1) ↑s ⋯)
        fun x_1 => x)
      (Fin.snoc 0 y) =
    ∑ i : ι, f (Function.update x i (y i))
state_after: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ (∑ a : { s // s.card = Fintype.card ι - 1 },
      ((f.toFormalMultilinearSeries.changeOriginSeriesTerm 1 (Fintype.card ι - 1) ↑a ⋯) fun x_1 => x) fun x => y) =
    ∑ i : ι, f (Function.update x i (y i))
tactic: rw [sum_apply, ContinuousMultilinearMap.sum_apply, Fin.snoc_zero]
state_before: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ (∑ a : { s // s.card = Fintype.card ι - 1 },
      ((f.toFormalMultilinearSeries.changeOriginSeriesTerm 1 (Fintype.card ι - 1) ↑a ⋯) fun x_1 => x) fun x => y) =
    ∑ i : ι, f (Function.update x i (y i))
state_after: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ∑ x_1 : { s // s.card = Fintype.card ι - 1 },
      (f.toFormalMultilinearSeries (1 + (Fintype.card ι - 1))) ((↑x_1).piecewise (fun x_2 => x) fun x => y) =
    ∑ i : ι, f (Function.update x i (y i))
tactic: simp_rw [changeOriginSeriesTerm_apply]
state_before: case h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ ∑ x_1 : { s // s.card = Fintype.card ι - 1 },
      (f.toFormalMultilinearSeries (1 + (Fintype.card ι - 1))) ((↑x_1).piecewise (fun x_2 => x) fun x => y) =
    ∑ i : ι, f (Function.update x i (y i))
state_after: case h.inr.refine_1
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ Fin (Nat.succ 0 + (Fintype.card ι - Nat.succ 0)) → { s // s.card = Fintype.card ι - 1 }

case h.inr.refine_2
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
⊢ Function.Bijective ?h.inr.refine_1

case h.inr.refine_3
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ f (Function.update x i (y i)) =
    (f.toFormalMultilinearSeries (1 + (Fintype.card ι - 1)))
      ((↑((?h.inr.refine_1 ∘ ⇑(Fintype.equivFinOfCardEq ⋯)) i)).piecewise (fun x_1 => x) fun x => y)
tactic: refine (Fintype.sum_bijective (?_ ∘ Fintype.equivFinOfCardEq (Nat.add_sub_of_le
    Fintype.card_pos).symm) (.comp ?_ <| Equiv.bijective _) _ _ fun i ↦ ?_).symm
state_before: case h.inr.refine_3
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ f (Function.update x i (y i)) =
    (f.toFormalMultilinearSeries (1 + (Fintype.card ι - 1)))
      ((↑(((fun x => ⟨{x}ᶜ, ⋯⟩) ∘ ⇑(Fintype.equivFinOfCardEq ⋯)) i)).piecewise (fun x_1 => x) fun x => y)
state_after: case h.inr.refine_3
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ f (Function.update x i (y i)) =
    (domDomCongr (Fintype.equivFinOfCardEq ⋯) (f.compContinuousLinearMap ContinuousLinearMap.proj))
      (Function.update (fun x_1 => x) ((Fintype.equivFinOfCardEq ⋯) i) y)
tactic: rw [Function.comp_apply, Subtype.coe_mk, compl_singleton, piecewise_erase_univ,
    toFormalMultilinearSeries, dif_pos (Nat.add_sub_of_le Fintype.card_pos).symm]
state_before: case h.inr.refine_3
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ f (Function.update x i (y i)) =
    (domDomCongr (Fintype.equivFinOfCardEq ⋯) (f.compContinuousLinearMap ContinuousLinearMap.proj))
      (Function.update (fun x_1 => x) ((Fintype.equivFinOfCardEq ⋯) i) y)
state_after: case h.inr.refine_3
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ f (Function.update x i (y i)) = f fun i_1 => if i_1 = i then y i_1 else x i_1
tactic: simp_rw [domDomCongr_apply, compContinuousLinearMap_apply, ContinuousLinearMap.proj_apply,
    Function.update_apply, (Equiv.injective _).eq_iff, ite_apply]
state_before: case h.inr.refine_3
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ f (Function.update x i (y i)) = f fun i_1 => if i_1 = i then y i_1 else x i_1
state_after: case h.inr.refine_3.h.e_6.h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ Function.update x i (y i) = fun i_1 => if i_1 = i then y i_1 else x i_1
tactic: congr
state_before: case h.inr.refine_3.h.e_6.h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i : ι
⊢ Function.update x i (y i) = fun i_1 => if i_1 = i then y i_1 else x i_1
state_after: case h.inr.refine_3.h.e_6.h.h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i j : ι
⊢ Function.update x i (y i) j = if j = i then y j else x j
tactic: ext j
state_before: case h.inr.refine_3.h.e_6.h.h
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i j : ι
⊢ Function.update x i (y i) j = if j = i then y j else x j
state_after: case h.inr.refine_3.h.e_6.h.h.inl
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
j : ι
⊢ Function.update x j (y j) j = if j = j then y j else x j

case h.inr.refine_3.h.e_6.h.h.inr
𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E✝ : Type u
inst✝⁷ : NormedAddCommGroup E✝
inst✝⁶ : NormedSpace 𝕜 E✝
F : Type v
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
ι : Type u_2
E : ι → Type u_3
inst✝³ : (i : ι) → NormedAddCommGroup (E i)
inst✝² : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹ : Fintype ι
f : ContinuousMultilinearMap 𝕜 E F
n : ℕ∞
x : (i : ι) → E i
inst✝ : DecidableEq ι
y : (i : ι) → E i
h✝ : Nonempty ι
i j : ι
hj : j ≠ i
⊢ Function.update x i (y i) j = if j = i then y j else x j
tactic: obtain rfl | hj := eq_or_ne j i