Documentation

Mathlib.Topology.Neighborhoods

Neighborhoods in topological spaces #

Each point x of X gets a neighborhood filter ๐“ x.

Tags #

neighborhood

theorem nhds_def' {X : Type u} [TopologicalSpace X] (x : X) :
nhds x = โจ… (s : Set X), โจ… (_ : IsOpen s), โจ… (_ : x โˆˆ s), Filter.principal s
theorem nhds_basis_opens {X : Type u} [TopologicalSpace X] (x : X) :
(nhds x).HasBasis (fun (s : Set X) => x โˆˆ s โˆง IsOpen s) fun (s : Set X) => s

The open sets containing x are a basis for the neighborhood filter. See nhds_basis_opens' for a variant using open neighborhoods instead.

theorem nhds_basis_closeds {X : Type u} [TopologicalSpace X] (x : X) :
(nhds x).HasBasis (fun (s : Set X) => x โˆ‰ s โˆง IsClosed s) compl
@[simp]
theorem lift'_nhds_interior {X : Type u} [TopologicalSpace X] (x : X) :
theorem Filter.HasBasis.nhds_interior {X : Type u} [TopologicalSpace X] {ฮน : Sort v} {x : X} {p : ฮน โ†’ Prop} {s : ฮน โ†’ Set X} (h : (nhds x).HasBasis p s) :
(nhds x).HasBasis p fun (x : ฮน) => interior (s x)
theorem le_nhds_iff {X : Type u} [TopologicalSpace X] {x : X} {f : Filter X} :
f โ‰ค nhds x โ†” โˆ€ (s : Set X), x โˆˆ s โ†’ IsOpen s โ†’ s โˆˆ f

A filter lies below the neighborhood filter at x iff it contains every open set around x.

theorem nhds_le_of_le {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} {f : Filter X} (h : x โˆˆ s) (o : IsOpen s) (sf : Filter.principal s โ‰ค f) :

To show a filter is above the neighborhood filter at x, it suffices to show that it is above the principal filter of some open set s containing x.

theorem mem_nhds_iff {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} :
s โˆˆ nhds x โ†” โˆƒ t โŠ† s, IsOpen t โˆง x โˆˆ t
theorem eventually_nhds_iff {X : Type u} [TopologicalSpace X] {x : X} {p : X โ†’ Prop} :
(โˆ€แถ  (y : X) in nhds x, p y) โ†” โˆƒ (t : Set X), (โˆ€ y โˆˆ t, p y) โˆง IsOpen t โˆง x โˆˆ t

A predicate is true in a neighborhood of x iff it is true for all the points in an open set containing x.

theorem frequently_nhds_iff {X : Type u} [TopologicalSpace X] {x : X} {p : X โ†’ Prop} :
(โˆƒแถ  (y : X) in nhds x, p y) โ†” โˆ€ (U : Set X), x โˆˆ U โ†’ IsOpen U โ†’ โˆƒ y โˆˆ U, p y
theorem map_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {f : X โ†’ ฮฑ} :
Filter.map f (nhds x) = โจ… s โˆˆ {s : Set X | x โˆˆ s โˆง IsOpen s}, Filter.principal (f '' s)
theorem mem_of_mem_nhds {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} :
s โˆˆ nhds x โ†’ x โˆˆ s
theorem Filter.Eventually.self_of_nhds {X : Type u} [TopologicalSpace X] {x : X} {p : X โ†’ Prop} (h : โˆ€แถ  (y : X) in nhds x, p y) :
p x

If a predicate is true in a neighborhood of x, then it is true for x.

theorem IsOpen.mem_nhds {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} (hs : IsOpen s) (hx : x โˆˆ s) :
theorem IsOpen.mem_nhds_iff {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} (hs : IsOpen s) :
theorem IsClosed.compl_mem_nhds {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} (hs : IsClosed s) (hx : x โˆ‰ s) :
theorem IsOpen.eventually_mem {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} (hs : IsOpen s) (hx : x โˆˆ s) :
theorem nhds_basis_opens' {X : Type u} [TopologicalSpace X] (x : X) :
(nhds x).HasBasis (fun (s : Set X) => s โˆˆ nhds x โˆง IsOpen s) fun (x : Set X) => x

