Groups

This chapter explains how to create groups and defines operations for groups, that is operations whose definition does not depend on the representation used. However methods for these operations in most cases will make use of the representation.

If not otherwise specified, in all examples in this chapter the group g will be the symmetric group S_4 acting on the letters \{ 1, \ldots, 4 \}.

Group Elements

Groups in &GAP; are written multiplicatively. The elements from which a group can be generated must permit multiplication and multiplicative inversion (see ).

gap> a:=(1,2,3);;b:=(2,3,4);; gap> One(a); () gap> Inverse(b); (2,4,3) gap> a*b; (1,3)(2,4) gap> Order(a*b); 2 gap> Order( [ [ 1, 1 ], [ 0, 1 ] ] ); infinity

The next example may run into an infinite loop because the given matrix in fact has infinite order.

gap> Order( [ [ 1, 1 ], [ 0, 1 ] ] * Indeterminate( Rationals ) ); #I Order: warning, order of <mat> might be infinite

order
Since groups are domains, the recommended command to compute the order of a group is . For convenience, group orders can also be computed with .

The operation can be used to compute the commutator of two elements, the operation computes the product x^{{-1}} y.

Creating Groups

When groups are created from generators, this means that the generators must be elements that can be multiplied and inverted (see also ). For creating a free group on a set of symbols, see .

<#Include Label="Group"> <#Include Label="GroupByGenerators"> <#Include Label="GroupWithGenerators"> <#Include Label="GeneratorsOfGroup"> <#Include Label="AsGroup"> <#Include Label="ConjugateGroup"> <#Include Label="IsGroup"> <#Include Label="InfoGroup">

Subgroups

For the general concept of parents and subdomains, see and . More functions that construct certain subgroups can be found in the sections , , , and .

<#Include Label="[2]{grp}"> <#Include Label="Subgroup"> <#Include Label="Index"> <#Include Label="IndexInWholeGroup"> gap> freegp:=FreeGroup(1);; gap> freesub:=Subgroup(freegp,[freegp.1^5]);; gap> IndexInWholeGroup(freesub); 5

<#Include Label="AsSubgroup"> <#Include Label="IsSubgroup"> <#Include Label="IsNormal"> <#Include Label="IsCharacteristicSubgroup"> <#Include Label="ConjugateSubgroup"> <#Include Label="ConjugateSubgroups"> <#Include Label="IsSubnormal"> <#Include Label="SubgroupByProperty"> <#Include Label="SubgroupShell">

Closures of (Sub)groups
<#Include Label="ClosureGroup"> <#Include Label="ClosureGroupAddElm"> <#Include Label="ClosureGroupDefault"> <#Include Label="ClosureSubgroup">

Expressing Group Elements as Words in Generators
factorization
words

Using homomorphisms (see chapter ) is is possible to express group elements as words in given generators: Create a free group (see ) on the correct number of generators and create a homomorphism from this free group onto the group G in whose generators you want to factorize. Then the preimage of an element of G is a word in the free generators, that will map on this element again.

<#Include Label="EpimorphismFromFreeGroup"> <#Include Label="Factorization"> <#Include Label="GrowthFunctionOfGroup">

Structure Descriptions
<#Include Label="StructureDescription">

Cosets
right cosets
coset
<#Include Label="RightCoset"> <#Include Label="RightCosets"> <#Include Label="CanonicalRightCosetElement"> <#Include Label="IsRightCoset"> <#Include Label="CosetDecomposition">

Transversals
<#Include Label="RightTransversal">

Double Cosets
<#Include Label="DoubleCoset"> <#Include Label="RepresentativesContainedRightCosets"> <#Include Label="DoubleCosets"> <#Include Label="IsDoubleCoset"> <#Include Label="DoubleCosetRepsAndSizes"> <#Include Label="InfoCoset">

Conjugacy Classes
<#Include Label="ConjugacyClass"> <#Include Label="ConjugacyClasses:grp"> <#Include Label="ConjugacyClassesByRandomSearch"> <#Include Label="ConjugacyClassesByOrbits"> <#Include Label="NrConjugacyClasses"> <#Include Label="RationalClass"> <#Include Label="RationalClasses"> <#Include Label="GaloisGroup:clas"> <#Include Label="IsConjugate"> <#Include Label="NthRootsInGroup">

Normal Structure

For the operations and , see Chapter .

normalizer
<#Include Label="Normalizer"> <#Include Label="Core"> <#Include Label="PCore"> <#Include Label="NormalClosure"> <#Include Label="NormalIntersection"> <#Include Label="ComplementClassesRepresentatives"> <#Include Label="InfoComplement">

Specific and Parametrized Subgroups

The centre of a group (the subgroup of those elements that commute with all other elements of the group) can be computed by the operation .

