-- Mathlib/Analysis/Calculus/LineDeriv/Basic.lean
lemma HasFDerivWithinAt.hasLineDerivWithinAt (hf : HasFDerivWithinAt f L s x) (v : E) :
    HasLineDerivWithinAt 𝕜 f (L v) s x v

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
hf : HasFDerivWithinAt f L s x
v : E
F : 𝕜 → E := fun t => x + t • v
⊢ x = F 0

Tactic:
simp [F]

Result:
no goals

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
hf : HasFDerivWithinAt f L s x
v : E
F : 𝕜 → E := fun t => x + t • v
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Tactic:
rw [show x = F (0 : 𝕜) by simp [F]] at hf

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
v : E
F : 𝕜 → E := fun t => x + t • v
hf : HasFDerivWithinAt f L s (F 0)
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
v : E
F : 𝕜 → E := fun t => x + t • v
hf : HasFDerivWithinAt f L s (F 0)
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Tactic:
have A : HasDerivWithinAt F (0 + (1 : 𝕜) • v) (F ⁻¹' s) 0 :=
  ((hasDerivAt_const (0 : 𝕜) x).add ((hasDerivAt_id' (0 : 𝕜)).smul_const v)).hasDerivWithinAt

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
v : E
F : 𝕜 → E := fun t => x + t • v
hf : HasFDerivWithinAt f L s (F 0)
A : HasDerivWithinAt F (0 + 1 • v) (F ⁻¹' s) 0
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
v : E
F : 𝕜 → E := fun t => x + t • v
hf : HasFDerivWithinAt f L s (F 0)
A : HasDerivWithinAt F v (F ⁻¹' s) 0
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Tactic:
exact hf.comp_hasDerivWithinAt (x := (0 : 𝕜)) A (mapsTo_preimage F s)

Result:
no goals

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F : Type u_2
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F
s : Set E
x : E
L : E →L[𝕜] F
hf : HasFDerivWithinAt f L s x
v : E
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Tactic:
let F := fun (t : 𝕜) ↦ x + t • v

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
hf : HasFDerivWithinAt f L s x
v : E
F : 𝕜 → E := fun t => x + t • v
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Proof state:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
v : E
F : 𝕜 → E := fun t => x + t • v
hf : HasFDerivWithinAt f L s (F 0)
A : HasDerivWithinAt F (0 + 1 • v) (F ⁻¹' s) 0
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v

Tactic:
simp only [one_smul, zero_add] at A

Result:
𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
F✝ : Type u_2
inst✝³ : NormedAddCommGroup F✝
inst✝² : NormedSpace 𝕜 F✝
E : Type u_3
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
f : E → F✝
s : Set E
x : E
L : E →L[𝕜] F✝
v : E
F : 𝕜 → E := fun t => x + t • v
hf : HasFDerivWithinAt f L s (F 0)
A : HasDerivWithinAt F v (F ⁻¹' s) 0
⊢ HasLineDerivWithinAt 𝕜 f (L v) s x v