Theorem: uniformCauchySeqOn_ball_of_deriv
File: Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean

tactic: simp_rw [hasDerivAt_iff_hasFDerivAt] at hf
state_before: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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)
state_after: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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'
state_before: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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)
state_after: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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
state_before: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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)
state_after: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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
state_before: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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)
state_after: no goals

tactic: rw [uniformCauchySeqOn_iff_uniformCauchySeqOnFilter]
state_before: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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)
state_after: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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
state_before: ι : Type u_1
l : Filter ι
𝕜 : Type u_2
inst✝² : RCLike 𝕜
G : Type u_3
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
f : ι → 𝕜 → G
g : 𝕜 → G
f' : ι → 𝕜 → G
g' : 𝕜 → G
x : 𝕜
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))
state_after: no goals