<#Include Label="TrivialSubgroup"> <#Include Label="CommutatorSubgroup"> <#Include Label="DerivedSubgroup"> <#Include Label="CommutatorLength"> <#Include Label="FittingSubgroup"> <#Include Label="FrattiniSubgroup"> <#Include Label="PrefrattiniSubgroup"> <#Include Label="PerfectResiduum"> <#Include Label="RadicalGroup"> <#Include Label="Socle"> <#Include Label="SupersolvableResiduum"> <#Include Label="PRump">

Sylow Subgroups and Hall Subgroups

With respect to the following &GAP; functions, please note that by theorems of P. Hall, a group G is solvable if and only if one of the following conditions holds. For each prime p dividing the order of G, there exists a p-complement (see ). For each set P of primes dividing the order of G, there exists a P-Hall subgroup (see ). G has a Sylow system (see ). G has a complement system (see ).

<#Include Label="SylowSubgroup"> <#Include Label="SylowComplement"> <#Include Label="HallSubgroup"> <#Include Label="SylowSystem"> <#Include Label="ComplementSystem"> <#Include Label="HallSystem">

Subgroups characterized by prime powers
<#Include Label="Omega"> <#Include Label="Agemo">

Group Properties

Some properties of groups can be defined not only for groups but also for other structures. For example, nilpotency and solvability make sense also for algebras. Note that these names refer to different definitions for groups and algebras, contrary to the situation with finiteness or commutativity. In such cases, the name of the function for groups got a suffix Group to distinguish different meanings for different structures.

Some functions, such as and , although they are mathematical properties, are not properties in the sense of &GAP; (see and ), as they depend on a parameter.

<#Include Label="IsCyclic"> <#Include Label="IsElementaryAbelian"> <#Include Label="IsNilpotentGroup"> <#Include Label="NilpotencyClassOfGroup"> <#Include Label="IsPerfectGroup"> <#Include Label="IsSolvableGroup"> <#Include Label="IsPolycyclicGroup"> <#Include Label="IsSupersolvableGroup"> <#Include Label="IsMonomialGroup"> <#Include Label="IsSimpleGroup"> <#Include Label="IsAlmostSimpleGroup"> <#Include Label="IsomorphismTypeInfoFiniteSimpleGroup"> <#Include Label="SimpleGroup"> <#Include Label="SimpleGroupsIterator"> <#Include Label="SmallSimpleGroup"> <#Include Label="AllSmallNonabelianSimpleGroups"> <#Include Label="IsFinitelyGeneratedGroup"> <#Include Label="IsSubsetLocallyFiniteGroup"> <#Include Label="IsPGroup"> <#Include Label="PrimePGroup"> <#Include Label="PClassPGroup"> <#Include Label="RankPGroup"> <#Include Label="IsPSolvable"> <#Include Label="IsPNilpotent">

Numerical Group Attributes

This section gives only some examples of numerical group attributes, so it should not serve as a collection of all numerical group attributes. The manual contains more such attributes documented in this manual, for example, , and others.

Note also that some functions, such as , are mathematical attributes, but not &GAP; attributes (see ) as they are depending on a parameter.

<#Include Label="AbelianInvariants:grp"> <#Include Label="Exponent"> <#Include Label="EulerianFunction">

Subgroup Series

In group theory many subgroup series are considered, and &GAP; provides commands to compute them. In the following sections, there is always a series G = U_1 > U_2 > \cdots > U_m = \langle 1 \rangle of subgroups considered. A series also may stop without reaching G or \langle 1 \rangle.

A series is called subnormal if every U_{{i+1}} is normal in U_i.

A series is called normal if every U_i is normal in G.

A series of normal subgroups is called central if U_i/U_{{i+1}} is central in G / U_{{i+1}}.

We call a series refinable if intermediate subgroups can be added to the series without destroying the properties of the series.

<#Include Label="[1]{grp}"> <#Include Label="ChiefSeries"> <#Include Label="ChiefSeriesThrough"> <#Include Label="ChiefSeriesUnderAction"> <#Include Label="SubnormalSeries"> <#Include Label="CompositionSeries"> <#Include Label="DisplayCompositionSeries"> <#Include Label="DerivedSeriesOfGroup"> <#Include Label="DerivedLength"> <#Include Label="ElementaryAbelianSeries"> <#Include Label="InvariantElementaryAbelianSeries"> <#Include Label="LowerCentralSeriesOfGroup"> <#Include Label="UpperCentralSeriesOfGroup"> <#Include Label="PCentralSeries"> <#Include Label="JenningsSeries"> <#Include Label="DimensionsLoewyFactors"> <#Include Label="AscendingChain"> <#Include Label="IntermediateGroup"> <#Include Label="IntermediateSubgroups">

