awhecmu/canonical-drafter-extract-mathlib huggingface dataset:
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hf : AnalyticOn 𝕜 f s
h : ContDiffOn 𝕜 (F := E →L[𝕜] F) ω (fun (y : E) ↦ fderivWithin 𝕜 f s y) s
suffices : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ω 1) f s
⊢ ContDiffOn 𝕜 n f s

Tactic:
suffices ContDiffOn 𝕜 (ω + 1) f s from this.of_le le_top
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hf : AnalyticOn 𝕜 f s
h : ContDiffOn 𝕜 (F := E →L[𝕜] F) ω (fun (y : E) ↦ fderivWithin 𝕜 f s y) s
⊢ ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ω 1) f s

Tactic:
contDiffOn_succ_of_fderivWithin hf.differentiableOn (fun _ ↦ hf) h

Premises used: contDiffOn_succ_of_fderivWithin, AnalyticOn.differentiableOn
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hf : AnalyticOn 𝕜 f s
h : ContDiffOn 𝕜 (F := E →L[𝕜] F) ω (fun (y : E) ↦ fderivWithin 𝕜 f s y) s
⊢ ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ω 1) f s

Tactic:
exact contDiffOn_succ_of_fderivWithin hf.differentiableOn (fun _ ↦ hf) h

Premises used: contDiffOn_succ_of_fderivWithin, AnalyticOn.differentiableOn
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
⊢ ContDiffOn 𝕜 (n + 1) f s ↔
    DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s

Tactic:
⟨fun H => ?_, fun h => contDiffOn_succ_of_fderivWithin h.1 h.2.1 h.2.2⟩

Premises used: contDiffOn_succ_of_fderivWithin, And.right, And.left, Iff.intro
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
refine :
  ∀ (H : ContDiffOn 𝕜 (n + 1) f s),
    DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s
⊢ ContDiffOn 𝕜 (n + 1) f s ↔
    DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s

Tactic:
refine ⟨fun H => ?_, fun h => contDiffOn_succ_of_fderivWithin h.1 h.2.1 h.2.2⟩
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
⊢ n + 1 ≠ 0

Tactic:
simp
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
refine_1 : n = ω → AnalyticOn 𝕜 f s
refine_2 : ∀ (x : E) (hx : x ∈ s), ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s x
⊢ DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s

Tactic:
refine ⟨H.differentiableOn (by simp), ?_, fun x hx => ?_⟩
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ω 1) f s
⊢ AnalyticOn 𝕜 f s

Tactic:
H.analyticOn

Premises used: ContDiffOn.analyticOn
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ω 1) f s
⊢ AnalyticOn 𝕜 f s

Tactic:
exact H.analyticOn

Premises used: ContDiffOn.analyticOn
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
⊢ HAdd.hAdd (α := ℕ∞ω) (↑m : ℕ∞ω) 1 ≤ n + 1

