induction n generalizing x with
| zero => rfl
| succ n ih =>
  specialize @ih hf.of_succ
  rw [orderedIteratedPiDeriv_succ_left, orderedIteratedFPiDeriv_succ_apply_left]
  rw [← fpideriv_pideriv]
  simp
  change _ = ((fpideriv 𝕜 (js 0) (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f) x) 1) 1
  rw [fpideriv_apply, fpideriv_apply]
  simp_rw [ih]
  rw [fderiv_continuousMultilinear_apply_const_apply]
  change DifferentiableAt 𝕜 (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f ∘ Function.update x (js 0)) _
  refine DifferentiableAt.comp _ ?_ ?_
  . refine hf.differentiableAt_orderedIteratedFPiDeriv ?_
    norm_cast
    exact Nat.lt_succ_self n
  . exact differentiable_update' x (js 0) _
ι : Type u_1
𝕜 : Type u_2
inst✝⁸ : Fintype ι
inst✝⁷ : DecidableEq ι
inst✝⁶ : NontriviallyNormedField 𝕜
E : Type u_3
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
M : ι → Type u_4
inst✝³ : (i : ι) → NormedAddCommGroup (M i)
inst✝² : (i : ι) → NormedSpace 𝕜 (M i)
F : Type u_5
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑n) f
js : Fin n → ι
x : ι → 𝕜
⊢ orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
no goals