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