Theorem: orderedIteratedFPiDeriv_succ_apply_right
Proof state before:
case succ
ι : 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 : ((i : ι) → M i) → F
n : ℕ
ih :
  ∀ {js : Fin (n + 1) → ι} {x : (i : ι) → M i} {m : (i : Fin (n + 1)) → M (js i)},
    (orderedIteratedFPiDeriv 𝕜 js f x) m =
      ((orderedIteratedFPiDeriv 𝕜 (Fin.init js) (fpideriv 𝕜 (js (Fin.last n)) f) x) (Fin.init m)) (m (Fin.last n))
js : Fin (Nat.succ n + 1) → ι
x : (i : ι) → M i
m : (i : Fin (Nat.succ n + 1)) → M (js i)
A :
  ∀ (y : (i : ι) → M i),
    orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f y =
      (⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
          orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f))
        y
⊢ ((fderiv 𝕜
          (fun y =>
            (⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
                orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f))
              (Function.update x (js 0) y))
          (x (js 0)))
        (m 0))
      (Fin.tail m) =
    ((orderedIteratedFPiDeriv 𝕜 (Fin.init js) (fpideriv 𝕜 (js (Fin.last (Nat.succ n))) f) x) (Fin.init m))
      (m (Fin.last (Nat.succ n)))
Tactic:
change fderiv 𝕜 (
  ⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
  (orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f) ∘ Function.update x (js 0)))
  _ _ _ = _
Proof state after:
case succ
ι : 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 : ((i : ι) → M i) → F
n : ℕ
ih :
  ∀ {js : Fin (n + 1) → ι} {x : (i : ι) → M i} {m : (i : Fin (n + 1)) → M (js i)},
    (orderedIteratedFPiDeriv 𝕜 js f x) m =
      ((orderedIteratedFPiDeriv 𝕜 (Fin.init js) (fpideriv 𝕜 (js (Fin.last n)) f) x) (Fin.init m)) (m (Fin.last n))
js : Fin (Nat.succ n + 1) → ι
x : (i : ι) → M i
m : (i : Fin (Nat.succ n + 1)) → M (js i)
A :
  ∀ (y : (i : ι) → M i),
    orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f y =
      (⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
          orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f))
        y
⊢ ((fderiv 𝕜
          (⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
            orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f) ∘
              Function.update x (js 0))
          (x (js 0)))
        (m 0))
      (Fin.tail m) =
    ((orderedIteratedFPiDeriv 𝕜 (Fin.init js) (fpideriv 𝕜 (js (Fin.last (Nat.succ n))) f) x) (Fin.init m))
      (m (Fin.last (Nat.succ n)))