Theorem: zero_at_infty_of_norm_le
File: Mathlib/Analysis/Normed/Group/ZeroAtInfty.lean

Proof steps:
state_before: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
⊢ Tendsto f (cocompact E) (𝓝 0)
state_after: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
⊢ Tendsto (fun x => ‖f x‖) (cocompact E) (𝓝 0)
tactic: rw [tendsto_zero_iff_norm_tendsto_zero]
state_before: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
⊢ Tendsto (fun x => ‖f x‖) (cocompact E) (𝓝 0)
state_after: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
hs : s ∈ 𝓝 0
⊢ s ∈ map (fun x => ‖f x‖) (cocompact E)
tactic: intro s hs
state_before: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
hs : s ∈ 𝓝 0
⊢ s ∈ map (fun x => ‖f x‖) (cocompact E)
state_after: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
hs : s ∈ 𝓝 0
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
tactic: rw [mem_map, Metric.mem_cocompact_iff_closedBall_compl_subset 0]
state_before: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
hs : s ∈ 𝓝 0
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
state_after: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
hs : ∃ ε > 0, Metric.ball 0 ε ⊆ s
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
tactic: rw [Metric.mem_nhds_iff] at hs
state_before: E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
hs : ∃ ε > 0, Metric.ball 0 ε ⊆ s
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
state_after: case intro.intro
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
tactic: rcases hs with ⟨ε, hε, hs⟩
state_before: case intro.intro
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
state_after: case intro.intro.intro
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
r : ℝ
hr : ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
tactic: rcases h ε hε with ⟨r, hr⟩
state_before: case intro.intro.intro
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
r : ℝ
hr : ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
⊢ ∃ r, (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
state_after: case h
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
r : ℝ
hr : ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
⊢ (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
tactic: use r
state_before: case h
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
r : ℝ
hr : ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
⊢ (Metric.closedBall 0 r)ᶜ ⊆ (fun x => ‖f x‖) ⁻¹' s
state_after: case h
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
r : ℝ
hr : ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
a✝ : E
⊢ a✝ ∈ (Metric.closedBall 0 r)ᶜ → a✝ ∈ (fun x => ‖f x‖) ⁻¹' s
tactic: intro
state_before: case h
E : Type u_1
F : Type u_2
𝓕 : Type u_3
inst✝⁴ : SeminormedAddGroup E
inst✝³ : SeminormedAddCommGroup F
inst✝² : FunLike 𝓕 E F
inst✝¹ : ZeroAtInftyContinuousMapClass 𝓕 E F
inst✝ : ProperSpace E
f : E → F
h : ∀ (ε : ℝ), 0 < ε → ∃ r, ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
s : Set ℝ
ε : ℝ
hε : ε > 0
hs : Metric.ball 0 ε ⊆ s
r : ℝ
hr : ∀ (x : E), r < ‖x‖ → ‖f x‖ < ε
a✝ : E
⊢ a✝ ∈ (Metric.closedBall 0 r)ᶜ → a✝ ∈ (fun x => ‖f x‖) ⁻¹' s
state_after: no goals
tactic: aesop