internlm/Lean-Github huggingface dataset:
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
⊢ (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:
rw [orderedIteratedFPiDeriv_succ_eq_comp_left]
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
⊢ ((⇑(continuousMultilinearCurryLeftEquiv 𝕜 (fun i => M (js i)) F) ∘
          fpideriv 𝕜 (js 0) (orderedIteratedFPiDeriv 𝕜 (Fin.tail 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)))
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
⊢ ((⇑(continuousMultilinearCurryLeftEquiv 𝕜 (fun i => M (js i)) F) ∘
          fpideriv 𝕜 (js 0) (orderedIteratedFPiDeriv 𝕜 (Fin.tail 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:
rw [Function.comp_apply, continuousMultilinearCurryLeftEquiv_apply]
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
⊢ ((fpideriv 𝕜 (js 0) (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f) x) (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)))
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
⊢ ((fpideriv 𝕜 (js 0) (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f) x) (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:
rw [fpideriv_def]
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
⊢ (((fun x => fderiv 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) x)
        (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)))
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
⊢ (((fun x => fderiv 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) x)
        (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:
simp
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 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) 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)))
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 => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) 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:
simp_rw [A]
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 𝕜
          (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)))
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 𝕜
          (⇑(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)))
Tactic:
rw [LinearIsometryEquiv.comp_fderiv]
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
⊢ ((ContinuousLinearMap.comp
          (↑(ContinuousLinearEquiv.mk
              (continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F).toLinearEquiv))
          (fderiv 𝕜
            (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)))
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
⊢ ((ContinuousLinearMap.comp
          (↑(ContinuousLinearEquiv.mk
              (continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F).toLinearEquiv))
          (fderiv 𝕜
            (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)))
Tactic:
rfl
Proof state after:
no goals
Theorem: orderedIteratedFPiDeriv_succ_apply_right
Proof state before:
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
Tactic:
ext m
Proof state after:
case A.H
ι : 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
m : (i : Fin (n + 1)) → M (Fin.tail js i)
⊢ (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f y) m =
    ((⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
          orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f))
        y)
      m
Theorem: orderedIteratedFPiDeriv_succ_apply_right
Proof state before:
case A.H
ι : 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
m : (i : Fin (n + 1)) → M (Fin.tail js i)
⊢ (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f y) m =
    ((⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
          orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f))
        y)
      m
Tactic:
rw [ih]
Proof state after:
case A.H
ι : 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
m : (i : Fin (n + 1)) → M (Fin.tail js i)
⊢ ((orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (Fin.tail js (Fin.last n)) f) y) (Fin.init m))
      (m (Fin.last n)) =
    ((⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
          orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f))
        y)
      m
Theorem: orderedIteratedFPiDeriv_succ_apply_right
Proof state before:
case A.H
ι : 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
m : (i : Fin (n + 1)) → M (Fin.tail js i)
⊢ ((orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (Fin.tail js (Fin.last n)) f) y) (Fin.init m))
      (m (Fin.last n)) =
    ((⇑(continuousMultilinearCurryRightEquiv 𝕜 (fun i => M (js (Fin.succ i))) F) ∘
          orderedIteratedFPiDeriv 𝕜 (Fin.init (Fin.tail js)) (fpideriv 𝕜 (js (Fin.last (n + 1))) f))
        y)
      m
Tactic:
rfl
Proof state after:
no goals