The open neighborhoods of x are a basis for the neighborhood filter. See nhds_basis_opens for a variant using open sets around x instead.

theorem exists_open_set_nhds {X : Type u} [TopologicalSpace X] {s U : Set X} (h : โˆ€ x โˆˆ s, U โˆˆ nhds x) :
โˆƒ (V : Set X), s โŠ† V โˆง IsOpen V โˆง V โŠ† U

If U is a neighborhood of each point of a set s then it is a neighborhood of s: it contains an open set containing s.

theorem exists_open_set_nhds' {X : Type u} [TopologicalSpace X] {s U : Set X} (h : U โˆˆ โจ† x โˆˆ s, nhds x) :
โˆƒ (V : Set X), s โŠ† V โˆง IsOpen V โˆง V โŠ† U

If U is a neighborhood of each point of a set s then it is a neighborhood of s: it contains an open set containing s.

theorem Filter.Eventually.eventually_nhds {X : Type u} [TopologicalSpace X] {x : X} {p : X โ†’ Prop} (h : โˆ€แถ  (y : X) in nhds x, p y) :

If a predicate is true in a neighbourhood of x, then for y sufficiently close to x this predicate is true in a neighbourhood of y.

@[simp]
theorem eventually_eventually_nhds {X : Type u} [TopologicalSpace X] {x : X} {p : X โ†’ Prop} :
(โˆ€แถ  (y : X) in nhds x, โˆ€แถ  (x : X) in nhds y, p x) โ†” โˆ€แถ  (x : X) in nhds x, p x
@[simp]
theorem frequently_frequently_nhds {X : Type u} [TopologicalSpace X] {x : X} {p : X โ†’ Prop} :
(โˆƒแถ  (x' : X) in nhds x, โˆƒแถ  (x'' : X) in nhds x', p x'') โ†” โˆƒแถ  (x : X) in nhds x, p x
@[simp]
theorem eventually_mem_nhds_iff {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} :
@[simp]
theorem nhds_bind_nhds {X : Type u} [TopologicalSpace X] {x : X} :
@[simp]
theorem eventually_eventuallyEq_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {f g : X โ†’ ฮฑ} :
theorem Filter.EventuallyEq.eq_of_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {f g : X โ†’ ฮฑ} (h : f =แถ [nhds x] g) :
f x = g x
@[simp]
theorem eventually_eventuallyLE_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} [LE ฮฑ] {f g : X โ†’ ฮฑ} :
theorem Filter.EventuallyEq.eventuallyEq_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {f g : X โ†’ ฮฑ} (h : f =แถ [nhds x] g) :

If two functions are equal in a neighbourhood of x, then for y sufficiently close to x these functions are equal in a neighbourhood of y.

theorem Filter.EventuallyLE.eventuallyLE_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} [LE ฮฑ] {f g : X โ†’ ฮฑ} (h : f โ‰คแถ [nhds x] g) :

If f x โ‰ค g x in a neighbourhood of x, then for y sufficiently close to x we have f x โ‰ค g x in a neighbourhood of y.

