Bases of topologies. Countability axioms. #
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 #
TopologicalSpace.IsTopologicalBasis s
: The topological spacet
has basiss
.TopologicalSpace.SeparableSpace α
: The topological spacet
has a countable, dense subset.TopologicalSpace.IsSeparable s
: The sets
is contained in the closure of a countable set.TopologicalSpace.FirstCountableTopology α
: A topology in which𝓝 x
is countably generated for everyx
.TopologicalSpace.SecondCountableTopology α
: A topology which has a topological basis which is countable.
Main results #
TopologicalSpace.FirstCountableTopology.tendsto_subseq
: In a first-countable space, cluster points are limits of subsequences.TopologicalSpace.SecondCountableTopology.isOpen_iUnion_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.TopologicalSpace.SecondCountableTopology.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 TopologicalSpace.FirstCountableTopology
,
TopologicalSpace.SeparableSpace
, and more.
- exists_subset_inter : ∀ (t₁ : Set α), t₁ ∈ s✝ → ∀ (t₂ : Set α), t₂ ∈ s✝ → ∀ (x : α), x ∈ t₁ ∩ t₂ → ∃ t₃, t₃ ∈ s✝ ∧ x ∈ t₃ ∧ t₃ ⊆ t₁ ∩ t₂
For every point
x
, the set oft ∈ s
such thatx ∈ t
is directed downwards. The sets from
s
cover the whole space.- eq_generateFrom : t = TopologicalSpace.generateFrom s✝
The topology is generated by sets 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).
Instances For
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.
- exists_countable_dense : ∃ s, Set.Countable s ∧ Dense s
There exists a countable dense set.
A separable space is one with a countable dense subset, available through
TopologicalSpace.exists_countable_dense
. If α
is also known to be nonempty, then
TopologicalSpace.denseSeq
provides a sequence ℕ → α
with dense range, see
TopologicalSpace.denseRange_denseSeq
.
If α
is a uniform space with countably generated uniformity filter (e.g., an EMetricSpace
), then
this condition is equivalent to TopologicalSpace.SecondCountableTopology α
. In this case the
latter should be used as a typeclass argument in theorems because Lean can automatically deduce
TopologicalSpace.SeparableSpace
from TopologicalSpace.SecondCountableTopology
but it can't
deduce TopologicalSpace.SecondCountableTopology
from TopologicalSpace.SeparableSpace
.
Porting note: TODO: the previous paragraph describes the state of the art in Lean 3. We can have instance cycles in Lean 4 but we might want to postpone adding them till after the port.
Instances
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 TopologicalSpace.denseSeq
and
TopologicalSpace.denseRange_denseSeq
.
If α
might be empty, then TopologicalSpace.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 TopologicalSpace.exists_countable_dense
is the main way to use
separability of α
.
Equations
- TopologicalSpace.denseSeq α = Classical.choose (_ : ∃ u, DenseRange u)
Instances For
The sequence TopologicalSpace.denseSeq α
has dense range.
If f
has a dense range and its domain is countable, then its codomain is a separable space.
See also DenseRange.separableSpace
.
Alias of TopologicalSpace.SeparableSpace.of_denseRange
.
If f
has a dense range and its domain is countable, then its codomain is a separable space.
See also DenseRange.separableSpace
.
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.
The product of two separable spaces is a separable space.
The product of a countable family of separable spaces is a separable space.
A topological space with discrete topology is separable iff it is countable.
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 TopologicalSpace.SeparableSpace s
or
TopologicalSpace.IsSeparable (univ : Set s))
. In metric spaces, the two definitions are
equivalent, see TopologicalSpace.IsSeparable.separableSpace
.
Equations
- TopologicalSpace.IsSeparable s = ∃ c, Set.Countable c ∧ s ⊆ closure c
Instances For
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 : α), Filter.IsCountablyGenerated (nhds a)
The filter
𝓝 a
is countably generated for all pointsa
.
A first-countable space is one in which every point has a countable neighborhood basis.
Instances
In a first-countable space, a cluster point x
of a sequence
is the limit of some subsequence.
- is_open_generated_countable : ∃ b, Set.Countable b ∧ t = TopologicalSpace.generateFrom b
There exists a countable set of sets that generates the topology.
A second-countable space is one with a countable basis.
Instances
A countable topological basis of α
.
Equations
- TopologicalSpace.countableBasis α = Exists.choose (_ : ∃ b, Set.Countable b ∧ ¬∅ ∈ b ∧ TopologicalSpace.IsTopologicalBasis b)
Instances For
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 particular, any open covering of α
has a countable subcover: α is a Lindelöf space.
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.