internlm/Lean-Github huggingface dataset:
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
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 : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ (fpideriv 𝕜 (js 0) (orderedIteratedPiDeriv (Fin.tail js) f) x) 1 =
    ((fpideriv 𝕜 (js 0) (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f) x) 1) 1
Tactic:
rw [fpideriv_apply, fpideriv_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 : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ (fderiv 𝕜 (fun y => orderedIteratedPiDeriv (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) 1 =
    ((fderiv 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) 1) 1
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
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 : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ (fderiv 𝕜 (fun y => orderedIteratedPiDeriv (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) 1 =
    ((fderiv 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) 1) 1
Tactic:
simp_rw [ih]
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 : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ (fderiv 𝕜 (fun y => (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) 1) (x (js 0))) 1 =
    ((fderiv 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) 1) 1
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
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 : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ (fderiv 𝕜 (fun y => (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) 1) (x (js 0))) 1 =
    ((fderiv 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))) 1) 1
Tactic:
rw [fderiv_continuousMultilinear_apply_const_apply]
Proof state after:
case succ.hc
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (fun y => orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f (Function.update x (js 0) y)) (x (js 0))
Tactic:
change DifferentiableAt 𝕜 (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f ∘ Function.update x (js 0)) _
Proof state after:
case succ.hc
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f ∘ Function.update x (js 0)) (x (js 0))
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f ∘ Function.update x (js 0)) (x (js 0))
Tactic:
refine DifferentiableAt.comp _ ?_ ?_
Proof state after:
case succ.hc.refine_1
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f) (Function.update x (js 0) (x (js 0)))

case succ.hc.refine_2
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (Function.update x (js 0)) (x (js 0))
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc.refine_1
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f) (Function.update x (js 0) (x (js 0)))

case succ.hc.refine_2
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (Function.update x (js 0)) (x (js 0))
Tactic:
. refine hf.differentiableAt_orderedIteratedFPiDeriv ?_
  norm_cast
  exact Nat.lt_succ_self n
Proof state after:
case succ.hc.refine_2
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (Function.update x (js 0)) (x (js 0))
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc.refine_2
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (Function.update x (js 0)) (x (js 0))
Tactic:
. exact differentiable_update' x (js 0) _
Proof state after:
no goals
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc.refine_1
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f) (Function.update x (js 0) (x (js 0)))
Tactic:
refine hf.differentiableAt_orderedIteratedFPiDeriv ?_
Proof state after:
case succ.hc.refine_1
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ ↑n < ↑(Nat.succ n)
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc.refine_1
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ ↑n < ↑(Nat.succ n)
Tactic:
norm_cast
Proof state after:
case succ.hc.refine_1
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ n < Nat.succ n
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc.refine_1
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ n < Nat.succ n
Tactic:
exact Nat.lt_succ_self n
Proof state after:
no goals
Theorem: ContDiff.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv
Proof state before:
case succ.hc.refine_2
ι : 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 𝕜 (↑(Nat.succ n)) f
js : Fin (Nat.succ n) → ι
x : ι → 𝕜
ih : ∀ {js : Fin n → ι} {x : ι → 𝕜}, orderedIteratedPiDeriv js f x = (orderedIteratedFPiDeriv 𝕜 js f x) 1
⊢ DifferentiableAt 𝕜 (Function.update x (js 0)) (x (js 0))
Tactic:
exact differentiable_update' x (js 0) _
Proof state after:
no goals
Theorem: ContDiff.orderedIteratedPiDeriv_eq_iteratedFDeriv_apply
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
f : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑n) f
js : Fin n → ι
x : ι → 𝕜
⊢ orderedIteratedPiDeriv js f x = (iteratedFDeriv 𝕜 n f x) fun i => Pi.single (js i) 1
Tactic:
rw [hf.orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv]
Proof state after:
ι : 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 : ι → 𝕜
⊢ (orderedIteratedFPiDeriv 𝕜 js f x) 1 = (iteratedFDeriv 𝕜 n f x) fun i => Pi.single (js i) 1
Theorem: ContDiff.orderedIteratedPiDeriv_eq_iteratedFDeriv_apply
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
f : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑n) f
js : Fin n → ι
x : ι → 𝕜
⊢ (orderedIteratedFPiDeriv 𝕜 js f x) 1 = (iteratedFDeriv 𝕜 n f x) fun i => Pi.single (js i) 1
Tactic:
rw [hf.orderedIteratedFPiDeriv_apply_eq_iteratedFDeriv_apply_single (le_refl _)]
Proof state after:
ι : 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 : ι → 𝕜
⊢ ((iteratedFDeriv 𝕜 n f x) fun k => Pi.single (js k) (1 k)) = (iteratedFDeriv 𝕜 n f x) fun i => Pi.single (js i) 1
Theorem: ContDiff.orderedIteratedPiDeriv_eq_iteratedFDeriv_apply
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
f : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
hf : ContDiff 𝕜 (↑n) f
js : Fin n → ι
x : ι → 𝕜
⊢ ((iteratedFDeriv 𝕜 n f x) fun k => Pi.single (js k) (1 k)) = (iteratedFDeriv 𝕜 n f x) fun i => Pi.single (js i) 1
Tactic:
rfl
Proof state after:
no goals
Theorem: ContDiff.differentiable_orderedIteratedPiDeriv
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
f : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
N : ℕ∞
hn : ↑n < N
hf : ContDiff 𝕜 N f
js : Fin n → ι
⊢ Differentiable 𝕜 (orderedIteratedPiDeriv js f)
Tactic:
conv =>
  arg 2; intro x
  rw [(hf.of_le (le_of_lt hn)).orderedIteratedPiDeriv_eq_orderedIteratedFPiDeriv]
Proof state after:
ι : 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 : ℕ
N : ℕ∞
hn : ↑n < N
hf : ContDiff 𝕜 N f
js : Fin n → ι
⊢ Differentiable 𝕜 fun x => (orderedIteratedFPiDeriv 𝕜 js f x) 1
Theorem: ContDiff.differentiable_orderedIteratedPiDeriv
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
f : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
N : ℕ∞
hn : ↑n < N
hf : ContDiff 𝕜 N f
js : Fin n → ι
⊢ Differentiable 𝕜 fun x => (orderedIteratedFPiDeriv 𝕜 js f x) 1
Tactic:
change Differentiable 𝕜 fun x => ContinuousMultilinearMap.apply 𝕜 _ _ 1 (orderedIteratedFPiDeriv 𝕜 js f x)
Proof state after:
ι : 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 : ℕ
N : ℕ∞
hn : ↑n < N
hf : ContDiff 𝕜 N f
js : Fin n → ι
⊢ Differentiable 𝕜 fun x => (ContinuousMultilinearMap.apply 𝕜 (fun i => 𝕜) F 1) (orderedIteratedFPiDeriv 𝕜 js f x)
Theorem: ContDiff.differentiable_orderedIteratedPiDeriv
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
f : (ι → 𝕜) → F
f' : (ι → 𝕜) → FormalMultilinearSeries 𝕜 (ι → 𝕜) F
n : ℕ
N : ℕ∞
hn : ↑n < N
hf : ContDiff 𝕜 N f
js : Fin n → ι
⊢ Differentiable 𝕜 fun x => (ContinuousMultilinearMap.apply 𝕜 (fun i => 𝕜) F 1) (orderedIteratedFPiDeriv 𝕜 js f x)
Tactic:
exact (differentiable_const _).clm_apply (hf.differentiable_orderedIteratedFPiDeriv hn)
Proof state after:
no goals