Tactic:
gcongr
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
rcases :
  ∀ (u : Set E) (hu : u ∈ 𝓝[insert x s] x) (f' : E → E →L[𝕜] F) (hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x)
    (hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x

Tactic:
rcases (contDiffWithinAt_succ_iff_hasFDerivWithinAt (n := m) (ne_of_beq_false rfl)).1
      (H.of_le (by gcongr) x hx) with ⟨u, hu, -, f', hff', hf'⟩

Premises used: ne_of_beq_false, ContDiffOn.of_le, Iff.mp, rfl, contDiffWithinAt_succ_iff_hasFDerivWithinAt
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
rcases :
  ∀ (o : Set E) (o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o) (xo : x ∈ o)
    (ho : o ∩ insert x s ⊆ u), ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x

Tactic:
rcases mem_nhdsWithin.1 hu with ⟨o, o_open, xo, ho⟩

Premises used: mem_nhdsWithin, Iff.mp
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : o ∩ insert x s ⊆ u
⊢ s ∩ o ⊆ u

Tactic:
rw [inter_comm, insert_eq_of_mem hx] at ho

Premises used: Set.insert_eq_of_mem, Set.inter_comm
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
⊢ ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' (s ∩ o) x

Tactic:
have := hf'.mono ho
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' (s ∩ o) x
⊢ ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x

Tactic:
rw [contDiffWithinAt_inter' (mem_nhdsWithin_of_mem_nhds (IsOpen.mem_nhds o_open xo))] at this

Premises used: contDiffWithinAt_inter', mem_nhdsWithin_of_mem_nhds, IsOpen.mem_nhds
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x
apply : (fun (y : E) ↦ fderivWithin 𝕜 f s y) =ᶠ[𝓝[s] x] f'
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x

Tactic:
apply this.congr_of_eventuallyEq_of_mem _ hx

Premises used: ContDiffWithinAt.congr_of_eventuallyEq_of_mem
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x
⊢ o ∩ s ∈ 𝓝[s] x

Tactic:
have : o ∩ s ∈ 𝓝[s] x := mem_nhdsWithin.2 ⟨o, o_open, xo, Subset.refl _⟩
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this_1 : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x
this : o ∩ s ∈ 𝓝[s] x
⊢ s ∩ o ∈ 𝓝[s] x

Tactic:
rw [inter_comm] at this

Premises used: Set.inter_comm
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this_1 : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x
this : s ∩ o ∈ 𝓝[s] x
⊢ (fun (y : E) ↦ fderivWithin 𝕜 f s y) =ᶠ[𝓝[s] x] f'

Tactic:
Filter.eventuallyEq_of_mem this fun y hy => ?_

Premises used: Filter.eventuallyEq_of_mem
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this_1 : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x
this : s ∩ o ∈ 𝓝[s] x
refine : ∀ (y : E) (hy : y ∈ s ∩ o), fderivWithin 𝕜 f s y = f' y
⊢ (fun (y : E) ↦ fderivWithin 𝕜 f s y) =ᶠ[𝓝[s] x] f'

Tactic:
refine Filter.eventuallyEq_of_mem this fun y hy => ?_

Premises used: Filter.eventuallyEq_of_mem
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this_1 : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x
this : s ∩ o ∈ 𝓝[s] x
y : E
hy : y ∈ s ∩ o
⊢ fderivWithin 𝕜 f (s ∩ o) y = f' y

Tactic:
have A : fderivWithin 𝕜 f (s ∩ o) y = f' y :=
      ((hff' y (ho hy)).mono ho).fderivWithin (hs.inter o_open y hy)
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
m : ℕ
hm : (↑m : ℕ∞ω) ≤ n
u : Set E
hu : u ∈ 𝓝[insert x s] x
f' : E → E →L[𝕜] F
hff' : ∀ x ∈ u, HasFDerivWithinAt f (f' x) u x
hf' : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' u x
o : Set E
o_open : IsOpen[PseudoMetricSpace.toUniformSpace.toTopologicalSpace] o
xo : x ∈ o
ho : s ∩ o ⊆ u
this_1 : ContDiffWithinAt 𝕜 (↑m : ℕ∞ω) f' s x
this : s ∩ o ∈ 𝓝[s] x
y : E
hy : y ∈ s ∩ o
A : fderivWithin 𝕜 f (s ∩ o) y = f' y
rwa rwa₁ rwa₂ rwa₃ : ∀ (A : fderivWithin 𝕜 f s y = f' y), fderivWithin 𝕜 f s y = f' y
⊢ fderivWithin 𝕜 f s y = f' y

Tactic:
rwa [fderivWithin_inter (o_open.mem_nhds hy.2)] at A

Premises used: And.right, IsOpen.mem_nhds, fderivWithin_inter
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
⊢ ∀ (m : ℕ) (hm : (↑m : ℕ∞ω) ≤ n),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x

Tactic:
have A (m : ℕ) (hm : m ≤ n) : ContDiffWithinAt 𝕜 m (fun y => fderivWithin 𝕜 f s y) s x := by
    rcases (contDiffWithinAt_succ_iff_hasFDerivWithinAt (n := m) (ne_of_beq_false rfl)).1
      (H.of_le (by gcongr) x hx) with ⟨u, hu, -, f', hff', hf'⟩
    rcases mem_nhdsWithin.1 hu with ⟨o, o_open, xo, ho⟩
    rw [inter_comm, insert_eq_of_mem hx] at ho
    have := hf'.mono ho
    rw [contDiffWithinAt_inter' (mem_nhdsWithin_of_mem_nhds (IsOpen.mem_nhds o_open xo))] at this
    apply this.congr_of_eventuallyEq_of_mem _ hx
    have : o ∩ s ∈ 𝓝[s] x := mem_nhdsWithin.2 ⟨o, o_open, xo, Subset.refl _⟩
    rw [inter_comm] at this
    refine Filter.eventuallyEq_of_mem this fun y hy => ?_
    have A : fderivWithin 𝕜 f (s ∩ o) y = f' y :=
      ((hff' y (ho hy)).mono ho).fderivWithin (hs.inter o_open y hy)
    rwa [fderivWithin_inter (o_open.mem_nhds hy.2)] at A
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
x : E
hx : x ∈ s
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ω 1) f s
A :
  ∀ (m : ℕ) (hm : LE.le (α := ℕ∞ω) (↑m : ℕ∞ω) ω),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) ω (fderivWithin 𝕜 f s) s x

Tactic:
(H.analyticOn.fderivWithin hs).contDiffOn hs (n := ω) x hx

Premises used: AnalyticOn.fderivWithin, AnalyticOn.contDiffOn, ContDiffOn.analyticOn
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
x : E
hx : x ∈ s
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ω 1) f s
A :
  ∀ (m : ℕ) (hm : LE.le (α := ℕ∞ω) (↑m : ℕ∞ω) ω),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) ω (fderivWithin 𝕜 f s) s x

Tactic:
exact (H.analyticOn.fderivWithin hs).contDiffOn hs (n := ω) x hx

Premises used: AnalyticOn.fderivWithin, AnalyticOn.contDiffOn, ContDiffOn.analyticOn
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
x : E
hx : x ∈ s
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ∞ 1) f s
A :
  ∀ (m : ℕ) (hm : LE.le (α := ℕ∞ω) (↑m : ℕ∞ω) ∞),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) ∞ (fderivWithin 𝕜 f s) s x

Tactic:
contDiffWithinAt_infty.2 (fun m ↦ A m (mod_cast le_top))

Premises used: Iff.mpr, WithTop.coe_le_coe._simp_1, cast, contDiffWithinAt_infty, le_top, Eq.symm
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
x : E
hx : x ∈ s
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) ∞ 1) f s
A :
  ∀ (m : ℕ) (hm : LE.le (α := ℕ∞ω) (↑m : ℕ∞ω) ∞),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) ∞ (fderivWithin 𝕜 f s) s x

