internlm/Lean-Github huggingface dataset:
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
ih :
  HasFTaylorSeriesUpTo (↑n + 1) f f' →
    ∀ {js : Fin n → ι} {x : (i : ι) → M i},
      HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
        (ContinuousLinearMap.comp
          (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
          (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
        x
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpToOn (↑(Nat.succ n)) f f' Set.univ
hf_diff :
  ∀ x ∈ Set.univ,
    HasFDerivWithinAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n))))
      Set.univ x
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
⊢ HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Tactic:
rw [hasFTaylorSeriesUpToOn_univ_iff] at hf_pred
Proof state after:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
ih :
  HasFTaylorSeriesUpTo (↑n + 1) f f' →
    ∀ {js : Fin n → ι} {x : (i : ι) → M i},
      HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
        (ContinuousLinearMap.comp
          (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
          (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
        x
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
hf_diff :
  ∀ x ∈ Set.univ,
    HasFDerivWithinAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n))))
      Set.univ x
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
⊢ HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
ih :
  HasFTaylorSeriesUpTo (↑n + 1) f f' →
    ∀ {js : Fin n → ι} {x : (i : ι) → M i},
      HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
        (ContinuousLinearMap.comp
          (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
          (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
        x
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
hf_diff :
  ∀ x ∈ Set.univ,
    HasFDerivWithinAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n))))
      Set.univ x
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
⊢ HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Tactic:
simp at hf_diff
Proof state after:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
ih :
  HasFTaylorSeriesUpTo (↑n + 1) f f' →
    ∀ {js : Fin n → ι} {x : (i : ι) → M i},
      HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
        (ContinuousLinearMap.comp
          (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
          (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
        x
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
⊢ HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
ih :
  HasFTaylorSeriesUpTo (↑n + 1) f f' →
    ∀ {js : Fin n → ι} {x : (i : ι) → M i},
      HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
        (ContinuousLinearMap.comp
          (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
          (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
        x
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
⊢ HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Tactic:
specialize @ih hf_pred
Proof state after:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Tactic:
rw [orderedIteratedFPiDeriv_succ_eq_comp_left]
Proof state after:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt
    (⇑(continuousMultilinearCurryLeftEquiv 𝕜 (fun i => M (js i)) F) ∘
      fpideriv 𝕜 (js 0) (orderedIteratedFPiDeriv 𝕜 (Fin.tail js) f))
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt
    (fun y =>
      (⇑(continuousMultilinearCurryLeftEquiv 𝕜 (fun i => M (js i)) F) ∘ fun x =>
          ContinuousMultilinearMap.curryLeft
            (ContinuousMultilinearMap.compContinuousLinearMap (f' x (n + 1)) fun i =>
              ContinuousLinearMap.single (js i)))
        y)
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Tactic:
simp
Proof state after:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt
    (fun y =>
      ContinuousMultilinearMap.compContinuousLinearMap (f' y (n + 1)) fun i => ContinuousLinearMap.single (js i))
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt
    (fun y =>
      ContinuousMultilinearMap.compContinuousLinearMap (f' y (n + 1)) fun i => ContinuousLinearMap.single (js i))
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Tactic:
simp_rw [← ContinuousMultilinearMap.compContinuousLinearMapL_apply]
Proof state after:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt
    (fun y =>
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i)) (f' y (n + 1)))
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ HasFDerivAt
    (fun y =>
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i)) (f' y (n + 1)))
    (ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
    x
Tactic:
refine ((ContinuousLinearMap.hasFDerivAt _).comp _ (hf_diff _)).congr_fderiv ?_
Proof state after:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) =
    ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1)))
Theorem: HasFTaylorSeriesUpTo.hasFDerivAt_orderedIteratedFPiDeriv'
Proof state before:
case succ.intro.intro
ι : 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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
⊢ ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) =
    ContinuousLinearMap.comp
      (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
      (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1)))
Tactic:
ext m v
Proof state after:
case succ.intro.intro.h.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
f' : ((i : ι) → M i) → FormalMultilinearSeries 𝕜 ((i : ι) → M i) F
n : ℕ
js : Fin (Nat.succ n) → ι
x : (i : ι) → M i
hf_pred : HasFTaylorSeriesUpTo (↑(Nat.succ n)) f f'
right✝ : ContinuousOn (fun x => f' x (Nat.succ n + 1)) Set.univ
hf_diff :
  ∀ (x : (i : ι) → M i),
    HasFDerivAt (fun y => f' y (Nat.succ n)) (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))) x
ih :
  ∀ {js : Fin n → ι} {x : (i : ι) → M i},
    HasFDerivAt (orderedIteratedFPiDeriv 𝕜 js f)
      (ContinuousLinearMap.comp
        (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
        (ContinuousMultilinearMap.curryLeft (f' x (n + 1))))
      x
m : (i : ι) → M i
v : (i : Fin (Nat.succ n)) → M (js i)
⊢ ((ContinuousLinearMap.comp
          (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
          (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ (Nat.succ n)))))
        m)
      v =
    ((ContinuousLinearMap.comp
          (ContinuousMultilinearMap.compContinuousLinearMapL fun i => ContinuousLinearMap.single (js i))
          (ContinuousMultilinearMap.curryLeft (f' x (Nat.succ n + 1))))
        m)
      v