case zero
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n + 1) → E
x : E
hx : x ∈ s
m : Fin (Nat.zero + 1) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.zero + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 Nat.zero (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last Nat.zero))

case succ
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last (Nat.succ n)))
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x x₀ : E
c : F
m✝ n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
hs : UniqueDiffOn 𝕜 s
hx : x ∈ s
m : Fin (n + 1) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
induction' n with n IH generalizing x
case zero
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n + 1) → E
x : E
hx : x ∈ s
m : Fin (Nat.zero + 1) → E
⊢ ↑(↑(continuousMultilinearCurryLeftEquiv 𝕜 (fun x => E) F)
          (ContinuousLinearMap.comp
            (↑(ContinuousLinearEquiv.mk
                (LinearIsometryEquiv.symm (continuousMultilinearCurryFin0 𝕜 E F)).toLinearEquiv))
            (fderivWithin 𝕜 f s x)))
      m =
    ↑(fderivWithin 𝕜 f s x) (m (last Nat.zero))
case zero
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n + 1) → E
x : E
hx : x ∈ s
m : Fin (Nat.zero + 1) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.zero + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 Nat.zero (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last Nat.zero))
rw [iteratedFDerivWithin_succ_eq_comp_left, iteratedFDerivWithin_zero_eq_comp,
  iteratedFDerivWithin_zero_apply, Function.comp_apply,
  LinearIsometryEquiv.comp_fderivWithin _ (hs x hx)]
no goals
case zero
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n + 1) → E
x : E
hx : x ∈ s
m : Fin (Nat.zero + 1) → E
⊢ ↑(↑(continuousMultilinearCurryLeftEquiv 𝕜 (fun x => E) F)
          (ContinuousLinearMap.comp
            (↑(ContinuousLinearEquiv.mk
                (LinearIsometryEquiv.symm (continuousMultilinearCurryFin0 𝕜 E F)).toLinearEquiv))
            (fderivWithin 𝕜 f s x)))
      m =
    ↑(fderivWithin 𝕜 f s x) (m (last Nat.zero))
rfl
case succ
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last (Nat.succ n)))
case succ
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last (Nat.succ n)))
let I := continuousMultilinearCurryRightEquiv' 𝕜 n E F
case succ
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last (Nat.succ n)))
case succ
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last (Nat.succ n)))
have A : ∀ y ∈ s, iteratedFDerivWithin 𝕜 n.succ f s y =
    (I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y := fun y hy ↦ by
  ext m
  rw [@IH y hy m]
  rfl
no goals
case succ
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n + 1) f s x) m =
    ↑(↑(iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last (Nat.succ n)))
calc
  (iteratedFDerivWithin 𝕜 (n + 2) f s x : (Fin (n + 2) → E) → F) m =
      (fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n.succ f s) s x : E → E[×n + 1]→L[𝕜] F) (m 0)
        (tail m) :=
    rfl
  _ = (fderivWithin 𝕜 (I ∘ iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x :
          E → E[×n + 1]→L[𝕜] F) (m 0) (tail m) := by
    rw [fderivWithin_congr A (A x hx)]
  _ = (I ∘ fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x :
          E → E[×n + 1]→L[𝕜] F) (m 0) (tail m) := by
    simp only [LinearIsometryEquiv.comp_fderivWithin _ (hs x hx)]; rfl
  _ = (fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) s x :
          E → E[×n]→L[𝕜] E →L[𝕜] F) (m 0) (init (tail m)) ((tail m) (last n)) := rfl
  _ = iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x (init m)
        (m (last (n + 1))) := by
    rw [iteratedFDerivWithin_succ_apply_left, tail_init_eq_init_tail]
    rfl
