Topological groups #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines the following typeclasses:
-
topological_group
,topological_add_group
: multiplicative and additive topological groups, i.e., groups with continuous(*)
and(⁻¹)
/(+)
and(-)
; -
has_continuous_sub G
means thatG
has a continuous subtraction operation.
There is an instance deducing has_continuous_sub
from topological_group
but we use a separate
typeclass because, e.g., ℕ
and ℝ≥0
have continuous subtraction but are not additive groups.
We also define homeomorph
versions of several equiv
s: homeomorph.mul_left
,
homeomorph.mul_right
, homeomorph.inv
, and prove a few facts about neighbourhood filters in
groups.
Tags #
topological space, group, topological group
Groups with continuous multiplication #
In this section we prove a few statements about groups with continuous (*)
.
Addition from the left in a topological additive group as a homeomorphism.
Equations
- homeomorph.add_left a = {to_equiv := {to_fun := (equiv.add_left a).to_fun, inv_fun := (equiv.add_left a).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Multiplication from the left in a topological group as a homeomorphism.
Equations
- homeomorph.mul_left a = {to_equiv := {to_fun := (equiv.mul_left a).to_fun, inv_fun := (equiv.mul_left a).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Addition from the right in a topological additive group as a homeomorphism.
Equations
- homeomorph.add_right a = {to_equiv := {to_fun := (equiv.add_right a).to_fun, inv_fun := (equiv.add_right a).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Multiplication from the right in a topological group as a homeomorphism.
Equations
- homeomorph.mul_right a = {to_equiv := {to_fun := (equiv.mul_right a).to_fun, inv_fun := (equiv.mul_right a).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
- continuous_neg : continuous (λ (a : G), -a)
Basic hypothesis to talk about a topological additive group. A topological additive group
over M
, for example, is obtained by requiring the instances add_group M
and
has_continuous_add M
and has_continuous_neg M
.
Instances of this typeclass
- has_continuous_neg_of_discrete_topology
- topological_add_group.to_has_continuous_neg
- topological_ring.to_has_continuous_neg
- prod.has_continuous_neg
- pi.has_continuous_neg
- pi.has_continuous_neg'
- additive.has_continuous_neg
- add_opposite.has_continuous_neg
- mul_opposite.has_continuous_neg
- matrix.has_continuous_neg
- metric.sphere.has_continuous_neg
- metric.ball.has_continuous_neg
- metric.closed_ball.has_continuous_neg
- triv_sq_zero_ext.has_continuous_neg
- continuous_inv : continuous (λ (a : G), a⁻¹)
Basic hypothesis to talk about a topological group. A topological group over M
, for example,
is obtained by requiring the instances group M
and has_continuous_mul M
and
has_continuous_inv M
.
If a function converges to a value in a multiplicative topological group, then its inverse
converges to the inverse of this value. For the version in normed fields assuming additionally
that the limit is nonzero, use tendsto.inv'
.
If a function converges to a value in an additive topological group, then its negation converges to the negation of this value.
A version of pi.has_continuous_neg
for non-dependent functions. It is needed
because sometimes Lean fails to use pi.has_continuous_neg
for non-dependent functions.
A version of pi.has_continuous_inv
for non-dependent functions. It is needed because sometimes
Lean fails to use pi.has_continuous_inv
for non-dependent functions.
Negation in a topological group as a homeomorphism.
Equations
- homeomorph.neg G = {to_equiv := {to_fun := (equiv.neg G).to_fun, inv_fun := (equiv.neg G).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Inversion in a topological group as a homeomorphism.
Equations
- homeomorph.inv G = {to_equiv := {to_fun := (equiv.inv G).to_fun, inv_fun := (equiv.inv G).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Topological groups #
A topological group is a group in which the multiplication and inversion operations are
continuous. Topological additive groups are defined in the same way. Equivalently, we can require
that the division operation λ x y, x * y⁻¹
(resp., subtraction) is continuous.
- to_has_continuous_add : has_continuous_add G
- to_has_continuous_neg : has_continuous_neg G
A topological (additive) group is a group in which the addition and negation operations are continuous.
Instances of this typeclass
- uniform_add_group.to_topological_add_group
- linear_ordered_add_comm_group.topological_add_group
- topological_ring.to_topological_add_group
- seminormed_add_comm_group.to_topological_add_group
- add_group_filter_basis.is_topological_add_group
- nonarchimedean_add_group.to_topological_add_group
- prod.topological_add_group
- pi.topological_add_group
- add_opposite.topological_add_group
- add_subgroup.topological_add_group
- topological_add_group_quotient
- additive.topological_add_group
- add_units.topological_add_group
- real.topological_add_group
- rat.topological_add_group
- submodule.topological_add_group
- submodule.topological_add_group_quotient
- continuous_linear_map.topological_add_group
- matrix.topological_add_group
- add_circle.topological_add_group
- continuous_map.topological_add_group
- weak_bilin.topological_add_group
- continuous_add_monoid_hom.topological_add_group
- schwartz_map.topological_add_group
- tangent_space.topological_add_group
- to_has_continuous_mul : has_continuous_mul G
- to_has_continuous_inv : has_continuous_inv G
A topological group is a group in which the multiplication and inversion operations are continuous.
When you declare an instance that does not already have a uniform_space
instance,
you should also provide an instance of uniform_space
and uniform_group
using
topological_group.to_uniform_space
and topological_comm_group_is_uniform
.
Instances of this typeclass
- uniform_group.to_topological_group
- seminormed_comm_group.to_topological_group
- group_filter_basis.is_topological_group
- nonarchimedean_group.to_topological_group
- prod.topological_group
- pi.topological_group
- mul_opposite.topological_group
- subgroup.topological_group
- topological_group_quotient
- multiplicative.topological_group
- units.topological_group
- continuous_map.topological_group
- metric.sphere.topological_group
- circle.topological_group
- alg_equiv.topological_group
- continuous_monoid_hom.topological_group
- pontryagin_dual.topological_group
Conjugation is jointly continuous on G × G
when both mul
and inv
are continuous.
Conjugation is jointly continuous on G × G
when both mul
and inv
are
continuous.
Conjugation by a fixed element is continuous when add
is continuous.
Conjugation by a fixed element is continuous when mul
is continuous.
Conjugation acting on fixed element of the additive group is continuous when both
add
and neg
are continuous.
Conjugation acting on fixed element of the group is continuous when both mul
and
inv
are continuous.
If addition is continuous in α
, then it also is in αᵃᵒᵖ
.
If multiplication is continuous in α
, then it also is in αᵐᵒᵖ
.
The map (x, y) ↦ (x, xy)
as a homeomorphism. This is a shear mapping.
Equations
- homeomorph.shear_mul_right G = {to_equiv := {to_fun := ((equiv.refl G).prod_shear equiv.mul_left).to_fun, inv_fun := ((equiv.refl G).prod_shear equiv.mul_left).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
The map (x, y) ↦ (x, x + y)
as a homeomorphism.
This is a shear mapping.
Equations
- homeomorph.shear_add_right G = {to_equiv := {to_fun := ((equiv.refl G).prod_shear equiv.add_left).to_fun, inv_fun := ((equiv.refl G).prod_shear equiv.add_left).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
The (topological-space) closure of a subgroup of a space M
with has_continuous_mul
is
itself a subgroup.
The (topological-space) closure of an additive subgroup of a space M
with
has_continuous_add
is itself an additive subgroup.
The topological closure of a normal additive subgroup is normal.
The topological closure of a normal subgroup is normal.
The connected component of 1 is a subgroup of G
.
Equations
- subgroup.connected_component_of_one G = {carrier := connected_component 1, mul_mem' := _, one_mem' := _, inv_mem' := _}
The connected component of 0 is a subgroup of G
.
Equations
- add_subgroup.connected_component_of_zero G = {carrier := connected_component 0, add_mem' := _, zero_mem' := _, neg_mem' := _}
If a subgroup of a topological group is commutative, then so is its topological closure.
Equations
- s.comm_group_topological_closure hs = {mul := group.mul s.topological_closure.to_group, mul_assoc := _, one := group.one s.topological_closure.to_group, one_mul := _, mul_one := _, npow := group.npow s.topological_closure.to_group, npow_zero' := _, npow_succ' := _, inv := group.inv s.topological_closure.to_group, div := group.div s.topological_closure.to_group, div_eq_mul_inv := _, zpow := group.zpow s.topological_closure.to_group, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _, mul_comm := _}
If a subgroup of an additive topological group is commutative, then so is its topological closure.
Equations
- s.add_comm_group_topological_closure hs = {add := add_group.add s.topological_closure.to_add_group, add_assoc := _, zero := add_group.zero s.topological_closure.to_add_group, zero_add := _, add_zero := _, nsmul := add_group.nsmul s.topological_closure.to_add_group, nsmul_zero' := _, nsmul_succ' := _, neg := add_group.neg s.topological_closure.to_add_group, sub := add_group.sub s.topological_closure.to_add_group, sub_eq_add_neg := _, zsmul := add_group.zsmul s.topological_closure.to_add_group, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _, add_comm := _}
A monoid homomorphism (a bundled morphism of a type that implements monoid_hom_class
) from a
topological group to a topological monoid is continuous provided that it is continuous at one. See
also uniform_continuous_of_continuous_at_one
.
An additive monoid homomorphism (a bundled morphism of a type that implements
add_monoid_hom_class
) from an additive topological group to an additive topological monoid is
continuous provided that it is continuous at zero. See also
uniform_continuous_of_continuous_at_zero
.
Neighborhoods in the quotient are precisely the map of neighborhoods in the prequotient.
Neighborhoods in the quotient are precisely the map of neighborhoods in the prequotient.
Any first countable topological additive group has an antitone neighborhood basis
u : ℕ → set G
for which u (n + 1) + u (n + 1) ⊆ u n
. The existence of such a neighborhood basis
is a key tool for quotient_add_group.complete_space
Any first countable topological group has an antitone neighborhood basis u : ℕ → set G
for
which (u (n + 1)) ^ 2 ⊆ u n
. The existence of such a neighborhood basis is a key tool for
quotient_group.complete_space
In a first countable topological additive group G
with normal additive subgroup
N
, 0 : G ⧸ N
has a countable neighborhood basis.
In a first countable topological group G
with normal subgroup N
, 1 : G ⧸ N
has a
countable neighborhood basis.
- continuous_sub : continuous (λ (p : G × G), p.fst - p.snd)
A typeclass saying that λ p : G × G, p.1 - p.2
is a continuous function. This property
automatically holds for topological additive groups but it also holds, e.g., for ℝ≥0
.
Instances of this typeclass
- continuous_div' : continuous (λ (p : G × G), p.fst / p.snd)
A typeclass saying that λ p : G × G, p.1 / p.2
is a continuous function. This property
automatically holds for topological groups. Lemmas using this class have primes.
The unprimed version is for group_with_zero
.
Instances of this typeclass
A version of homeomorph.mul_left a b⁻¹
that is defeq to a / b
.
Equations
- homeomorph.div_left x = {to_equiv := {to_fun := (equiv.div_left x).to_fun, inv_fun := (equiv.div_left x).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
A version of homeomorph.add_left a (-b)
that is defeq to a - b
.
Equations
- homeomorph.sub_left x = {to_equiv := {to_fun := (equiv.sub_left x).to_fun, inv_fun := (equiv.sub_left x).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
A version of homeomorph.mul_right a⁻¹ b
that is defeq to b / a
.
Equations
- homeomorph.div_right x = {to_equiv := {to_fun := (equiv.div_right x).to_fun, inv_fun := (equiv.div_right x).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
A version of homeomorph.add_right (-a) b
that is defeq to b - a
.
Equations
- homeomorph.sub_right x = {to_equiv := {to_fun := (equiv.sub_right x).to_fun, inv_fun := (equiv.sub_right x).inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
Topological operations on pointwise sums and products #
A few results about interior and closure of the pointwise addition/multiplication of sets in groups
with continuous addition/multiplication. See also submonoid.top_closure_mul_self_eq
in
topology.algebra.monoid
.
- to_add_comm_group : add_comm_group G
- Z : filter G
- zero_Z : has_pure.pure 0 ≤ add_group_with_zero_nhd.Z G
- sub_Z : filter.tendsto (λ (p : G × G), p.fst - p.snd) ((add_group_with_zero_nhd.Z G).prod (add_group_with_zero_nhd.Z G)) (add_group_with_zero_nhd.Z G)
additive group with a neighbourhood around 0. Only used to construct a topology and uniform space.
This is currently only available for commutative groups, but it can be extended to non-commutative groups too.
Instances for add_group_with_zero_nhd
- add_group_with_zero_nhd.has_sizeof_inst
A subgroup S
of a topological group G
acts on G
properly discontinuously on the left, if
it is discrete in the sense that S ∩ K
is finite for all compact K
. (See also
discrete_topology
.)
A subgroup S
of an additive topological group G
acts on G
properly
discontinuously on the left, if it is discrete in the sense that S ∩ K
is finite for all compact
K
. (See also discrete_topology
.
A subgroup S
of an additive topological group G
acts on G
properly
discontinuously on the right, if it is discrete in the sense that S ∩ K
is finite for all compact
K
. (See also discrete_topology
.)
If G
is Hausdorff, this can be combined with t2_space_of_properly_discontinuous_vadd_of_t2_space
to show that the quotient group G ⧸ S
is Hausdorff.
A subgroup S
of a topological group G
acts on G
properly discontinuously on the right, if
it is discrete in the sense that S ∩ K
is finite for all compact K
. (See also
discrete_topology
.)
If G
is Hausdorff, this can be combined with t2_space_of_properly_discontinuous_smul_of_t2_space
to show that the quotient group G ⧸ S
is Hausdorff.
Some results about an open set containing the product of two sets in a topological group.
Given a compact set K
inside an open set U
, there is a open neighborhood V
of
0
such that K + V ⊆ U
.
Given a compact set K
inside an open set U
, there is a open neighborhood V
of 1
such that K * V ⊆ U
.
Given a compact set K
inside an open set U
, there is a open neighborhood V
of
0
such that V + K ⊆ U
.
Given a compact set K
inside an open set U
, there is a open neighborhood V
of 1
such that V * K ⊆ U
.
A compact set is covered by finitely many left additive translates of a set with non-empty interior.
A compact set is covered by finitely many left multiplicative translates of a set with non-empty interior.
Every locally compact separable topological group is σ-compact. Note: this is not true if we drop the topological group hypothesis.
Every locally compact separable topological group is σ-compact. Note: this is not true if we drop the topological group hypothesis.
Given two compact sets in a noncompact additive topological group, there is a translate of the second one that is disjoint from the first one.
Given two compact sets in a noncompact topological group, there is a translate of the second one that is disjoint from the first one.
In a locally compact additive group, any neighborhood of the identity contains a compact closed neighborhood of the identity, even without separation assumptions on the space.
In a locally compact group, any neighborhood of the identity contains a compact closed neighborhood of the identity, even without separation assumptions on the space.
On an additive topological group, 𝓝 : G → filter G
can be promoted to an
add_hom
.
On a topological group, 𝓝 : G → filter G
can be promoted to a mul_hom
.
The quotient of a second countable additive topological group by a subgroup is second countable.
The quotient of a second countable topological group by a subgroup is second countable.
If G
is a group with topological ⁻¹
, then it is homeomorphic to its units.
Equations
- to_units_homeomorph = {to_equiv := to_units.to_equiv, continuous_to_fun := _, continuous_inv_fun := _}
If G
is an additive group with topological negation, then it is homeomorphic to
its additive units.
Equations
- to_add_units_homeomorph = {to_equiv := to_add_units.to_equiv, continuous_to_fun := _, continuous_inv_fun := _}
The topological group isomorphism between the units of a product of two monoids, and the product of the units of each monoid.
Equations
The topological group isomorphism between the additive units of a product of two additive monoids, and the product of the additive units of each additive monoid.
Equations
Lattice of group topologies #
We define a type class group_topology α
which endows a group α
with a topology such that all
group operations are continuous.
Group topologies on a fixed group α
are ordered, by reverse inclusion. They form a complete
lattice, with ⊥
the discrete topology and ⊤
the indiscrete topology.
Any function f : α → β
induces coinduced f : topological_space α → group_topology β
.
The additive version add_group_topology α
and corresponding results are provided as well.
- to_topological_space : topological_space α
- to_topological_group : topological_group α
A group topology on a group α
is a topology for which multiplication and inversion
are continuous.
Instances for group_topology
- group_topology.has_sizeof_inst
- group_topology.partial_order
- group_topology.has_top
- group_topology.has_bot
- group_topology.bounded_order
- group_topology.has_inf
- group_topology.semilattice_inf
- group_topology.inhabited
- group_topology.has_Inf
- group_topology.complete_semilattice_Inf
- group_topology.complete_lattice
- to_topological_space : topological_space α
- to_topological_add_group : topological_add_group α
An additive group topology on an additive group α
is a topology for which addition and
negation are continuous.
Instances for add_group_topology
- add_group_topology.has_sizeof_inst
- add_group_topology.partial_order
- add_group_topology.has_top
- add_group_topology.has_bot
- add_group_topology.bounded_order
- add_group_topology.has_inf
- add_group_topology.semilattice_inf
- add_group_topology.inhabited
- add_group_topology.has_Inf
- add_group_topology.complete_semilattice_Inf
- add_group_topology.complete_lattice
A version of the global continuous_add
suitable for dot notation.
A version of the global continuous_mul
suitable for dot notation.
A version of the global continuous_neg
suitable for dot notation.
A version of the global continuous_inv
suitable for dot notation.
The ordering on group topologies on the group γ
. t ≤ s
if every set open in s
is also open
in t
(t
is finer than s
).
The ordering on group topologies on the group γ
. t ≤ s
if every set open in s
is also open in t
(t
is finer than s
).
Equations
- group_topology.has_top = {top := {to_topological_space := ⊤, to_topological_group := _}}
Equations
Equations
- group_topology.has_bot = {bot := {to_topological_space := ⊥, to_topological_group := _}}
Equations
Equations
- group_topology.has_inf = {inf := λ (x y : group_topology α), {to_topological_space := x.to_topological_space ⊓ y.to_topological_space, to_topological_group := _}}
Equations
- add_group_topology.has_inf = {inf := λ (x y : add_group_topology α), {to_topological_space := x.to_topological_space ⊓ y.to_topological_space, to_topological_add_group := _}}
Equations
Equations
Infimum of a collection of group topologies.
Equations
- group_topology.has_Inf = {Inf := λ (S : set (group_topology α)), {to_topological_space := has_Inf.Inf (group_topology.to_topological_space '' S), to_topological_group := _}}
Infimum of a collection of additive group topologies
Equations
- add_group_topology.has_Inf = {Inf := λ (S : set (add_group_topology α)), {to_topological_space := has_Inf.Inf (add_group_topology.to_topological_space '' S), to_topological_add_group := _}}
Group topologies on γ
form a complete lattice, with ⊥
the discrete topology and ⊤
the
indiscrete topology.
The infimum of a collection of group topologies is the topology generated by all their open sets (which is a group topology).
The supremum of two group topologies s
and t
is the infimum of the family of all group
topologies contained in the intersection of s
and t
.
Equations
- group_topology.complete_semilattice_Inf = {le := partial_order.le group_topology.partial_order, lt := partial_order.lt group_topology.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, Inf := has_Inf.Inf group_topology.has_Inf, Inf_le := _, le_Inf := _}
Group topologies on γ
form a complete lattice, with ⊥
the discrete topology and
⊤
the indiscrete topology.
The infimum of a collection of group topologies is the topology generated by all their open sets (which is a group topology).
The supremum of two group topologies s
and t
is the infimum of the family of all group
topologies contained in the intersection of s
and t
.
Equations
- add_group_topology.complete_semilattice_Inf = {le := partial_order.le add_group_topology.partial_order, lt := partial_order.lt add_group_topology.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, Inf := has_Inf.Inf add_group_topology.has_Inf, Inf_le := _, le_Inf := _}
Equations
- add_group_topology.complete_lattice = {sup := complete_lattice.sup (complete_lattice_of_complete_semilattice_Inf (add_group_topology α)), le := semilattice_inf.le add_group_topology.semilattice_inf, lt := semilattice_inf.lt add_group_topology.semilattice_inf, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := has_inf.inf add_group_topology.has_inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (complete_lattice_of_complete_semilattice_Inf (add_group_topology α)), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (complete_lattice_of_complete_semilattice_Inf (add_group_topology α)), Inf_le := _, le_Inf := _, top := ⊤, bot := ⊥, le_top := _, bot_le := _}
Equations
- group_topology.complete_lattice = {sup := complete_lattice.sup (complete_lattice_of_complete_semilattice_Inf (group_topology α)), le := semilattice_inf.le group_topology.semilattice_inf, lt := semilattice_inf.lt group_topology.semilattice_inf, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := has_inf.inf group_topology.has_inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (complete_lattice_of_complete_semilattice_Inf (group_topology α)), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (complete_lattice_of_complete_semilattice_Inf (group_topology α)), Inf_le := _, le_Inf := _, top := ⊤, bot := ⊥, le_top := _, bot_le := _}
Given f : α → β
and a topology on α
, the coinduced additive group topology on β
is the finest topology such that f
is continuous and β
is a topological additive group.
Equations
Given f : α → β
and a topology on α
, the coinduced group topology on β
is the finest
topology such that f
is continuous and β
is a topological group.