Tactic:
exact contDiffWithinAt_infty.2 (fun m ↦ A m (mod_cast le_top))

Premises used: Iff.mpr, WithTop.coe_le_coe._simp_1, cast, contDiffWithinAt_infty, le_top, Eq.symm
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n_1 : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
x : E
hx : x ∈ s
n : ℕ
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) (↑n : ℕ∞ω) 1) f s
A :
  ∀ (m : ℕ) (hm : LE.le (α := ℕ∞ω) (↑m : ℕ∞ω) (↑n : ℕ∞ω)),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑n : ℕ∞ω) (fderivWithin 𝕜 f s) s x

Tactic:
A n le_rfl

Premises used: le_rfl
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n_1 : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
x : E
hx : x ∈ s
n : ℕ
H : ContDiffOn 𝕜 (HAdd.hAdd (α := ℕ∞ω) (↑n : ℕ∞ω) 1) f s
A :
  ∀ (m : ℕ) (hm : LE.le (α := ℕ∞ω) (↑m : ℕ∞ω) (↑n : ℕ∞ω)),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑n : ℕ∞ω) (fderivWithin 𝕜 f s) s x

Tactic:
exact A n le_rfl

Premises used: le_rfl
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
H : ContDiffOn 𝕜 (n + 1) f s
x : E
hx : x ∈ s
A :
  ∀ (m : ℕ) (hm : (↑m : ℕ∞ω) ≤ n),
    ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) (↑m : ℕ∞ω) (fun (y : E) ↦ fderivWithin 𝕜 f s y) s x
