Lattice structure of subgroups #
We prove subgroups of a group form a complete lattice.
There are also theorems about the subgroups generated by an element or a subset of a group, defined both inductively and as the infimum of the set of subgroups containing a given element/subset.
Special thanks goes to Amelia Livingston and Yury Kudryashov for their help and inspiration.
Main definitions #
Notation used here:
G
is aGroup
k
is a set of elements of typeG
Definitions in the file:
CompleteLattice (Subgroup G)
: the subgroups ofG
form a complete latticeSubgroup.closure k
: the minimal subgroup that includes the setk
Subgroup.gi
:closure
forms a Galois insertion with the coercion to set
Implementation notes #
Subgroup inclusion is denoted ≤
rather than ⊆
, although ∈
is defined as
membership of a subgroup's underlying set.
Tags #
subgroup, subgroups
Conversion to/from Additive
/Multiplicative
#
Subgroups of a group G
are isomorphic to additive subgroups of Additive G
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Additive subgroup of an additive group Additive G
are isomorphic to subgroup of G
.
Equations
Instances For
Additive subgroups of an additive group A
are isomorphic to subgroups of Multiplicative A
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Subgroups of an additive group Multiplicative A
are isomorphic to additive subgroups of A
.
Equations
Instances For
The subgroup G
of the group G
.
Equations
- Subgroup.instTop = { top := let __src := ⊤; { toSubmonoid := __src, inv_mem' := ⋯ } }
The AddSubgroup G
of the AddGroup G
.
Equations
- AddSubgroup.instTop = { top := let __src := ⊤; { toAddSubmonoid := __src, neg_mem' := ⋯ } }
The top subgroup is isomorphic to the group.
This is the group version of Submonoid.topEquiv
.
Equations
Instances For
The top additive subgroup is isomorphic to the additive group.
This is the additive group version of AddSubmonoid.topEquiv
.
Equations
Instances For
The trivial subgroup {1}
of a group G
.
Equations
- Subgroup.instBot = { bot := let __src := ⊥; { toSubmonoid := __src, inv_mem' := ⋯ } }
The trivial AddSubgroup
{0}
of an AddGroup
G
.
Equations
- AddSubgroup.instBot = { bot := let __src := ⊥; { toAddSubmonoid := __src, neg_mem' := ⋯ } }
Equations
- Subgroup.instInhabited = { default := ⊥ }
Equations
- AddSubgroup.instInhabited = { default := ⊥ }
Equations
- Subgroup.instUniqueSubtypeMemBot = { default := 1, uniq := ⋯ }
Equations
- AddSubgroup.instUniqueSubtypeMemBot = { default := 0, uniq := ⋯ }
A subgroup is either the trivial subgroup or nontrivial.
A subgroup is either the trivial subgroup or nontrivial.
A subgroup is either the trivial subgroup or contains a nonzero element.
The inf of two subgroups is their intersection.
Equations
- Subgroup.instMin = { min := fun (H₁ H₂ : Subgroup G) => let __src := H₁.toSubmonoid ⊓ H₂.toSubmonoid; { toSubmonoid := __src, inv_mem' := ⋯ } }
The inf of two AddSubgroup
s is their intersection.
Equations
- AddSubgroup.instMin = { min := fun (H₁ H₂ : AddSubgroup G) => let __src := H₁.toAddSubmonoid ⊓ H₂.toAddSubmonoid; { toAddSubmonoid := __src, neg_mem' := ⋯ } }
Equations
- Subgroup.instInfSet = { sInf := fun (s : Set (Subgroup G)) => let __src := (⨅ S ∈ s, S.toSubmonoid).copy (⋂ S ∈ s, ↑S) ⋯; { toSubmonoid := __src, inv_mem' := ⋯ } }
Equations
- AddSubgroup.instInfSet = { sInf := fun (s : Set (AddSubgroup G)) => let __src := (⨅ S ∈ s, S.toAddSubmonoid).copy (⋂ S ∈ s, ↑S) ⋯; { toAddSubmonoid := __src, neg_mem' := ⋯ } }
Subgroups of a group form a complete lattice.
Equations
- Subgroup.instCompleteLattice = CompleteLattice.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
The AddSubgroup
s of an AddGroup
form a complete lattice.
Equations
- AddSubgroup.instCompleteLattice = CompleteLattice.mk ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
- Subgroup.instUniqueOfSubsingleton = { default := ⊥, uniq := ⋯ }
Equations
- AddSubgroup.instUniqueOfSubsingleton = { default := ⊥, uniq := ⋯ }
The AddSubgroup
generated by a set
Equations
- AddSubgroup.closure k = sInf {K : AddSubgroup G | k ⊆ ↑K}
Instances For
The subgroup generated by a set includes the set.
The AddSubgroup
generated by a set includes the set.
An additive subgroup K
includes closure k
if and only if it includes k
An induction principle for closure membership. If p
holds for 1
and all elements of k
, and
is preserved under multiplication and inverse, then p
holds for all elements of the closure
of k
.
See also Subgroup.closure_induction_left
and Subgroup.closure_induction_right
for versions that
only require showing p
is preserved by multiplication by elements in k
.
An induction principle for additive closure membership. If p
holds for 0
and all elements of k
, and is preserved under addition and inverses, then p
holds for all elements of the additive closure of k
.
See also AddSubgroup.closure_induction_left
and AddSubgroup.closure_induction_left
for
versions that only require showing p
is preserved by addition by elements in k
.
Alias of Subgroup.closure_induction
.
An induction principle for closure membership. If p
holds for 1
and all elements of k
, and
is preserved under multiplication and inverse, then p
holds for all elements of the closure
of k
.
See also Subgroup.closure_induction_left
and Subgroup.closure_induction_right
for versions that
only require showing p
is preserved by multiplication by elements in k
.
An induction principle for closure membership for predicates with two arguments.
An induction principle for additive closure membership, for predicates with two arguments.
closure
forms a Galois insertion with the coercion to set.
Equations
- Subgroup.gi G = { choice := fun (s : Set G) (x : ↑(Subgroup.closure s) ≤ s) => Subgroup.closure s, gc := ⋯, le_l_u := ⋯, choice_eq := ⋯ }
Instances For
closure
forms a Galois insertion with the coercion to set.
Equations
- AddSubgroup.gi G = { choice := fun (s : Set G) (x : ↑(AddSubgroup.closure s) ≤ s) => AddSubgroup.closure s, gc := ⋯, le_l_u := ⋯, choice_eq := ⋯ }
Instances For
Closure of a subgroup K
equals K
.
Additive closure of an additive subgroup K
equals K
The subgroup generated by an element of a group equals the set of integer number powers of the element.
The AddSubgroup
generated by an element of an AddGroup
equals the set of
natural number multiples of the element.