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)
⊢ (orderedIteratedFPiDeriv 𝕜 js f x) m =
    ((orderedIteratedFPiDeriv 𝕜 (Fin.init js) (fpideriv 𝕜 (js (Fin.last (Nat.succ n))) f) x) (Fin.init m))
      (m (Fin.last (Nat.succ n)))
Tactic:
have A (y) : orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f y =
    (continuousMultilinearCurryRightEquiv 𝕜 (fun i : Fin (n + 1) => M (js (Fin.succ i))) F ∘
      orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f)) y
Proof state after:
case A
ι : 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)
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

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
⊢ (orderedIteratedFPiDeriv 𝕜 js f x) m =
    ((orderedIteratedFPiDeriv 𝕜 (Fin.init js) (fpideriv 𝕜 (js (Fin.last (Nat.succ n))) f) x) (Fin.init m))
      (m (Fin.last (Nat.succ n)))