Factor Groups
<#Include Label="NaturalHomomorphismByNormalSubgroup"> <#Include Label="FactorGroup"> <#Include Label="CommutatorFactorGroup"> <#Include Label="MaximalAbelianQuotient"> <#Include Label="HasAbelianFactorGroup"> <#Include Label="HasElementaryAbelianFactorGroup"> <#Include Label="CentralizerModulo">

Sets of Subgroups
<#Include Label="ConjugacyClassSubgroups"> <#Include Label="IsConjugacyClassSubgroupsRep"> <#Include Label="ConjugacyClassesSubgroups"> <#Include Label="ConjugacyClassesMaximalSubgroups"> <#Include Label="AllSubgroups"> <#Include Label="MaximalSubgroupClassReps"> <#Include Label="MaximalSubgroups"> <#Include Label="NormalSubgroups"> <#Include Label="MaximalNormalSubgroups"> <#Include Label="MinimalNormalSubgroups">

Subgroup Lattice
<#Include Label="LatticeSubgroups"> <#Include Label="ClassElementLattice"> <#Include Label="DotFileLatticeSubgroups"> <#Include Label="MaximalSubgroupsLattice"> <#Include Label="MinimalSupergroupsLattice"> <#Include Label="RepresentativesPerfectSubgroups"> <#Include Label="ConjugacyClassesPerfectSubgroups"> <#Include Label="Zuppos"> <#Include Label="InfoLattice">

Specific Methods for Subgroup Lattice Computations
<#Include Label="LatticeByCyclicExtension"> <#Include Label="InvariantSubgroupsElementaryAbelianGroup"> <#Include Label="SubgroupsSolvableGroup"> <#Include Label="SizeConsiderFunction"> <#Include Label="ExactSizeConsiderFunction"> <#Include Label="InfoPcSubgroup">

Special Generating Sets
<#Include Label="GeneratorsSmallest"> <#Include Label="LargestElementGroup"> <#Include Label="MinimalGeneratingSet"> <#Include Label="SmallGeneratingSet"> <#Include Label="IndependentGeneratorsOfAbelianGroup"> <#Include Label="IndependentGeneratorExponents">

1-Cohomology
one cohomology
cohomology
cocycles

Let G be a finite group and M an elementary abelian normal p-subgroup of G. Then the group of 1-cocycles Z^1( G/M, M ) is defined as Z^1(G/M, M) = \{ \gamma: G/M \rightarrow M \mid \forall g_1, g_2 \in G : \gamma(g_1 M \cdot g_2 M ) = \gamma(g_1 M)^{{g_2}} \cdot \gamma(g_2 M) \} and is a GF(p)-vector space.

The group of 1-coboundaries B^1( G/M, M ) is defined as B^1(G/M, M) = \{ \gamma : G/M \rightarrow M \mid \exists m \in M \forall g \in G : \gamma(gM) = (m^{{-1}})^g \cdot m \} It also is a GF(p)-vector space.

Let \alpha be the isomorphism of M into a row vector space {\cal W} and (g_1, \ldots, g_l) representatives for a generating set of G/M. Then there exists a monomorphism \beta of Z^1( G/M, M ) in the l-fold direct sum of {\cal W}, such that \beta( \gamma ) = ( \alpha( \gamma(g_1 M) ),\ldots, \alpha( \gamma(g_l M) ) ) for every \gamma \in Z^1( G/M, M ).

<#Include Label="OneCocycles"> <#Include Label="OneCoboundaries"> <#Include Label="OCOneCocycles"> <#Include Label="ComplementClassesRepresentativesEA"> <#Include Label="InfoCoh">

Schur Covers and Multipliers

Additional attributes and properties of a group can be derived from computing its Schur cover. For example, if G is a finitely presented group, the derived subgroup of a Schur cover of G is invariant and isomorphic to the value of G, see .

Darstellungsgruppe
<#Include Label="EpimorphismSchurCover"> <#Include Label="SchurCover"> <#Include Label="AbelianInvariantsMultiplier"> <#Include Label="Epicentre"> <#Include Label="NonabelianExteriorSquare"> <#Include Label="EpimorphismNonabelianExteriorSquare"> <#Include Label="IsCentralFactor"> <#Include Label="{SchurCoversOfSymmetricGroup}">

Tests for the Availability of Methods
<#Include Label="[3]{grp}"> <#Include Label="CanEasilyTestMembership"> <#Include Label="CanEasilyComputeWithIndependentGensAbelianGroup"> <#Include Label="CanComputeSize"> <#Include Label="CanComputeSizeAnySubgroup"> <#Include Label="CanComputeIndex"> <#Include Label="CanComputeIsSubset"> <#Include Label="KnowsHowToDecompose">