⊢ ContDiffWithinAt 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s x

Tactic:
match n with
  | ω => exact (H.analyticOn.fderivWithin hs).contDiffOn hs (n := ω) x hx
  | ∞ => exact contDiffWithinAt_infty.2 (fun m ↦ A m (mod_cast le_top))
  | (n : ℕ) => exact A n le_rfl
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
rw :
  DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s ↔
    (n = ω → AnalyticOn 𝕜 f s) ∧ ∃ (f' : E → E →L[𝕜] F), ContDiffOn 𝕜 n f' s ∧ ∀ x ∈ s, HasFDerivWithinAt f (f' x) s x
⊢ ContDiffOn 𝕜 (n + 1) f s ↔
    (n = ω → AnalyticOn 𝕜 f s) ∧ ∃ (f' : E → E →L[𝕜] F), ContDiffOn 𝕜 n f' s ∧ ∀ x ∈ s, HasFDerivWithinAt f (f' x) s x

Tactic:
rw [contDiffOn_succ_iff_fderivWithin hs]

Premises used: contDiffOn_succ_iff_fderivWithin
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
⊢ DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s ↔
    (n = ω → AnalyticOn 𝕜 f s) ∧ ∃ (f' : E → E →L[𝕜] F), ContDiffOn 𝕜 n f' s ∧ ∀ x ∈ s, HasFDerivWithinAt f (f' x) s x

Tactic:
⟨fun h => ⟨h.2.1, fderivWithin 𝕜 f s, h.2.2,
    fun x hx => (h.1 x hx).hasFDerivWithinAt⟩, fun ⟨f_an, h⟩ => ?_⟩

Premises used: ContDiffOn, fderivWithin, And, And.right, And.left, And.intro, DifferentiableOn, Iff.intro, Exists.intro, _private.0.contDiffOn_succ_iff_hasFDerivWithinAt_of_uniqueDiffOn.match_1, DifferentiableWithinAt.hasFDerivWithinAt
-- Module: Mathlib.Analysis.Calculus.ContDiff.Defs
Goal:
𝕜 : Type u
inst : NontriviallyNormedField 𝕜
E : Type uE
inst_1 : NormedAddCommGroup E
inst_2 : NormedSpace 𝕜 E
F : Type uF
inst_3 : NormedAddCommGroup F
inst_4 : NormedSpace 𝕜 F
s : Set E
f : E → F
n : ℕ∞ω
hs : UniqueDiffOn 𝕜 s
refine :
  ((n = ω → AnalyticOn 𝕜 f s) ∧ ∃ (f' : E → E →L[𝕜] F), ContDiffOn 𝕜 n f' s ∧ ∀ x ∈ s, HasFDerivWithinAt f (f' x) s x) →
    ∀ (f_an : n = ω → AnalyticOn 𝕜 f s)
      (h : ∃ (f' : E → E →L[𝕜] F), ContDiffOn 𝕜 n f' s ∧ ∀ x ∈ s, HasFDerivWithinAt f (f' x) s x),
      DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s
⊢ DifferentiableOn 𝕜 f s ∧ (n = ω → AnalyticOn 𝕜 f s) ∧ ContDiffOn 𝕜 (F := E →L[𝕜] F) n (fderivWithin 𝕜 f s) s ↔
    (n = ω → AnalyticOn 𝕜 f s) ∧ ∃ (f' : E → E →L[𝕜] F), ContDiffOn 𝕜 n f' s ∧ ∀ x ∈ s, HasFDerivWithinAt f (f' x) s x

Tactic:
refine ⟨fun h => ⟨h.2.1, fderivWithin 𝕜 f s, h.2.2,
    fun x hx => (h.1 x hx).hasFDerivWithinAt⟩, fun ⟨f_an, h⟩ => ?_⟩