Theorem: hasLineDerivWithinAt_congr_set
File: Mathlib/Analysis/Calculus/LineDeriv/Basic.lean

Proof steps:
state_before: 𝕜 : 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 f₀ f₁ : E → F
f' : F
s t : Set E
x v : E
L : E →L[𝕜] F
h : s =ᶠ[𝓝 x] t
⊢ HasLineDerivWithinAt 𝕜 f f' s x v ↔ HasLineDerivWithinAt 𝕜 f f' t x v
state_after: case h
𝕜 : 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 f₀ f₁ : E → F
f' : F
s t : Set E
x v : E
L : E →L[𝕜] F
h : s =ᶠ[𝓝 x] t
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
tactic: apply hasDerivWithinAt_congr_set
state_before: case h
𝕜 : 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 f₀ f₁ : E → F
f' : F
s t : Set E
x v : E
L : E →L[𝕜] F
h : s =ᶠ[𝓝 x] t
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
state_after: case h
𝕜 : 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 f₀ f₁ : E → F✝
f' : F✝
s t : Set E
x v : E
L : E →L[𝕜] F✝
h : s =ᶠ[𝓝 x] t
F : 𝕜 → E := fun t => x + t • v
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
tactic: let F := fun (t : 𝕜) ↦ x + t • v
state_before: case h
𝕜 : 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 f₀ f₁ : E → F✝
f' : F✝
s t : Set E
x v : E
L : E →L[𝕜] F✝
h : s =ᶠ[𝓝 x] t
F : 𝕜 → E := fun t => x + t • v
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
state_after: case h
𝕜 : 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 f₀ f₁ : E → F✝
f' : F✝
s t : Set E
x v : E
L : E →L[𝕜] F✝
h : s =ᶠ[𝓝 x] t
F : 𝕜 → E := fun t => x + t • v
B : ContinuousAt F 0
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
tactic: have B : ContinuousAt F 0 := by apply Continuous.continuousAt; fun_prop
state_before: case h
𝕜 : 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 f₀ f₁ : E → F✝
f' : F✝
s t : Set E
x v : E
L : E →L[𝕜] F✝
h : s =ᶠ[𝓝 x] t
F : 𝕜 → E := fun t => x + t • v
B : ContinuousAt F 0
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
state_after: case h
𝕜 : 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 f₀ f₁ : E → F✝
f' : F✝
s t : Set E
x v : E
L : E →L[𝕜] F✝
h : s =ᶠ[𝓝 x] t
F : 𝕜 → E := fun t => x + t • v
B : ContinuousAt F 0
this : s =ᶠ[𝓝 (F 0)] t
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
tactic: have : s =ᶠ[𝓝 (F 0)] t := by convert h; simp [F]
state_before: case h
𝕜 : 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 f₀ f₁ : E → F✝
f' : F✝
s t : Set E
x v : E
L : E →L[𝕜] F✝
h : s =ᶠ[𝓝 x] t
F : 𝕜 → E := fun t => x + t • v
B : ContinuousAt F 0
this : s =ᶠ[𝓝 (F 0)] t
⊢ (fun t => x + t • v) ⁻¹' s =ᶠ[𝓝 0] (fun t => x + t • v) ⁻¹' t
state_after: no goals
tactic: exact B.preimage_mem_nhds this