-- Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean
theorem uniformCauchySeqOn_ball_of_deriv {r : ℝ} (hf' : UniformCauchySeqOn f' l (Metric.ball x r))
    (hf : ∀ n : ι, ∀ y : 𝕜, y ∈ Metric.ball x r → HasDerivAt (f n) (f' n y) y)
    (hfg : Cauchy (map (fun n => f n x) l)) : UniformCauchySeqOn f l (Metric.ball x r)

Proof state:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf'✝ : UniformCauchySeqOnFilter f' l (𝓟 (Metric.ball x r))
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
hf' : UniformCauchySeqOn (fun n z => ContinuousLinearMap.smulRight 1 (f' n z)) l (Metric.ball x r)
⊢ UniformCauchySeqOn f l (Metric.ball x r)

Tactic:
exact uniformCauchySeqOn_ball_of_fderiv hf' hf hfg

Result:
no goals

Proof state:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOnFilter f' l (𝓟 (Metric.ball x r))
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
⊢ UniformCauchySeqOnFilter (fun n z => ContinuousLinearMap.smulRight 1 (f' n z)) l (𝓟 (Metric.ball x r))

Tactic:
exact hf'.one_smulRight

Result:
no goals

Proof state:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOnFilter f' l (𝓟 (Metric.ball x r))
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
⊢ UniformCauchySeqOn (fun n z => ContinuousLinearMap.smulRight 1 (f' n z)) l (Metric.ball x r)

Tactic:
rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter]

Result:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOnFilter f' l (𝓟 (Metric.ball x r))
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
⊢ UniformCauchySeqOnFilter (fun n z => ContinuousLinearMap.smulRight 1 (f' n z)) l (𝓟 (Metric.ball x r))

Proof state:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOn f' l (Metric.ball x r)
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
⊢ UniformCauchySeqOn f l (Metric.ball x r)

Tactic:
rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter] at hf'

Result:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOnFilter f' l (𝓟 (Metric.ball x r))
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
⊢ UniformCauchySeqOn f l (Metric.ball x r)

Proof state:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOn f' l (Metric.ball x r)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasDerivAt (f n) (f' n y) y
hfg : Cauchy (map (fun n => f n x) l)
⊢ UniformCauchySeqOn f l (Metric.ball x r)

Tactic:
simp_rw [hasDerivAt_iff_hasFDerivAt] at hf

Result:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOn f' l (Metric.ball x r)
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
⊢ UniformCauchySeqOn f l (Metric.ball x r)

Proof state:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf' : UniformCauchySeqOnFilter f' l (𝓟 (Metric.ball x r))
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
⊢ UniformCauchySeqOn f l (Metric.ball x r)

Tactic:
have hf' :
  UniformCauchySeqOn (fun n => fun z => (1 : 𝕜 →L[𝕜] 𝕜).smulRight (f' n z)) l
    (Metric.ball x r) := by
  rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter]
  exact hf'.one_smulRight

Result:
ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝³ : NontriviallyNormedField 𝕜
G : Type u_3
inst✝² : NormedAddCommGroup G
inst✝¹ : NormedSpace 𝕜 G
f f' : ι → 𝕜 → G
x : 𝕜
inst✝ : IsRCLikeNormedField 𝕜
r : ℝ
hf'✝ : UniformCauchySeqOnFilter f' l (𝓟 (Metric.ball x r))
hfg : Cauchy (map (fun n => f n x) l)
hf : ∀ (n : ι), ∀ y ∈ Metric.ball x r, HasFDerivAt (f n) (ContinuousLinearMap.smulRight 1 (f' n y)) y
hf' : UniformCauchySeqOn (fun n z => ContinuousLinearMap.smulRight 1 (f' n z)) l (Metric.ball x r)
⊢ UniformCauchySeqOn f l (Metric.ball x r)