Uniform structure on topological groups #
Given a topological group G, one can naturally build two uniform structures
(the "left" and "right" ones) on G inducing its topology.
This file defines typeclasses for groups equipped with either of these uniform strucures, as well
as a separate typeclass for the (very common) case where the given uniform structure
coincides with both the left and right uniform structures.
Main declarations #
IsRightUniformGroupandIsRightUniformAddGroup: Multiplicative and additive topological groups endowed with the associated right uniform structure. This means that two pointsxandyare close precisely wheny * x⁻¹is close to1/y + (-x)close to0.IsLeftUniformGroupandIsLeftUniformAddGroup: Multiplicative and additive topological groups endowed with the associated left uniform structure. This means that two pointsxandyare close precisely whenx⁻¹ * yis close to1/(-x) + yclose to0.IsUniformGroupandIsUniformAddGroup: Multiplicative and additive uniform groups, i.e., groups with uniformly continuous(*)and(⁻¹)/(+)and(-). This corresponds to the conjuction of the two conditions above, although this result is not in Mathlib yet.
Main results #
IsTopologicalAddGroup.rightUniformSpaceandcomm_topologicalAddGroup_is_uniformcan be used to construct a canonical uniformity for a topological additive group.
See Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean for further results.
Implementation Notes #
Since the most frequent use case is G being a commutative additive groups, Mathlib originally
did essentially all the theory under the assumption IsUniformGroup G.
For this reason, you may find results stated under this assumption even though they may hold
under either IsRightUniformGroup G or IsLeftUniformGroup G.
A right-uniform additive group is a topological additive group endowed with the associated
right uniform structure: the uniformity filter 𝓤 G is the inverse image of 𝓝 0 by the map
(x, y) ↦ y + (-x).
In other words, we declare that two points x and y are infinitely close
precisely when y + (-x) is infinitely close to 0.
- continuous_add : Continuous fun (p : G × G) => p.1 + p.2
- continuous_neg : Continuous fun (a : G) => -a
Instances
A right-uniform group is a topological group endowed with the associated
right uniform structure: the uniformity filter 𝓤 G is the inverse image of 𝓝 1 by the map
(x, y) ↦ y * x⁻¹.
In other words, we declare that two points x and y are infinitely close
precisely when y * x⁻¹ is infinitely close to 1.
- continuous_mul : Continuous fun (p : G × G) => p.1 * p.2
- continuous_inv : Continuous fun (a : G) => a⁻¹
Instances
A left-uniform additive group is a topological additive group endowed with the associated
left uniform structure: the uniformity filter 𝓤 G is the inverse image of 𝓝 0 by the map
(x, y) ↦ (-x) + y.
In other words, we declare that two points x and y are infinitely close
precisely when (-x) + y is infinitely close to 0.
- continuous_add : Continuous fun (p : G × G) => p.1 + p.2
- continuous_neg : Continuous fun (a : G) => -a
Instances
A left-uniform group is a topological group endowed with the associated
left uniform structure: the uniformity filter 𝓤 G is the inverse image of 𝓝 1 by the map
(x, y) ↦ x⁻¹ * y.
In other words, we declare that two points x and y are infinitely close
precisely when x⁻¹ * y is infinitely close to 1.
- continuous_mul : Continuous fun (p : G × G) => p.1 * p.2
- continuous_inv : Continuous fun (a : G) => a⁻¹
Instances
A uniform group is a group in which multiplication and inversion are uniformly continuous.
IsUniformGroup G is equivalent to the fact that G is a topological group, and the uniformity
coincides with both the associated left and right uniformities
(see IsUniformGroup.isRightUniformGroup, IsUniformGroup.isLeftUniformGroup and
IsUniformGroup.of_left_right).
Since there are topological groups where these two uniformities do not coincide, not all topological groups admit a uniform group structure in this sense. This is however the case for commutative groups, which are the main motivation for the existence of this typeclass.
- uniformContinuous_div : UniformContinuous fun (p : α × α) => p.1 / p.2
Instances
A uniform additive group is an additive group in which addition and negation are uniformly continuous.
IsUniformAddGroup G is equivalent to the fact that G is a topological additive group, and the
uniformity coincides with both the associated left and right uniformities
(see IsUniformAddGroup.isRightUniformAddGroup, IsUniformAddGroup.isLeftUniformAddGroup and
IsUniformAddGroup.of_left_right).
Since there are topological groups where these two uniformities do not coincide, not all topological groups admit a uniform group structure in this sense. This is however the case for commutative groups, which are the main motivation for the existence of this typeclass.
- uniformContinuous_sub : UniformContinuous fun (p : α × α) => p.1 - p.2
Instances
If f : ι → G × G converges to the uniformity, then any g : ι → G × G converges to the
uniformity iff f * g does. This is often useful when f is valued in the diagonal,
in which case its convergence is automatic.
If f : ι → G × G converges to the uniformity, then any g : ι → G × G
converges to the uniformity iff f + g does. This is often useful when f is valued in the
diagonal, in which case its convergence is automatic.
If g : ι → G × G converges to the uniformity, then any f : ι → G × G converges to the
uniformity iff f * g does. This is often useful when g is valued in the diagonal,
in which case its convergence is automatic.
If g : ι → G × G converges to the uniformity, then any f : ι → G × G
converges to the uniformity iff f + g does. This is often useful when g is valued in the
diagonal, in which case its convergence is automatic.
Note: this assumes [IsLeftUniformGroup β] [IsRightUniformGroup β] instead of the more typical
(and equivalent) [IsUniformGroup β] because this is used in the proof of said equivalence.
Note: this assumes [IsLeftUniformAddGroup β] [IsRightUniformAddGroup β]
instead of the more typical (and equivalent) [IsUniformAddGroup β] because this is used
in the proof of said equivalence.
Note: this assumes [IsLeftUniformGroup β] [IsRightUniformGroup β] instead of the more typical
(and equivalent) [IsUniformGroup β] because this is used in the proof of said equivalence.
Note: this assumes [IsLeftUniformAddGroup β] [IsRightUniformAddGroup β]
instead of the more typical (and equivalent) [IsUniformAddGroup β] because this is used
in the proof of said equivalence.
Note: this assumes [IsLeftUniformGroup β] [IsRightUniformGroup β] instead of the more typical
(and equivalent) [IsUniformGroup β] because this is used in the proof of said equivalence.
Note: this assumes [IsLeftUniformAddGroup β] [IsRightUniformAddGroup β]
instead of the more typical (and equivalent) [IsUniformAddGroup β] because this is used
in the proof of said equivalence.
A group homomorphism (a bundled morphism of a type that implements MonoidHomClass) between
two uniform groups is uniformly continuous provided that it is continuous at one. See also
continuous_of_continuousAt_one.
An additive group homomorphism (a bundled morphism of a type that implements
AddMonoidHomClass) between two uniform additive groups is uniformly continuous provided that it
is continuous at zero. See also continuous_of_continuousAt_zero.
A homomorphism from a uniform group to a discrete uniform group is continuous if and only if its kernel is open.
A homomorphism from a uniform additive group to a discrete uniform additive group is continuous if and only if its kernel is open.
The right uniformity on a topological group (as opposed to the left uniformity).
Warning: in general the right and left uniformities do not coincide and so one does not obtain a
IsUniformGroup structure. Two important special cases where they do coincide are for
commutative groups (see isUniformGroup_of_commGroup) and for compact groups (see
IsUniformGroup.of_compactSpace).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The right uniformity on a topological additive group (as opposed to the left uniformity).
Warning: in general the right and left uniformities do not coincide and so one does not obtain a
IsUniformAddGroup structure. Two important special cases where they do coincide are for
commutative additive groups (see isUniformAddGroup_of_addCommGroup) and for compact
additive groups (see IsUniformAddGroup.of_compactSpace).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Alias of IsTopologicalAddGroup.rightUniformSpace.
The right uniformity on a topological additive group (as opposed to the left uniformity).
Warning: in general the right and left uniformities do not coincide and so one does not obtain a
IsUniformAddGroup structure. Two important special cases where they do coincide are for
commutative additive groups (see isUniformAddGroup_of_addCommGroup) and for compact
additive groups (see IsUniformAddGroup.of_compactSpace).
Instances For
Alias of IsTopologicalGroup.rightUniformSpace.
The right uniformity on a topological group (as opposed to the left uniformity).
Warning: in general the right and left uniformities do not coincide and so one does not obtain a
IsUniformGroup structure. Two important special cases where they do coincide are for
commutative groups (see isUniformGroup_of_commGroup) and for compact groups (see
IsUniformGroup.of_compactSpace).
Instances For
Alias of isUniformGroup_of_commGroup.
Alias of IsUniformAddGroup.rightUniformSpace_eq.
Alias of IsUniformGroup.rightUniformSpace_eq.