Group Extensions #
This file defines extensions of multiplicative and additive groups and their associated structures such as splittings and equivalences.
Main definitions #
(Add?)GroupExtension N E G: structure for extensions ofGbyNas short exact sequences1 → N → E → G → 1(0 → N → E → G → 0for additive groups)(Add?)GroupExtension.Equiv S S': structure for equivalences of two group extensionsSandS'as specific homomorphismsE → E'such that each diagram below is commutative
For multiplicative groups:
↗︎ E ↘
1 → N ↓ G → 1
↘︎ E' ↗︎️
For additive groups:
↗︎ E ↘
0 → N ↓ G → 0
↘︎ E' ↗︎️
(Add?)GroupExtension.Splitting S: structure for splittings of a group extensionSofGbyNas section homomorphismsG → ESemidirectProduct.toGroupExtension φ: the multiplicative group extension associated to the semidirect product coming fromφ : G →* MulAut N,1 → N → N ⋊[φ] G → G → 1
TODO #
If N is abelian,
- there is a bijection between
N-conjugacy classes of(SemidirectProduct.toGroupExtension φ).SplittingandgroupCohomology.H1(which will be available inGroupTheory/GroupExtension/Abelian.leanto be added in a later PR). - there is a bijection between equivalence classes of group extensions and
groupCohomology.H2(which is also stated as a TODO inRepresentationTheory/GroupCohomology/LowDegree.lean).
AddGroupExtension N E G is a short exact sequence of additive groups 0 → N → E → G → 0.
- inl : N →+ E
The inclusion homomorphism
N →+ E - rightHom : E →+ G
The projection homomorphism
E →+ G - inl_injective : Function.Injective ⇑self.inl
The inclusion map is injective.
- range_inl_eq_ker_rightHom : self.inl.range = self.rightHom.ker
The range of the inclusion map is equal to the kernel of the projection map.
- rightHom_surjective : Function.Surjective ⇑self.rightHom
The projection map is surjective.
Instances For
GroupExtension N E G is a short exact sequence of groups 1 → N → E → G → 1.
- inl : N →* E
The inclusion homomorphism
N →* E - rightHom : E →* G
The projection homomorphism
E →* G - inl_injective : Function.Injective ⇑self.inl
The inclusion map is injective.
- range_inl_eq_ker_rightHom : self.inl.range = self.rightHom.ker
The range of the inclusion map is equal to the kernel of the projection map.
- rightHom_surjective : Function.Surjective ⇑self.rightHom
The projection map is surjective.
Instances For
AddGroupExtensions are equivalent iff there is a homomorphism making a commuting diagram.
- toAddMonoidHom : E →+ E'
The homomorphism
- inl_comm : self.toAddMonoidHom.comp S.inl = S'.inl
The left-hand side of the diagram commutes.
- rightHom_comm : S'.rightHom.comp self.toAddMonoidHom = S.rightHom
The right-hand side of the diagram commutes.
Instances For
Splitting of an additive group extension is a section homomorphism.
- sectionHom : G →+ E
A section homomorphism
- rightHom_comp_sectionHom : S.rightHom.comp self.sectionHom = AddMonoidHom.id G
The section is a left inverse of the projection map.
Instances For
The range of the inclusion map is a normal subgroup.
The range of the inclusion map is a normal additive subgroup.
E acts on N by conjugation.
Equations
- S.conjAct = { toFun := fun (e : E) => (MonoidHom.ofInjective ⋯).trans (MulEquiv.trans (MulAut.conjNormal e) (MonoidHom.ofInjective ⋯).symm), map_one' := ⋯, map_mul' := ⋯ }
Instances For
GroupExtensions are equivalent iff there is a homomorphism making a commuting diagram.
- toMonoidHom : E →* E'
The homomorphism
- inl_comm : self.toMonoidHom.comp S.inl = S'.inl
The left-hand side of the diagram commutes.
- rightHom_comm : S'.rightHom.comp self.toMonoidHom = S.rightHom
The right-hand side of the diagram commutes.
Instances For
Splitting of a group extension is a section homomorphism.
- sectionHom : G →* E
A section homomorphism
- rightHom_comp_sectionHom : S.rightHom.comp self.sectionHom = MonoidHom.id G
The section is a left inverse of the projection map.
Instances For
A splitting of an extension S is N-conjugate to another iff there exists n : N such that
the section homomorphism is a conjugate of the other section homomorphism by S.inl n.
Equations
Instances For
A splitting of an extension S is N-conjugate to another iff there exists n : N such
that the section homomorphism is a conjugate of the other section homomorphism by S.inl n.
Equations
Instances For
The group extension associated to the semidirect product
Equations
- SemidirectProduct.toGroupExtension φ = { inl := SemidirectProduct.inl, rightHom := SemidirectProduct.rightHom, inl_injective := ⋯, range_inl_eq_ker_rightHom := ⋯, rightHom_surjective := ⋯ }
Instances For
A canonical splitting of the group extension associated to the semidirect product
Equations
- SemidirectProduct.inr_splitting φ = { sectionHom := SemidirectProduct.inr, rightHom_comp_sectionHom := ⋯ }