theorem all_mem_nhds {X : Type u} [TopologicalSpace X] (x : X) (P : Set X โ†’ Prop) (hP : โˆ€ (s t : Set X), s โŠ† t โ†’ P s โ†’ P t) :
(โˆ€ s โˆˆ nhds x, P s) โ†” โˆ€ (s : Set X), IsOpen s โ†’ x โˆˆ s โ†’ P s
theorem all_mem_nhds_filter {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} (x : X) (f : Set X โ†’ Set ฮฑ) (hf : โˆ€ (s t : Set X), s โŠ† t โ†’ f s โŠ† f t) (l : Filter ฮฑ) :
(โˆ€ s โˆˆ nhds x, f s โˆˆ l) โ†” โˆ€ (s : Set X), IsOpen s โ†’ x โˆˆ s โ†’ f s โˆˆ l
theorem tendsto_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {f : ฮฑ โ†’ X} {l : Filter ฮฑ} :
Filter.Tendsto f l (nhds x) โ†” โˆ€ (s : Set X), IsOpen s โ†’ x โˆˆ s โ†’ f โปยน' s โˆˆ l
theorem tendsto_atTop_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} [Nonempty ฮฑ] [SemilatticeSup ฮฑ] {f : ฮฑ โ†’ X} :
Filter.Tendsto f Filter.atTop (nhds x) โ†” โˆ€ (U : Set X), x โˆˆ U โ†’ IsOpen U โ†’ โˆƒ (N : ฮฑ), โˆ€ (n : ฮฑ), N โ‰ค n โ†’ f n โˆˆ U
theorem tendsto_const_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {f : Filter ฮฑ} :
Filter.Tendsto (fun (x_1 : ฮฑ) => x) f (nhds x)
theorem tendsto_atTop_of_eventually_const {X : Type u} [TopologicalSpace X] {x : X} {ฮน : Type u_2} [Preorder ฮน] {u : ฮน โ†’ X} {iโ‚€ : ฮน} (h : โˆ€ i โ‰ฅ iโ‚€, u i = x) :
theorem tendsto_atBot_of_eventually_const {X : Type u} [TopologicalSpace X] {x : X} {ฮน : Type u_2} [Preorder ฮน] {u : ฮน โ†’ X} {iโ‚€ : ฮน} (h : โˆ€ i โ‰ค iโ‚€, u i = x) :
theorem tendsto_pure_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} (f : ฮฑ โ†’ X) (a : ฮฑ) :
Filter.Tendsto f (pure a) (nhds (f a))
theorem OrderTop.tendsto_atTop_nhds {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} [PartialOrder ฮฑ] [OrderTop ฮฑ] (f : ฮฑ โ†’ X) :
@[simp]
instance nhds_neBot {X : Type u} [TopologicalSpace X] {x : X} :
theorem tendsto_nhds_of_eventually_eq {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {l : Filter ฮฑ} {f : ฮฑ โ†’ X} (h : โˆ€แถ  (x' : ฮฑ) in l, f x' = x) :
theorem Filter.EventuallyEq.tendsto {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {l : Filter ฮฑ} {f : ฮฑ โ†’ X} (hf : f =แถ [l] fun (x_1 : ฮฑ) => x) :
Tendsto f l (nhds x)

Interior, closure and frontier in terms of neighborhoods #

theorem interior_eq_nhds' {X : Type u} [TopologicalSpace X] {s : Set X} :
@[simp]
theorem interior_mem_nhds {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} :
theorem interior_setOf_eq {X : Type u} [TopologicalSpace X] {p : X โ†’ Prop} :
interior {x : X | p x} = {x : X | โˆ€แถ  (y : X) in nhds x, p y}
theorem isOpen_setOf_eventually_nhds {X : Type u} [TopologicalSpace X] {p : X โ†’ Prop} :
IsOpen {x : X | โˆ€แถ  (y : X) in nhds x, p y}
theorem subset_interior_iff_nhds {X : Type u} [TopologicalSpace X] {s V : Set X} :
s โŠ† interior V โ†” โˆ€ x โˆˆ s, V โˆˆ nhds x
theorem isOpen_iff_nhds {X : Type u} [TopologicalSpace X] {s : Set X} :
IsOpen s โ†” โˆ€ x โˆˆ s, nhds x โ‰ค Filter.principal s
theorem TopologicalSpace.ext_iff_nhds {X : Type u_2} {t t' : TopologicalSpace X} :
t = t' โ†” โˆ€ (x : X), nhds x = nhds x
theorem TopologicalSpace.ext_nhds {X : Type u_2} {t t' : TopologicalSpace X} :
(โˆ€ (x : X), nhds x = nhds x) โ†’ t = t'

Alias of the reverse direction of TopologicalSpace.ext_iff_nhds.

theorem isOpen_iff_mem_nhds {X : Type u} [TopologicalSpace X] {s : Set X} :
IsOpen s โ†” โˆ€ x โˆˆ s, s โˆˆ nhds x
theorem isOpen_iff_eventually {X : Type u} [TopologicalSpace X] {s : Set X} :
IsOpen s โ†” โˆ€ x โˆˆ s, โˆ€แถ  (y : X) in nhds x, y โˆˆ s

A set s is open iff for every point x in s and every y close to x, y is in s.

theorem Filter.Frequently.mem_closure {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} :
(โˆƒแถ  (x : X) in nhds x, x โˆˆ s) โ†’ x โˆˆ closure s

Alias of the reverse direction of mem_closure_iff_frequently.

theorem isClosed_iff_frequently {X : Type u} [TopologicalSpace X] {s : Set X} :
IsClosed s โ†” โˆ€ (x : X), (โˆƒแถ  (y : X) in nhds x, y โˆˆ s) โ†’ x โˆˆ s

A set s is closed iff for every point x, if there is a point y close to x that belongs to s then x is in s.

theorem nhdsWithin_neBot {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} :
(nhdsWithin x s).NeBot โ†” โˆ€ โฆƒt : Set Xโฆ„, t โˆˆ nhds x โ†’ (t โˆฉ s).Nonempty
theorem nhdsWithin_mono {X : Type u} [TopologicalSpace X] (x : X) {s t : Set X} (h : s โŠ† t) :
theorem Dense.open_subset_closure_inter {X : Type u} [TopologicalSpace X] {s t : Set X} (hs : Dense s) (ht : IsOpen t) :
theorem Dense.inter_of_isOpen_left {X : Type u} [TopologicalSpace X] {s t : Set X} (hs : Dense s) (ht : Dense t) (hso : IsOpen s) :

The intersection of an open dense set with a dense set is a dense set.

theorem Dense.inter_of_isOpen_right {X : Type u} [TopologicalSpace X] {s t : Set X} (hs : Dense s) (ht : Dense t) (hto : IsOpen t) :

The intersection of a dense set with an open dense set is a dense set.

theorem Dense.inter_nhds_nonempty {X : Type u} [TopologicalSpace X] {x : X} {s t : Set X} (hs : Dense s) (ht : t โˆˆ nhds x) :
theorem closure_diff {X : Type u} [TopologicalSpace X] {s t : Set X} :
theorem Filter.Frequently.mem_of_closed {X : Type u} [TopologicalSpace X] {x : X} {s : Set X} (h : โˆƒแถ  (x : X) in nhds x, x โˆˆ s) (hs : IsClosed s) :
theorem IsClosed.mem_of_frequently_of_tendsto {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {s : Set X} {f : ฮฑ โ†’ X} {b : Filter ฮฑ} (hs : IsClosed s) (h : โˆƒแถ  (x : ฮฑ) in b, f x โˆˆ s) (hf : Filter.Tendsto f b (nhds x)) :
theorem IsClosed.mem_of_tendsto {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {s : Set X} {f : ฮฑ โ†’ X} {b : Filter ฮฑ} [b.NeBot] (hs : IsClosed s) (hf : Filter.Tendsto f b (nhds x)) (h : โˆ€แถ  (x : ฮฑ) in b, f x โˆˆ s) :
theorem mem_closure_of_frequently_of_tendsto {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {s : Set X} {f : ฮฑ โ†’ X} {b : Filter ฮฑ} (h : โˆƒแถ  (x : ฮฑ) in b, f x โˆˆ s) (hf : Filter.Tendsto f b (nhds x)) :
theorem mem_closure_of_tendsto {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {s : Set X} {f : ฮฑ โ†’ X} {b : Filter ฮฑ} [b.NeBot] (hf : Filter.Tendsto f b (nhds x)) (h : โˆ€แถ  (x : ฮฑ) in b, f x โˆˆ s) :
theorem tendsto_inf_principal_nhds_iff_of_forall_eq {X : Type u} [TopologicalSpace X] {ฮฑ : Type u_1} {x : X} {f : ฮฑ โ†’ X} {l : Filter ฮฑ} {s : Set ฮฑ} (h : โˆ€ a โˆ‰ s, f a = x) :

Suppose that f sends the complement to s to a single point x, and l is some filter. Then f tends to x along l restricted to s if and only if it tends to x along l.