Theorem: HasFDerivAtFilter.tendsto_nhds
File: Mathlib/Analysis/Calculus/FDeriv/Basic.lean

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
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto f L (𝓝 (f x))

tactic: have := this.add (@tendsto_const_nhds _ _ _ (f x) _)
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ 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: rw [zero_add (f x)] at this
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ 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: exact this.congr (by simp only [sub_add_cancel, eq_self_iff_true, forall_const])
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ 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: refine' h.isBigO_sub.trans_tendsto (Tendsto.mono_left _ hL)
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => f x' - f x) L (𝓝 0)

tactic: rw [← sub_self x]
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => x' - x) (𝓝 x) (𝓝 0)

tactic: exact tendsto_id.sub tendsto_const_nhds
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
hL : L ≤ 𝓝 x
h : HasFDerivAtFilter f f' x L
⊢ Tendsto (fun x' => x' - x) (𝓝 x) (𝓝 (x - x))

tactic: simp only [sub_add_cancel, eq_self_iff_true, forall_const]
state_before: 𝕜 : Type u_2
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_1
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.394427
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.394522
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ 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