Topological groups #
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 := _}
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
.
- 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
.
- 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'
.
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.
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
- uniform_add_group.to_topological_add_group
- topological_ring.to_topological_add_group
- add_group_filter_basis.is_topological_add_group
- nonarchimedean_add_group.to_topological_add_group
- linear_ordered_add_comm_group.topological_add_group
- prod.topological_add_group
- pi.topological_add_group
- add_opposite.topological_add_group
- add_subgroup.topological_add_group
- add_subgroup.topological_closure_topological_add_group
- topological_add_group_quotient
- additive.topological_add_group
- add_units.topological_add_group
- submodule.topological_add_group
- maximal_spectrum.tg
- function_field.Fqt_infty.topological_add_group
- tgq
- real.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_group_is_uniform
.
Instances
- uniform_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
- subgroup.topological_closure_topological_group
- topological_group_quotient
- multiplicative.topological_group
- units.topological_group
- ufi_tg
- finite_idele_group'.topological_group
- number_field.I_K_f.topological_group
- number_field.I_K.topological_group
- number_field.C_K.topological_group
- number_field.class_group.topological_group
- alg_equiv.topological_group
- G_K.topological_group
- G_K_ab.topological_group
- function_field.I_F_f.topological_group
- function_field.I_F.topological_group
- function_field.C_F.topological_group
- function_field.class_group.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 αᵐᵒᵖ
.
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 := _}
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 := _}
- 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
.
- 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
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 := _}
- to_add_comm_group : add_comm_group G
- Z : filter G
- zero_Z : 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 ×ᶠ 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.
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 separated topological group in which there exists a compact set with nonempty interior is locally compact.
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 topological group isomorphism between the units of a product of two monoids, and the product of the units of each monoid.
Equations
- units.homeomorph.prod_units = {to_equiv := {to_fun := mul_equiv.prod_units.to_fun, inv_fun := mul_equiv.prod_units.inv_fun, left_inv := _, right_inv := _}, continuous_to_fun := _, continuous_inv_fun := _}
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.
- 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.
A version of the global continuous_mul
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
).
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
Equations
- group_topology.has_Inf = {Inf := λ (S : set (group_topology α)), {to_topological_space := 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 := 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 := Inf group_topology.has_Inf, Inf_le := _, le_Inf := _}
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 := 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.
Equations
- group_topology.coinduced f = Inf {b : group_topology β | topological_space.coinduced f t ≤ b.to_topological_space}