Open subgroups of a topological groups #
This files builds the lattice open_subgroup G
of open subgroups in a topological group G
,
and its additive version open_add_subgroup
. This lattice has a top element, the subgroup of all
elements, but no bottom element in general. The trivial subgroup which is the natural candidate
bottom has no reason to be open (this happens only in discrete groups).
Note that this notion is especially relevant in a non-archimedean context, for instance for
p
-adic groups.
Main declarations #
open_subgroup.is_closed
: An open subgroup is automatically closed.subgroup.is_open_mono
: A subgroup containing an open subgroup is open. There are also versions for additive groups, submodules and ideals.open_subgroup.comap
: Open subgroups can be pulled back by a continuous group morphism.
TODO #
- Prove that the identity component of a locally path connected group is an open subgroup. Up to now this file is really geared towards non-archimedean algebra, not Lie groups.
- to_add_subgroup : add_subgroup G
- is_open' : is_open self.to_add_subgroup.carrier
The type of open subgroups of a topological additive group.
Instances for open_add_subgroup
- open_add_subgroup.has_sizeof_inst
- open_add_subgroup.has_coe_set
- open_add_subgroup.has_mem
- open_add_subgroup.has_coe_add_subgroup
- open_add_subgroup.has_coe_opens
- open_add_subgroup.has_top
- open_add_subgroup.inhabited
- open_add_subgroup.partial_order
- open_add_subgroup.semilattice_inf
- open_add_subgroup.order_top
- open_add_subgroup.semilattice_sup
- open_add_subgroup.lattice
- to_subgroup : subgroup G
- is_open' : is_open self.to_subgroup.carrier
The type of open subgroups of a topological group.
Instances for open_subgroup
- open_subgroup.has_sizeof_inst
- open_subgroup.has_coe_set
- open_subgroup.has_mem
- open_subgroup.has_coe_subgroup
- open_subgroup.has_coe_opens
- open_subgroup.has_top
- open_subgroup.inhabited
- open_subgroup.partial_order
- open_subgroup.semilattice_inf
- open_subgroup.order_top
- open_subgroup.semilattice_sup
- open_subgroup.lattice
Equations
- open_add_subgroup.has_coe_set = {coe := λ (U : open_add_subgroup G), ↑(U.to_add_subgroup)}
Equations
- open_subgroup.has_coe_set = {coe := λ (U : open_subgroup G), ↑(U.to_subgroup)}
Equations
- open_subgroup.has_mem = {mem := λ (g : G) (U : open_subgroup G), g ∈ ↑U}
Equations
- open_add_subgroup.has_mem = {mem := λ (g : G) (U : open_add_subgroup G), g ∈ ↑U}
Equations
- open_subgroup.has_coe_subgroup = {coe := open_subgroup.to_subgroup _inst_2}
Equations
Equations
- open_subgroup.has_coe_opens = {coe := λ (U : open_subgroup G), ⟨↑U, _⟩}
Equations
- open_add_subgroup.has_coe_opens = {coe := λ (U : open_add_subgroup G), ⟨↑U, _⟩}
Equations
Equations
The product of two open subgroups as an open subgroup of the product group.
The product of two open subgroups as an open subgroup of the product group.
Equations
- open_subgroup.partial_order = {le := λ (U V : open_subgroup G), ∀ ⦃x : G⦄, x ∈ U → x ∈ V, lt := partial_order.lt (partial_order.lift coe open_subgroup.coe_injective), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _}
Equations
- open_add_subgroup.partial_order = {le := λ (U V : open_add_subgroup G), ∀ ⦃x : G⦄, x ∈ U → x ∈ V, lt := partial_order.lt (partial_order.lift coe open_add_subgroup.coe_injective), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _}
Equations
- open_add_subgroup.semilattice_inf = {inf := λ (U V : open_add_subgroup G), {to_add_subgroup := {carrier := (↑U ⊓ ↑V).carrier, add_mem' := _, zero_mem' := _, neg_mem' := _}, is_open' := _}, le := partial_order.le open_add_subgroup.partial_order, lt := partial_order.lt open_add_subgroup.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- open_subgroup.semilattice_inf = {inf := λ (U V : open_subgroup G), {to_subgroup := {carrier := (↑U ⊓ ↑V).carrier, mul_mem' := _, one_mem' := _, inv_mem' := _}, is_open' := _}, le := partial_order.le open_subgroup.partial_order, lt := partial_order.lt open_subgroup.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, inf_le_left := _, inf_le_right := _, le_inf := _}
The preimage of an open_add_subgroup
along a continuous add_monoid
homomorphism
is an open_add_subgroup
.
Equations
- open_add_subgroup.comap f hf H = {to_add_subgroup := {carrier := (add_subgroup.comap f ↑H).carrier, add_mem' := _, zero_mem' := _, neg_mem' := _}, is_open' := _}
The preimage of an open_subgroup
along a continuous monoid
homomorphism
is an open_subgroup
.
Equations
- open_subgroup.comap f hf H = {to_subgroup := {carrier := (subgroup.comap f ↑H).carrier, mul_mem' := _, one_mem' := _, inv_mem' := _}, is_open' := _}
If a subgroup of an additive topological group has 0
in its interior, then it is
open.
If a subgroup of a topological group has 1
in its interior, then it is open.
Equations
- open_subgroup.semilattice_sup = {sup := λ (U V : open_subgroup G), {to_subgroup := {carrier := (↑U ⊔ ↑V).carrier, mul_mem' := _, one_mem' := _, inv_mem' := _}, is_open' := _}, le := semilattice_inf.le open_subgroup.semilattice_inf, lt := semilattice_inf.lt open_subgroup.semilattice_inf, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- open_add_subgroup.semilattice_sup = {sup := λ (U V : open_add_subgroup G), {to_add_subgroup := {carrier := (↑U ⊔ ↑V).carrier, add_mem' := _, zero_mem' := _, neg_mem' := _}, is_open' := _}, le := semilattice_inf.le open_add_subgroup.semilattice_inf, lt := semilattice_inf.lt open_add_subgroup.semilattice_inf, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- open_subgroup.lattice = {sup := semilattice_sup.sup open_subgroup.semilattice_sup, le := semilattice_sup.le open_subgroup.semilattice_sup, lt := semilattice_sup.lt open_subgroup.semilattice_sup, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := semilattice_inf.inf open_subgroup.semilattice_inf, inf_le_left := _, inf_le_right := _, le_inf := _}
Equations
- open_add_subgroup.lattice = {sup := semilattice_sup.sup open_add_subgroup.semilattice_sup, le := semilattice_sup.le open_add_subgroup.semilattice_sup, lt := semilattice_sup.lt open_add_subgroup.semilattice_sup, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := semilattice_inf.inf open_add_subgroup.semilattice_inf, inf_le_left := _, inf_le_right := _, le_inf := _}