-- Mathlib/Analysis/Calculus/FDeriv/Basic.lean
theorem HasFDerivAtFilter.tendsto_nhds (hL : L ≤ 𝓝 x) (h : HasFDerivAtFilter f f' x L) :
    Tendsto f L (𝓝 (f x))

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
this✝ : Tendsto (fun x' => f x' - f x) L (𝓝 0)
this : Tendsto (fun x_1 => f x_1 - f x + f x) L (𝓝 (0 + f x))
⊢ Tendsto f L (𝓝 (f x))

Tactic:
rw [zero_add (f x)] at this

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
this✝ : Tendsto (fun x' => f x' - f x) L (𝓝 0)
this : Tendsto (fun x_1 => f x_1 - f x + f x) L (𝓝 (f x))
⊢ Tendsto f L (𝓝 (f x))

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto f L (𝓝 (f x))

Tactic:
have : Tendsto (fun x' => f x' - f x) L (𝓝 0) := by
  refine h.isBigO_sub.trans_tendsto (Tendsto.mono_left ?_ hL)
  rw [← sub_self x]
  exact tendsto_id.sub tendsto_const_nhds

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
this : Tendsto (fun x' => f x' - f x) L (𝓝 0)
⊢ Tendsto f L (𝓝 (f x))

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
this✝ : Tendsto (fun x' => f x' - f x) L (𝓝 0)
this : Tendsto (fun x_1 => f x_1 - f x + f x) L (𝓝 (f x))
⊢ Tendsto f L (𝓝 (f x))

Tactic:
exact this.congr (by simp only [sub_add_cancel, eq_self_iff_true, forall_const])

Result:
no goals

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => x' - x) (𝓝 x) (𝓝 0)

Tactic:
rw [← sub_self x]

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => x' - x) (𝓝 x) (𝓝 (x - x))

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => x' - x) (𝓝 x) (𝓝 (x - x))

Tactic:
exact tendsto_id.sub tendsto_const_nhds

Result:
no goals

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
this : Tendsto (fun x' => f x' - f x) L (𝓝 0)
⊢ Tendsto f L (𝓝 (f x))

Tactic:
have := this.add (tendsto_const_nhds (x := f x))

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
this✝ : Tendsto (fun x' => f x' - f x) L (𝓝 0)
this : Tendsto (fun x_1 => f x_1 - f x + f x) L (𝓝 (0 + f x))
⊢ Tendsto f L (𝓝 (f x))

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
this✝ : Tendsto (fun x' => f x' - f x) L (𝓝 0)
this : Tendsto (fun x_1 => f x_1 - f x + f x) L (𝓝 (f x))
⊢ ∀ (x_1 : E), f x_1 - f x + f x = f x_1

Tactic:
simp only [sub_add_cancel, eq_self_iff_true, forall_const]

Result:
no goals

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => f x' - f x) L (𝓝 0)

Tactic:
refine h.isBigO_sub.trans_tendsto (Tendsto.mono_left ?_ hL)

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
f : E → F
f' : E →L[𝕜] F
x : E
L : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => x' - x) (𝓝 x) (𝓝 0)