case H
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝² n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝¹ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m✝ : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
y : E
hy : y ∈ s
m : Fin (Nat.succ n) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n) f s y) m =
    ↑((↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y) m
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
y : E
hy : y ∈ s
⊢ iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
ext m
case H
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝² n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝¹ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m✝ : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
y : E
hy : y ∈ s
m : Fin (Nat.succ n) → E
⊢ ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s y) (init m)) (m (last n)) =
    ↑((↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y) m
case H
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝² n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝¹ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m✝ : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
y : E
hy : y ∈ s
m : Fin (Nat.succ n) → E
⊢ ↑(iteratedFDerivWithin 𝕜 (Nat.succ n) f s y) m =
    ↑((↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y) m
rw [@IH y hy m]
no goals
case H
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝² n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝¹ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m✝ : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
y : E
hy : y ∈ s
m : Fin (Nat.succ n) → E
⊢ ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s y) (init m)) (m (last n)) =
    ↑((↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y) m
rfl
no goals
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 (Nat.succ n) f s) s x) (m 0)) (tail m) =
    ↑(↑(fderivWithin 𝕜 (↑I ∘ iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x) (m 0)) (tail m)
rw [fderivWithin_congr A (A x hx)]
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(↑(ContinuousLinearMap.comp
              (↑(ContinuousLinearEquiv.mk (continuousMultilinearCurryRightEquiv' 𝕜 n E F).toLinearEquiv))
              (fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x))
          (m 0))
      (tail m) =
    ↑((↑(continuousMultilinearCurryRightEquiv' 𝕜 n E F) ∘
            ↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x))
          (m 0))
      (tail m)
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(↑(fderivWithin 𝕜 (↑I ∘ iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x) (m 0)) (tail m) =
    ↑((↑I ∘ ↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x)) (m 0)) (tail m)
simp only [LinearIsometryEquiv.comp_fderivWithin _ (hs x hx)]
no goals
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(↑(ContinuousLinearMap.comp
              (↑(ContinuousLinearEquiv.mk (continuousMultilinearCurryRightEquiv' 𝕜 n E F).toLinearEquiv))
              (fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x))
          (m 0))
      (tail m) =
    ↑((↑(continuousMultilinearCurryRightEquiv' 𝕜 n E F) ∘
            ↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fderivWithin 𝕜 f s) s) s x))
          (m 0))
      (tail m)
rfl
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) s x) (m 0)) (init (tail m)))
      (tail m (last n)) =
    ↑(↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) s x) (init m 0)) (init (tail m)))
      (m (last (n + 1)))
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) s x) (m 0)) (init (tail m)))
      (tail m (last n)) =
    ↑(↑(iteratedFDerivWithin 𝕜 (Nat.succ n) (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last (n + 1)))
rw [iteratedFDerivWithin_succ_apply_left, tail_init_eq_init_tail]
no goals
𝕜 : Type u
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type uE
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type uF
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type uG
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
X : Type uX
inst✝¹ : NormedAddCommGroup X
inst✝ : NormedSpace 𝕜 X
s s₁ t u : Set E
f f₁ : E → F
g : F → G
x✝ x₀ : E
c : F
m✝¹ n✝¹ : ℕ∞
p : E → FormalMultilinearSeries 𝕜 E F
n✝ : ℕ
hs : UniqueDiffOn 𝕜 s
hx✝ : x✝ ∈ s
m✝ : Fin (n✝ + 1) → E
n : ℕ
IH :
  ∀ {x : E},
    x ∈ s →
      ∀ (m : Fin (n + 1) → E),
        ↑(iteratedFDerivWithin 𝕜 (n + 1) f s x) m =
          ↑(↑(iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s x) (init m)) (m (last n))
x : E
hx : x ∈ s
m : Fin (Nat.succ n + 1) → E
I : ContinuousMultilinearMap 𝕜 (fun i => E) (E →L[𝕜] F) ≃ₗᵢ[𝕜] ContinuousMultilinearMap 𝕜 (fun i => E) F :=
  continuousMultilinearCurryRightEquiv' 𝕜 n E F
A :
  ∀ (y : E),
    y ∈ s →
      iteratedFDerivWithin 𝕜 (Nat.succ n) f s y = (↑I ∘ iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) y
⊢ ↑(↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) s x) (m 0)) (init (tail m)))
      (tail m (last n)) =
    ↑(↑(↑(fderivWithin 𝕜 (iteratedFDerivWithin 𝕜 n (fun y => fderivWithin 𝕜 f s y) s) s x) (init m 0)) (init (tail m)))
      (m (last (n + 1)))
rfl