Topological study of spaces Π (n : ℕ), E n #
When E n are topological spaces, the space Π (n : ℕ), E n is naturally a topological space
(with the product topology). When E n are uniform spaces, it also inherits a uniform structure.
However, it does not inherit a canonical metric space structure of the E n. Nevertheless, one
can put a noncanonical metric space structure (or rather, several of them). This is done in this
file.
Main definitions and results #
One can define a combinatorial distance on Π (n : ℕ), E n, as follows:
PiNat.cylinder x nis the set of pointsywithx i = y ifori < n.PiNat.firstDiff x yis the first index at whichx i ≠ y i.PiNat.dist x yis equal to(1/2) ^ (firstDiff x y). It defines a distance onΠ (n : ℕ), E n, compatible with the topology when theE nhave the discrete topology.PiNat.metricSpace: the metric space structure, given by this distance. Not registered as an instance. This space is a complete metric space.PiNat.metricSpaceOfDiscreteUniformity: the same metric space structure, but adjusting the uniformity defeqness when theE nalready have the discrete uniformity. Not registered as an instancePiNat.metricSpaceNatNat: the particular case ofℕ → ℕ, not registered as an instance.
These results are used to construct continuous functions on Π n, E n:
PiNat.exists_retraction_of_isClosed: given a nonempty closed subsetsofΠ (n : ℕ), E n, there exists a retraction ontos, i.e., a continuous map from the whole space tosrestricting to the identity ons.exists_nat_nat_continuous_surjective_of_completeSpace: given any nonempty complete metric space with second-countable topology, there exists a continuous surjection fromℕ → ℕonto this space.
One can also put distances on Π (i : ι), E i when the spaces E i are metric spaces (not discrete
in general), and ι is countable.
PiCountable.distis the distance onΠ i, E igiven bydist x y = ∑' i, min (1/2)^(encode i) (dist (x i) (y i)).PiCountable.metricSpaceis the corresponding metric space structure, adjusted so that the uniformity is definitionally the product uniformity. Not registered as an instance.PiNatEmbedgives an equivalence between a space and itself in a sequence of spacesMetric.PiNatEmbed.metricSpaceproves that a topologicalXseparated by countably many continuous functions to metric spaces, can be embedded inside their product.
The firstDiff function #
Cylinders #
In a product space Π n, E n, the cylinder set of length n around x, denoted
cylinder x n, is the set of sequences y that coincide with x on the first n symbols, i.e.,
such that y i = x i for all i < n.
Instances For
In the case where E has constant value α,
the cylinder cylinder x n can be identified with the element of List α
consisting of the first n entries of x. See cylinder_eq_res.
We call this list res x n, the restriction of x to n.
Instances For
A distance function on Π n, E n #
We define a distance function on Π n, E n, given by dist x y = (1/2)^n where n is the first
index at which x and y differ. When each E n has the discrete topology, this distance will
define the right topology on the product space. We do not record a global Dist instance nor
a MetricSpace instance, as other distances may be used on these spaces, but we register them as
local instances in this section.
The distance function on a product space Π n, E n, given by dist x y = (1/2)^n where n is
the first index at which x and y differ.
Equations
Instances For
A function to a pseudo-metric-space is 1-Lipschitz if and only if points in the same cylinder
of length n are sent to points within distance (1/2)^n.
Not expressed using LipschitzWith as we don't have a metric space structure
Metric space structure on Π (n : ℕ), E n when the spaces E n have the discrete topology,
where the distance is given by dist x y = (1/2)^n, where n is the smallest index where x and
y differ. Not registered as a global instance by default.
Warning: this definition makes sure that the topology is defeq to the original product topology,
but it does not take care of a possible uniformity. If the E n have a uniform structure, then
there will be two non-defeq uniform structures on Π n, E n, the product one and the one coming
from the metric structure. In this case, use metricSpaceOfDiscreteUniformity instead.
Equations
- PiNat.metricSpace = MetricSpace.ofDistTopology dist ⋯ ⋯ ⋯ ⋯ ⋯
Instances For
Metric space structure on Π (n : ℕ), E n when the spaces E n have the discrete uniformity,
where the distance is given by dist x y = (1/2)^n, where n is the smallest index where x and
y differ. Not registered as a global instance by default.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Metric space structure on ℕ → ℕ where the distance is given by dist x y = (1/2)^n,
where n is the smallest index where x and y differ.
Not registered as a global instance by default.
Equations
Instances For
Retractions inside product spaces #
We show that, in a space Π (n : ℕ), E n where each E n is discrete, there is a retraction on
any closed nonempty subset s, i.e., a continuous map f from the whole space to s restricting
to the identity on s. The map f is defined as follows. For x ∈ s, let f x = x. Otherwise,
consider the longest prefix w that x shares with an element of s, and let f x = z_w
where z_w is an element of s starting with w.
Given a point x in a product space Π (n : ℕ), E n, and s a subset of this space, then
shortestPrefixDiff x s if the smallest n for which there is no element of s having the same
prefix of length n as x. If there is no such n, then use 0 by convention.
Equations
- PiNat.shortestPrefixDiff x s = if h : ∃ (n : ℕ), Disjoint s (PiNat.cylinder x n) then Nat.find h else 0
Instances For
Given a point x in a product space Π (n : ℕ), E n, and s a subset of this space, then
longestPrefix x s if the largest n for which there is an element of s having the same
prefix of length n as x. If there is no such n, use 0 by convention.
Equations
- PiNat.longestPrefix x s = PiNat.shortestPrefixDiff x s - 1
Instances For
If two points x, y coincide up to length n, and the longest common prefix of x with s
is strictly shorter than n, then the longest common prefix of y with s is the same, and both
cylinders of this length based at x and y coincide.
Given a closed nonempty subset s of Π (n : ℕ), E n, there exists a Lipschitz retraction
onto this set, i.e., a Lipschitz map with range equal to s, equal to the identity on s.
Given a closed nonempty subset s of Π (n : ℕ), E n, there exists a retraction onto this
set, i.e., a continuous map with range equal to s, equal to the identity on s.
Any nonempty complete second countable metric space is the continuous image of the
fundamental space ℕ → ℕ. For a version of this theorem in the context of Polish spaces, see
exists_nat_nat_continuous_surjective_of_polishSpace.
Products of (possibly non-discrete) metric spaces #
Given a countable family of extended metric spaces,
one may put an extended distance on their product Π i, E i.
It is highly non-canonical, though, and therefore not registered as a global instance.
The distance we use here is edist x y = ∑' i, min (1/2)^(encode i) (edist (x i) (y i)).
Equations
Instances For
Given a countable family of extended pseudo metric spaces,
one may put an extended distance on their product Π i, E i.
It is highly non-canonical, though, and therefore not registered as a global instance.
The distance we use here is edist x y = ∑' i, min (1/2)^(encode i) (edist (x i) (y i)).
Equations
- PiCountable.pseudoEMetricSpace = { toEDist := PiCountable.edist, edist_self := ⋯, edist_comm := ⋯, edist_triangle := ⋯, toUniformSpace := Pi.uniformSpace F, uniformity_edist := ⋯ }
Instances For
Given a countable family of extended metric spaces,
one may put an extended distance on their product Π i, E i.
It is highly non-canonical, though, and therefore not registered as a global instance.
The distance we use here is edist x y = ∑' i, min (1/2)^(encode i) (edist (x i) (y i)).
Equations
- PiCountable.emetricSpace = { toPseudoEMetricSpace := PiCountable.pseudoEMetricSpace, eq_of_edist_eq_zero := ⋯ }
Instances For
Given a countable family of metric spaces, one may put a distance on their product Π i, E i.
It is highly non-canonical, though, and therefore not registered as a global instance.
The distance we use here is dist x y = ∑' i, min (1/2)^(encode i) (dist (x i) (y i)).
Equations
Instances For
Given a countable family of metric spaces, one may put a distance on their product Π i, E i.
It is highly non-canonical, though, and therefore not registered as a global instance.
The distance we use here is dist x y = ∑' i, min (1/2)^(encode i) (dist (x i) (y i)).
Instances For
Given a countable family of metric spaces, one may put a distance on their product Π i, E i.
It is highly non-canonical, though, and therefore not registered as a global instance. The distance we use here is edist x y = ∑' i, min (1/2)^(encode i) (edist (x i) (y i))`.
Equations
Instances For
Embedding a countably separated space inside a space of sequences #
Given a type X and a sequence Y of metric spaces and a sequence f : : ∀ i, X → Y i of
separating functions, PiNatEmbed X Y f is a type synonym for X seen as a subset of ∀ i, Y i.
- toPiNat :: (
- ofPiNat : X
The map from the subset of
∀ i, Y itoX. - )
Instances For
Equivalence between X and its embedding into ∀ i, Y i.
Equations
- Metric.PiNatEmbed.toPiNatEquiv X Y f = { toFun := Metric.PiNatEmbed.toPiNat, invFun := Metric.PiNatEmbed.ofPiNat, left_inv := ⋯, right_inv := ⋯ }
Instances For
X equipped with the distance coming from ∀ i, Y i embeds in ∀ i, Y i.
Equations
- Metric.PiNatEmbed.embed X Y f x i = f i x.ofPiNat
Instances For
If the functions f i : X → Y i separate points of X, then X can be embedded into
∀ i, Y i.
Equations
- Metric.PiNatEmbed.emetricSpace separating_f = EMetricSpace.induced (Metric.PiNatEmbed.embed X Y f) ⋯ PiCountable.emetricSpace
Instances For
If the functions f i : X → Y i separate points of X, then X can be embedded into
∀ i, Y i.
Equations
- Metric.PiNatEmbed.metricSpace separating_f = EMetricSpace.toMetricSpace ⋯
Instances For
Homeomorphism between X and its embedding into ∀ i, Y i induced by a separating family of
continuous functions f i : X → Y i.
Equations
- Metric.PiNatEmbed.toPiNatHomeo X Y f continuous_f separating_f = (Metric.PiNatEmbed.toPiNatEquiv X Y f).toHomeomorphOfIsInducing ⋯
Instances For
If X is compact, and there exists a sequence of continuous functions f i : X → Y i to
metric spaces Y i that separate points on X, then X is metrizable.