Bases of topologies. Countability axioms. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
A topological basis on a topological space t
is a collection of sets,
such that all open sets can be generated as unions of these sets, without the need to take
finite intersections of them. This file introduces a framework for dealing with these collections,
and also what more we can say under certain countability conditions on bases,
which are referred to as first- and second-countable.
We also briefly cover the theory of separable spaces, which are those with a countable, dense
subset. If a space is second-countable, and also has a countably generated uniformity filter
(for example, if t
is a metric space), it will automatically be separable (and indeed, these
conditions are equivalent in this case).
Main definitions #
is_topological_basis s
: The topological spacet
has basiss
.separable_space α
: The topological spacet
has a countable, dense subset.is_separable s
: The sets
is contained in the closure of a countable set.first_countable_topology α
: A topology in which𝓝 x
is countably generated for everyx
.second_countable_topology α
: A topology which has a topological basis which is countable.
Main results #
first_countable_topology.tendsto_subseq
: In a first-countable space, cluster points are limits of subsequences.second_countable_topology.is_open_Union_countable
: In a second-countable space, the union of arbitrarily-many open sets is equal to a sub-union of only countably many of these sets.second_countable_topology.countable_cover_nhds
: Considerf : α → set α
with the property thatf x ∈ 𝓝 x
for allx
. Then there is some countable sets
whose image covers the space.
Implementation Notes #
For our applications we are interested that there exists a countable basis, but we do not need the
concrete basis itself. This allows us to declare these type classes as Prop
to use them as mixins.
TODO: #
More fine grained instances for first_countable_topology
, separable_space
, t2_space
, and more
(see the comment below subtype.second_countable_topology
.)
- exists_subset_inter : ∀ (t₁ : set α), t₁ ∈ s → ∀ (t₂ : set α), t₂ ∈ s → ∀ (x : α), x ∈ t₁ ∩ t₂ → (∃ (t₃ : set α) (H : t₃ ∈ s), x ∈ t₃ ∧ t₃ ⊆ t₁ ∩ t₂)
- sUnion_eq : ⋃₀ s = set.univ
- eq_generate_from : t = topological_space.generate_from s
A topological basis is one that satisfies the necessary conditions so that it suffices to take unions of the basis sets to get a topology (without taking finite intersections as well).
If a family of sets s
generates the topology, then intersections of finite
subcollections of s
form a topological basis.
If a family of open sets s
is such that every open neighbourhood contains some
member of s
, then s
is a topological basis.
A set s
is in the neighbourhood of a
iff there is some basis set t
, which
contains a
and is itself contained in s
.
Any open set is the union of the basis sets contained in it.
A point a
is in the closure of s
iff all basis sets containing a
intersect s
.
A set is dense iff it has non-trivial intersection with all basis sets.
A separable space is one with a countable dense subset, available through
topological_space.exists_countable_dense
. If α
is also known to be nonempty, then
topological_space.dense_seq
provides a sequence ℕ → α
with dense range, see
topological_space.dense_range_dense_seq
.
If α
is a uniform space with countably generated uniformity filter (e.g., an emetric_space
),
then this condition is equivalent to topological_space.second_countable_topology α
. In this case
the latter should be used as a typeclass argument in theorems because Lean can automatically deduce
separable_space
from second_countable_topology
but it can't deduce second_countable_topology
and emetric_space
.
A nonempty separable space admits a sequence with dense range. Instead of running cases
on the
conclusion of this lemma, you might want to use topological_space.dense_seq
and
topological_space.dense_range_dense_seq
.
If α
might be empty, then exists_countable_dense
is the main way to use separability of α
.
A dense sequence in a non-empty separable topological space.
If α
might be empty, then exists_countable_dense
is the main way to use separability of α
.
Equations
The sequence dense_seq α
has dense range.
In a separable space, a family of nonempty disjoint open sets is countable.
In a separable space, a family of disjoint sets with nonempty interiors is countable.
A set s
in a topological space is separable if it is contained in the closure of a
countable set c
. Beware that this definition does not require that c
is contained in s
(to
express the latter, use separable_space s
or is_separable (univ : set s))
. In metric spaces,
the two definitions are equivalent, see topological_space.is_separable.separable_space
.
If α
is a separable space and f : α → β
is a continuous map with dense range, then β
is
a separable space as well. E.g., the completion of a separable uniform space is separable.
Let s
be a dense set in a topological space α
with partial order structure. If s
is a
separable space (e.g., if α
has a second countable topology), then there exists a countable
dense subset t ⊆ s
such that t
contains bottom/top element of α
when they exist and belong
to s
. For a dense subset containing neither bot nor top elements, see
dense.exists_countable_dense_subset_no_bot_top
.
If α
is a separable topological space with a partial order, then there exists a countable
dense set s : set α
that contains those of both bottom and top elements of α
that actually
exist. For a dense set containing neither bot nor top elements, see
exists_countable_dense_no_bot_top
.
- nhds_generated_countable : ∀ (a : α), (nhds a).is_countably_generated
A first-countable space is one in which every point has a countable neighborhood basis.
In a first-countable space, a cluster point x
of a sequence
is the limit of some subsequence.
- is_open_generated_countable : ∃ (b : set (set α)), b.countable ∧ t = topological_space.generate_from b
A second-countable space is one with a countable basis.
Instances of this typeclass
- second_countable_of_proper
- topological_space.subtype.second_countable_topology
- topological_space.prod.second_countable_topology
- topological_space.pi.second_countable_topology
- topological_space.sigma.second_countable_topology
- topological_space.sum.second_countable_topology
- order_dual.topological_space.second_countable_topology
- quotient_group.second_countable_topology
- quotient_add_group.second_countable_topology
- real.topological_space.second_countable_topology
- nnreal.topological_space.second_countable_topology
- ennreal.topological_space.second_countable_topology
A countable topological basis of α
.
Equations
Instances for ↥topological_space.countable_basis
Equations
If β
is a second-countable space, then its induced topology
via f
on α
is also second-countable.
A countable open cover induces a second-countable topology if all open covers are themselves second countable.
In a second-countable space, an open set, given as a union of open sets, is equal to the union of countably many of those sets.
In a topological space with second countable topology, if f
is a function that sends each
point x
to a neighborhood of x
, then for some countable set s
, the neighborhoods f x
,
x ∈ s
, cover the whole space.
In a disjoint union space Σ i, E i
, one can form a topological basis by taking the union of
topological bases on each of the parts of the space.
A countable disjoint union of second countable spaces is second countable.
In a sum space α ⊕ β
, one can form a topological basis by taking the union of
topological bases on each of the two components.
A sum type of two second countable spaces is second countable.
The image of a topological basis under an open quotient map is a topological basis.
A second countable space is mapped by an open quotient map to a second countable space.
The image of a topological basis "downstairs" in an open quotient is a topological basis.
An open quotient of a second countable space is second countable.