
| Current Path : /usr/share/gap/doc/ref/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : //usr/share/gap/doc/ref/chap39.txt |
[1X39 [33X[0;0YGroups[133X[101X
[33X[0;0YThis 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.[133X
[33X[0;0YIf not otherwise specified, in all examples in this chapter the group [10Xg[110X will
be the symmetric group [22XS_4[122X acting on the letters [22X{ 1, ..., 4 }[122X.[133X
[1X39.1 [33X[0;0YGroup Elements[133X[101X
[33X[0;0YGroups in [5XGAP[105X are written multiplicatively. The elements from which a group
can be generated must permit multiplication and multiplicative inversion
(see [14X31.14[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xa:=(1,2,3);;b:=(2,3,4);;[127X[104X
[4X[25Xgap>[125X [27XOne(a);[127X[104X
[4X[28X()[128X[104X
[4X[25Xgap>[125X [27XInverse(b);[127X[104X
[4X[28X(2,4,3)[128X[104X
[4X[25Xgap>[125X [27Xa*b;[127X[104X
[4X[28X(1,3)(2,4)[128X[104X
[4X[25Xgap>[125X [27XOrder(a*b);[127X[104X
[4X[28X2[128X[104X
[4X[25Xgap>[125X [27XOrder( [ [ 1, 1 ], [ 0, 1 ] ] );[127X[104X
[4X[28Xinfinity[128X[104X
[4X[32X[104X
[33X[0;0YThe next example may run into an infinite loop because the given matrix in
fact has infinite order.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XOrder( [ [ 1, 1 ], [ 0, 1 ] ] * Indeterminate( Rationals ) );[127X[104X
[4X[28X#I Order: warning, order of <mat> might be infinite[128X[104X
[4X[32X[104X
[33X[0;0YSince groups are domains, the recommended command to compute the order of a
group is [2XSize[102X ([14X30.4-6[114X). For convenience, group orders can also be computed
with [2XOrder[102X ([14X31.10-10[114X).[133X
[33X[0;0YThe operation [2XComm[102X ([14X31.12-3[114X) can be used to compute the commutator of two
elements, the operation [2XLeftQuotient[102X ([14X31.12-2[114X) computes the product [22Xx^{-1}
y[122X.[133X
[1X39.2 [33X[0;0YCreating Groups[133X[101X
[33X[0;0YWhen groups are created from generators, this means that the generators must
be elements that can be multiplied and inverted (see also [14X31.3[114X). For
creating a free group on a set of symbols, see [2XFreeGroup[102X ([14X37.2-1[114X).[133X
[1X39.2-1 Group[101X
[33X[1;0Y[29X[2XGroup[102X( [3Xgen[103X, [3X...[103X ) [32X function[133X
[33X[1;0Y[29X[2XGroup[102X( [3Xgens[103X[, [3Xid[103X] ) [32X function[133X
[33X[0;0Y[10XGroup( [3Xgen[103X[10X, ... )[110X is the group generated by the arguments [3Xgen[103X, ...[133X
[33X[0;0YIf the only argument [3Xgens[103X is a list that is not a matrix then [10XGroup( [3Xgens[103X[10X )[110X
is the group generated by the elements of that list.[133X
[33X[0;0YIf there are two arguments, a list [3Xgens[103X and an element [3Xid[103X, then [10XGroup( [3Xgens[103X[10X,
[3Xid[103X[10X )[110X is the group generated by the elements of [3Xgens[103X, with identity [3Xid[103X.[133X
[33X[0;0YNote that the value of the attribute [2XGeneratorsOfGroup[102X ([14X39.2-4[114X) need not be
equal to the list [3Xgens[103X of generators entered as argument. Use
[2XGroupWithGenerators[102X ([14X39.2-3[114X) if you want to be sure that the argument [3Xgens[103X
is stored as value of [2XGeneratorsOfGroup[102X ([14X39.2-4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));[127X[104X
[4X[28XGroup([ (1,2,3,4), (1,2) ])[128X[104X
[4X[32X[104X
[1X39.2-2 GroupByGenerators[101X
[33X[1;0Y[29X[2XGroupByGenerators[102X( [3Xgens[103X ) [32X operation[133X
[33X[1;0Y[29X[2XGroupByGenerators[102X( [3Xgens[103X, [3Xid[103X ) [32X operation[133X
[33X[0;0Y[2XGroupByGenerators[102X returns the group [22XG[122X generated by the list [3Xgens[103X. If a
second argument [3Xid[103X is present then this is stored as the identity element of
the group.[133X
[33X[0;0YThe value of the attribute [2XGeneratorsOfGroup[102X ([14X39.2-4[114X) of [22XG[122X need not be equal
to [3Xgens[103X. [2XGroupByGenerators[102X is the underlying operation called by [2XGroup[102X
([14X39.2-1[114X).[133X
[1X39.2-3 GroupWithGenerators[101X
[33X[1;0Y[29X[2XGroupWithGenerators[102X( [3Xgens[103X[, [3Xid[103X] ) [32X operation[133X
[33X[0;0Y[2XGroupWithGenerators[102X returns the group [22XG[122X generated by the list [3Xgens[103X. If a
second argument [3Xid[103X is present then this is stored as the identity element of
the group. The value of the attribute [2XGeneratorsOfGroup[102X ([14X39.2-4[114X) of [22XG[122X is
equal to [3Xgens[103X.[133X
[1X39.2-4 GeneratorsOfGroup[101X
[33X[1;0Y[29X[2XGeneratorsOfGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of generators of the group [3XG[103X. If [3XG[103X has been created by the
command [2XGroupWithGenerators[102X ([14X39.2-3[114X) with argument [3Xgens[103X, then the list
returned by [2XGeneratorsOfGroup[102X will be equal to [3Xgens[103X. For such a group, each
generator can also be accessed using the [10X.[110X operator (see [2XGeneratorsOfDomain[102X
([14X31.9-2[114X)): for a positive integer [22Xi[122X, [10X[3XG[103X[10X.i[110X returns the [22Xi[122X-th element of the
list returned by [2XGeneratorsOfGroup[102X. Moreover, if [3XG[103X is a free group, and [10Xname[110X
is the name of a generator of [3XG[103X then [10X[3XG[103X[10X.name[110X also returns this generator.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=GroupWithGenerators([(1,2,3,4),(1,2)]);[127X[104X
[4X[28XGroup([ (1,2,3,4), (1,2) ])[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfGroup(g);[127X[104X
[4X[28X[ (1,2,3,4), (1,2) ][128X[104X
[4X[32X[104X
[33X[0;0YWhile in this example [5XGAP[105X displays the group via the generating set stored
in the attribute [2XGeneratorsOfGroup[102X, the methods installed for [2XView[102X ([14X6.3-3[114X)
will in general display only some information about the group which may even
be just the fact that it is a group.[133X
[1X39.2-5 AsGroup[101X
[33X[1;0Y[29X[2XAsGroup[102X( [3XD[103X ) [32X attribute[133X
[33X[0;0Yif the elements of the collection [3XD[103X form a group the command returns this
group, otherwise it returns [9Xfail[109X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XAsGroup([(1,2)]);[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27XAsGroup([(),(1,2)]);[127X[104X
[4X[28XGroup([ (1,2) ])[128X[104X
[4X[32X[104X
[1X39.2-6 ConjugateGroup[101X
[33X[1;0Y[29X[2XConjugateGroup[102X( [3XG[103X, [3Xobj[103X ) [32X operation[133X
[33X[0;0Yreturns the conjugate group of [3XG[103X, obtained by applying the conjugating
element [3Xobj[103X.[133X
[33X[0;0YTo form a conjugate (group) by any object acting via [10X^[110X, one can also use the
infix operator [10X^[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XConjugateGroup(g,(1,5));[127X[104X
[4X[28XGroup([ (2,3,4,5), (2,5) ])[128X[104X
[4X[32X[104X
[1X39.2-7 IsGroup[101X
[33X[1;0Y[29X[2XIsGroup[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YA group is a magma-with-inverses (see [2XIsMagmaWithInverses[102X ([14X35.1-4[114X)) and
associative (see [2XIsAssociative[102X ([14X35.4-7[114X)) multiplication.[133X
[33X[0;0Y[10XIsGroup[110X tests whether the object [3Xobj[103X fulfills these conditions, it does [13Xnot[113X
test whether [3Xobj[103X is a set of elements that forms a group under
multiplication; use [2XAsGroup[102X ([14X39.2-5[114X) if you want to perform such a test.
(See [14X13.3[114X for details about categories.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsGroup(g);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.2-8 InfoGroup[101X
[33X[1;0Y[29X[2XInfoGroup[102X[32X info class[133X
[33X[0;0Yis the info class for the generic group theoretic functions (see [14X7.4[114X).[133X
[1X39.3 [33X[0;0YSubgroups[133X[101X
[33X[0;0YFor the general concept of parents and subdomains, see [14X31.7[114X and [14X31.8[114X. More
functions that construct certain subgroups can be found in the
sections [14X39.11[114X, [14X39.12[114X, [14X39.13[114X, and [14X39.14[114X.[133X
[33X[0;0YIf a group [22XU[122X is created as a subgroup of another group [22XG[122X, [22XG[122X becomes the
parent of [22XU[122X. There is no [21Xuniversal[121X parent group, parent-child chains can be
arbitrary long. [5XGAP[105X stores the result of some operations (such as [2XNormalizer[102X
([14X39.11-1[114X)) with the parent as an attribute.[133X
[1X39.3-1 Subgroup[101X
[33X[1;0Y[29X[2XSubgroup[102X( [3XG[103X, [3Xgens[103X ) [32X function[133X
[33X[1;0Y[29X[2XSubgroupNC[102X( [3XG[103X, [3Xgens[103X ) [32X function[133X
[33X[1;0Y[29X[2XSubgroup[102X( [3XG[103X ) [32X function[133X
[33X[0;0Ycreates the subgroup [3XU[103X of [3XG[103X generated by [3Xgens[103X. The [2XParent[102X ([14X31.7-1[114X) value of
[3XU[103X will be [3XG[103X. The [10XNC[110X version does not check, whether the elements in [3Xgens[103X
actually lie in [3XG[103X.[133X
[33X[0;0YThe unary version of [2XSubgroup[102X creates a (shell) subgroup that does not even
know generators but can be used to collect information about a particular
subgroup over time.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xu:=Subgroup(g,[(1,2,3),(1,2)]);[127X[104X
[4X[28XGroup([ (1,2,3), (1,2) ])[128X[104X
[4X[32X[104X
[1X39.3-2 [33X[0;0YIndex ([5XGAP[105X[101X[1X operation)[133X[101X
[33X[1;0Y[29X[2XIndex[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[1;0Y[29X[2XIndexNC[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0YFor a subgroup [3XU[103X of the group [3XG[103X, [2XIndex[102X returns the index [22X[[3XG[103X:[3XU[103X] = |[3XG[103X| / |[3XU[103X|[122X
of [3XU[103X in [3XG[103X. The [10XNC[110X version does not test whether [3XU[103X is contained in [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIndex(g,u);[127X[104X
[4X[28X4[128X[104X
[4X[32X[104X
[1X39.3-3 IndexInWholeGroup[101X
[33X[1;0Y[29X[2XIndexInWholeGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YIf the family of elements of [3XG[103X itself forms a group [3XP[103X, this attribute
returns the index of [3XG[103X in [3XP[103X. It is used primarily for free groups or
finitely presented groups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xfreegp:=FreeGroup(1);;[127X[104X
[4X[25Xgap>[125X [27Xfreesub:=Subgroup(freegp,[freegp.1^5]);;[127X[104X
[4X[25Xgap>[125X [27XIndexInWholeGroup(freesub);[127X[104X
[4X[28X5[128X[104X
[4X[32X[104X
[1X39.3-4 AsSubgroup[101X
[33X[1;0Y[29X[2XAsSubgroup[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0Ycreates a subgroup of [3XG[103X which contains the same elements as [3XU[103X[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xv:=AsSubgroup(g,Group((1,2,3),(1,4)));[127X[104X
[4X[28XGroup([ (1,2,3), (1,4) ])[128X[104X
[4X[25Xgap>[125X [27XParent(v);[127X[104X
[4X[28XGroup([ (1,2,3,4), (1,2) ])[128X[104X
[4X[32X[104X
[1X39.3-5 IsSubgroup[101X
[33X[1;0Y[29X[2XIsSubgroup[102X( [3XG[103X, [3XU[103X ) [32X function[133X
[33X[0;0Y[10XIsSubgroup[110X returns [9Xtrue[109X if [3XU[103X is a group that is a subset of the domain [3XG[103X.
This is actually checked by calling [10XIsGroup( [3XU[103X[10X )[110X and [10XIsSubset( [3XG[103X[10X, [3XU[103X[10X )[110X; note
that special methods for [2XIsSubset[102X ([14X30.5-1[114X) are available that test only
generators of [3XU[103X if [3XG[103X is closed under the group operations. So in most cases,
for example whenever one knows already that [3XU[103X is a group, it is better to
call only [2XIsSubset[102X ([14X30.5-1[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsSubgroup(g,u);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xv:=Group((1,2,3),(1,2));[127X[104X
[4X[28XGroup([ (1,2,3), (1,2) ])[128X[104X
[4X[25Xgap>[125X [27Xu=v;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsSubgroup(g,v);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.3-6 IsNormal[101X
[33X[1;0Y[29X[2XIsNormal[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0Yreturns [9Xtrue[109X if the group [3XG[103X normalizes the group [3XU[103X and [9Xfalse[109X otherwise.[133X
[33X[0;0YA group [3XG[103X [13Xnormalizes[113X a group [3XU[103X if and only if for every [22Xg ∈ [3XG[103X[122X and [22Xu ∈ [3XU[103X[122X the
element [22Xu^g[122X is a member of [3XU[103X. Note that [3XU[103X need not be a subgroup of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsNormal(g,u);[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X39.3-7 IsCharacteristicSubgroup[101X
[33X[1;0Y[29X[2XIsCharacteristicSubgroup[102X( [3XG[103X, [3XN[103X ) [32X operation[133X
[33X[0;0Ytests whether [3XN[103X is invariant under all automorphisms of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsCharacteristicSubgroup(g,u);[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X39.3-8 ConjugateSubgroup[101X
[33X[1;0Y[29X[2XConjugateSubgroup[102X( [3XG[103X, [3Xg[103X ) [32X operation[133X
[33X[0;0YFor a group [3XG[103X which has a parent group [10XP[110X (see [2XParent[102X ([14X31.7-1[114X)), returns the
subgroup of [10XP[110X, obtained by conjugating [3XG[103X using the conjugating element [3Xg[103X.[133X
[33X[0;0YIf [3XG[103X has no parent group, it just delegates to the call to [2XConjugateGroup[102X
([14X39.2-6[114X) with the same arguments.[133X
[33X[0;0YTo form a conjugate (subgroup) by any object acting via [10X^[110X, one can also use
the infix operator [10X^[110X.[133X
[1X39.3-9 ConjugateSubgroups[101X
[33X[1;0Y[29X[2XConjugateSubgroups[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0Yreturns a list of all images of the group [3XU[103X under conjugation action by [3XG[103X.[133X
[1X39.3-10 IsSubnormal[101X
[33X[1;0Y[29X[2XIsSubnormal[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0YA subgroup [3XU[103X of the group [3XG[103X is subnormal if it is contained in a subnormal
series of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsSubnormal(g,Group((1,2,3)));[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XIsSubnormal(g,Group((1,2)(3,4)));[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.3-11 SubgroupByProperty[101X
[33X[1;0Y[29X[2XSubgroupByProperty[102X( [3XG[103X, [3Xprop[103X ) [32X function[133X
[33X[0;0Ycreates a subgroup of [3XG[103X consisting of those elements fulfilling [3Xprop[103X (which
is a tester function). No test is done whether the property actually defines
a subgroup.[133X
[33X[0;0YNote that currently very little functionality beyond an element test exists
for groups created this way.[133X
[1X39.3-12 SubgroupShell[101X
[33X[1;0Y[29X[2XSubgroupShell[102X( [3XG[103X ) [32X function[133X
[33X[0;0Ycreates a subgroup of [3XG[103X which at this point is not yet specified further
(but will be later, for example by assigning a generating set).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xu:=SubgroupByProperty(g,i->3^i=3);[127X[104X
[4X[28X<subgrp of Group([ (1,2,3,4), (1,2) ]) by property>[128X[104X
[4X[25Xgap>[125X [27X(1,3) in u; (1,4) in u; (1,5) in u;[127X[104X
[4X[28Xfalse[128X[104X
[4X[28Xtrue[128X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XGeneratorsOfGroup(u);[127X[104X
[4X[28X[ (1,2), (1,4,2) ][128X[104X
[4X[25Xgap>[125X [27Xu:=SubgroupShell(g);[127X[104X
[4X[28X<group>[128X[104X
[4X[32X[104X
[1X39.4 [33X[0;0YClosures of (Sub)groups[133X[101X
[1X39.4-1 ClosureGroup[101X
[33X[1;0Y[29X[2XClosureGroup[102X( [3XG[103X, [3Xobj[103X ) [32X operation[133X
[33X[0;0Ycreates the group generated by the elements of [3XG[103X and [3Xobj[103X. [3Xobj[103X can be either
an element or a collection of elements, in particular another group.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SmallGroup(24,12);;u:=Subgroup(g,[g.3,g.4]);[127X[104X
[4X[28XGroup([ f3, f4 ])[128X[104X
[4X[25Xgap>[125X [27XClosureGroup(u,g.2);[127X[104X
[4X[28XGroup([ f2, f3, f4 ])[128X[104X
[4X[25Xgap>[125X [27XClosureGroup(u,[g.1,g.2]);[127X[104X
[4X[28XGroup([ f1, f2, f3, f4 ])[128X[104X
[4X[25Xgap>[125X [27XClosureGroup(u,Group(g.2*g.1));[127X[104X
[4X[28XGroup([ f1*f2^2, f3, f4 ])[128X[104X
[4X[32X[104X
[1X39.4-2 ClosureGroupAddElm[101X
[33X[1;0Y[29X[2XClosureGroupAddElm[102X( [3XG[103X, [3Xelm[103X ) [32X function[133X
[33X[1;0Y[29X[2XClosureGroupCompare[102X( [3XG[103X, [3Xelm[103X ) [32X function[133X
[33X[1;0Y[29X[2XClosureGroupIntest[102X( [3XG[103X, [3Xelm[103X ) [32X function[133X
[33X[0;0YThese three functions together with [2XClosureGroupDefault[102X ([14X39.4-3[114X) implement
the main methods for [2XClosureGroup[102X ([14X39.4-1[114X). In the ordering given, they just
add [3Xelm[103X to the generators, remove duplicates and identity elements, and test
whether [3Xelm[103X is already contained in [3XG[103X.[133X
[1X39.4-3 ClosureGroupDefault[101X
[33X[1;0Y[29X[2XClosureGroupDefault[102X( [3XG[103X, [3Xelm[103X ) [32X function[133X
[33X[0;0YThis functions returns the closure of the group [3XG[103X with the element [3Xelm[103X. If [3XG[103X
has the attribute [2XAsSSortedList[102X ([14X30.3-10[114X) then also the result has this
attribute. This is used to implement the default method for [2XEnumerator[102X
([14X30.3-2[114X) and [2XEnumeratorSorted[102X ([14X30.3-3[114X).[133X
[1X39.4-4 ClosureSubgroup[101X
[33X[1;0Y[29X[2XClosureSubgroup[102X( [3XG[103X, [3Xobj[103X ) [32X function[133X
[33X[1;0Y[29X[2XClosureSubgroupNC[102X( [3XG[103X, [3Xobj[103X ) [32X function[133X
[33X[0;0YFor a group [3XG[103X that stores a parent group (see [14X31.7[114X), [2XClosureSubgroup[102X calls
[2XClosureGroup[102X ([14X39.4-1[114X) with the same arguments; if the result is a subgroup
of the parent of [3XG[103X then the parent of [3XG[103X is set as parent of the result,
otherwise an error is raised. The check whether the result is contained in
the parent of [3XG[103X is omitted by the [10XNC[110X version. As a wrong parent might imply
wrong properties this version should be used with care.[133X
[1X39.5 [33X[0;0YExpressing Group Elements as Words in Generators[133X[101X
[33X[0;0YUsing homomorphisms (see chapter [14X40[114X) is is possible to express group
elements as words in given generators: Create a free group (see [2XFreeGroup[102X
([14X37.2-1[114X)) on the correct number of generators and create a homomorphism from
this free group onto the group [3XG[103X in whose generators you want to factorize.
Then the preimage of an element of [3XG[103X is a word in the free generators, that
will map on this element again.[133X
[1X39.5-1 EpimorphismFromFreeGroup[101X
[33X[1;0Y[29X[2XEpimorphismFromFreeGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YFor a group [3XG[103X with a known generating set, this attribute returns a
homomorphism from a free group that maps the free generators to the groups
generators.[133X
[33X[0;0YThe option [10Xnames[110X can be used to prescribe a (print) name for the free
generators.[133X
[33X[0;0YThe following example shows how to decompose elements of [22XS_4[122X in the
generators [10X(1,2,3,4)[110X and [10X(1,2)[110X:[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));[127X[104X
[4X[28XGroup([ (1,2,3,4), (1,2) ])[128X[104X
[4X[25Xgap>[125X [27Xhom:=EpimorphismFromFreeGroup(g:names:=["x","y"]);[127X[104X
[4X[28X[ x, y ] -> [ (1,2,3,4), (1,2) ][128X[104X
[4X[25Xgap>[125X [27XPreImagesRepresentative(hom,(1,4));[127X[104X
[4X[28Xy^-1*x^-1*(x^-1*y^-1)^2*x[128X[104X
[4X[32X[104X
[33X[0;0YThe following example stems from a real request to the [5XGAP[105X Forum. In
September 2000 a [5XGAP[105X user working with puzzles wanted to express the
permutation [10X(1,2)[110X as a word as short as possible in particular generators of
the symmetric group [22XS_16[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xperms := [ (1,2,3,7,11,10,9,5), (2,3,4,8,12,11,10,6),[127X[104X
[4X[25X>[125X [27X (5,6,7,11,15,14,13,9), (6,7,8,12,16,15,14,10) ];;[127X[104X
[4X[25Xgap>[125X [27Xpuzzle := Group( perms );;Size( puzzle );[127X[104X
[4X[28X20922789888000[128X[104X
[4X[25Xgap>[125X [27Xhom:=EpimorphismFromFreeGroup(puzzle:names:=["a", "b", "c", "d"]);;[127X[104X
[4X[25Xgap>[125X [27Xword := PreImagesRepresentative( hom, (1,2) );[127X[104X
[4X[28Xa^-1*c*b*c^-1*a*b^-1*a^-2*c^-1*a*b^-1*c*b[128X[104X
[4X[25Xgap>[125X [27XLength( word );[127X[104X
[4X[28X13[128X[104X
[4X[32X[104X
[1X39.5-2 Factorization[101X
[33X[1;0Y[29X[2XFactorization[102X( [3XG[103X, [3Xelm[103X ) [32X operation[133X
[33X[0;0Yreturns a factorization of [3Xelm[103X as word in the generators of the group [3XG[103X
given in the attribute [2XGeneratorsOfGroup[102X ([14X39.2-4[114X). The attribute
[2XEpimorphismFromFreeGroup[102X ([14X39.5-1[114X) of [3XG[103X will contain a map from the group [3XG[103X
to the free group in which the word is expressed. The attribute
[2XMappingGeneratorsImages[102X ([14X40.10-2[114X) of this map gives a list of generators and
corresponding letters.[133X
[33X[0;0YThe algorithm used forms all elements of the group to ensure a short word is
found. Therefore this function should [13Xnot[113X be used when the group [3XG[103X has more
than a few million elements. Because of this, one should not call this
function within algorithms, but use homomorphisms instead.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:=SymmetricGroup( 6 );;[127X[104X
[4X[25Xgap>[125X [27Xr:=(3,4);; s:=(1,2,3,4,5,6);;[127X[104X
[4X[25Xgap>[125X [27X# create subgroup to force the system to use the generators r and s:[127X[104X
[4X[25Xgap>[125X [27XH:= Subgroup(G, [ r, s ] );[127X[104X
[4X[28XGroup([ (3,4), (1,2,3,4,5,6) ])[128X[104X
[4X[25Xgap>[125X [27XFactorization( H, (1,2,3) );[127X[104X
[4X[28X(x2*x1)^2*x2^-2[128X[104X
[4X[25Xgap>[125X [27Xs*r*s*r*s^-2;[127X[104X
[4X[28X(1,2,3)[128X[104X
[4X[25Xgap>[125X [27XMappingGeneratorsImages(EpimorphismFromFreeGroup(H));[127X[104X
[4X[28X[ [ x1, x2 ], [ (3,4), (1,2,3,4,5,6) ] ][128X[104X
[4X[32X[104X
[1X39.5-3 GrowthFunctionOfGroup[101X
[33X[1;0Y[29X[2XGrowthFunctionOfGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XGrowthFunctionOfGroup[102X( [3XG[103X, [3Xradius[103X ) [32X operation[133X
[33X[0;0YFor a group [3XG[103X with a generating set given in [2XGeneratorsOfGroup[102X ([14X39.2-4[114X),
this function calculates the number of elements whose shortest expression as
words in the generating set is of a particular length. It returns a list [3XL[103X,
whose [22Xi+1[122X entry counts the number of elements whose shortest word expression
has length [22Xi[122X. If a maximal length [3Xradius[103X is given, only words up to length
[3Xradius[103X are counted. Otherwise the group must be finite and all elements are
enumerated.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XGrowthFunctionOfGroup(MathieuGroup(12)); [127X[104X
[4X[28X[ 1, 5, 19, 70, 255, 903, 3134, 9870, 25511, 38532, 16358, 382 ][128X[104X
[4X[25Xgap>[125X [27XGrowthFunctionOfGroup(MathieuGroup(12),2);[127X[104X
[4X[28X[ 1, 5, 19 ][128X[104X
[4X[25Xgap>[125X [27XGrowthFunctionOfGroup(MathieuGroup(12),99);[127X[104X
[4X[28X[ 1, 5, 19, 70, 255, 903, 3134, 9870, 25511, 38532, 16358, 382 ][128X[104X
[4X[25Xgap>[125X [27Xfree:=FreeGroup("a","b");[127X[104X
[4X[28X<free group on the generators [ a, b ]>[128X[104X
[4X[25Xgap>[125X [27Xproduct:=free/ParseRelators(free,"a2,b3");[127X[104X
[4X[28X<fp group on the generators [ a, b ]>[128X[104X
[4X[25Xgap>[125X [27XSetIsFinite(product,false);[127X[104X
[4X[25Xgap>[125X [27XGrowthFunctionOfGroup(product,10);[127X[104X
[4X[28X[ 1, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64 ][128X[104X
[4X[32X[104X
[1X39.6 [33X[0;0YStructure Descriptions[133X[101X
[1X39.6-1 StructureDescription[101X
[33X[1;0Y[29X[2XStructureDescription[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe method for [2XStructureDescription[102X exhibits a structure of the given group
[3XG[103X to some extent, using the strategy outlined below. The idea is to return a
possibly short string which gives some insight in the structure of the
considered group. It is intended primarily for small groups (order less than
100) or groups with few normal subgroups, in other cases, in particular
large [22Xp[122X-groups, it can be very costly. Furthermore, the string returned is
-- as the action on chief factors is not described -- often not the most
useful way to describe a group.[133X
[33X[0;0YThe string returned by [2XStructureDescription[102X is [12Xnot[112X an isomorphism invariant:
non-isomorphic groups can have the same string value, and two isomorphic
groups in different representations can produce different strings. The value
returned by [2XStructureDescription[102X is a string of the following form:[133X
[4X[32X[104X
[4X StructureDescription(<G>) ::=[104X
[4X 1 ; trivial group [104X
[4X | C<size> ; cyclic group[104X
[4X | A<degree> ; alternating group[104X
[4X | S<degree> ; symmetric group[104X
[4X | D<size> ; dihedral group[104X
[4X | Q<size> ; quaternion group[104X
[4X | QD<size> ; quasidihedral group[104X
[4X | PSL(<n>,<q>) ; projective special linear group[104X
[4X | SL(<n>,<q>) ; special linear group[104X
[4X | GL(<n>,<q>) ; general linear group[104X
[4X | PSU(<n>,<q>) ; proj. special unitary group[104X
[4X | O(2<n>+1,<q>) ; orthogonal group, type B[104X
[4X | O+(2<n>,<q>) ; orthogonal group, type D[104X
[4X | O-(2<n>,<q>) ; orthogonal group, type 2D[104X
[4X | PSp(2<n>,<q>) ; proj. special symplectic group[104X
[4X | Sz(<q>) ; Suzuki group[104X
[4X | Ree(<q>) ; Ree group (type 2F or 2G)[104X
[4X | E(6,<q>) | E(7,<q>) | E(8,<q>) ; Lie group of exceptional type[104X
[4X | 2E(6,<q>) | F(4,<q>) | G(2,<q>)[104X
[4X | 3D(4,<q>) ; Steinberg triality group[104X
[4X | M11 | M12 | M22 | M23 | M24[104X
[4X | J1 | J2 | J3 | J4 | Co1 | Co2[104X
[4X | Co3 | Fi22 | Fi23 | Fi24' | Suz[104X
[4X | HS | McL | He | HN | Th | B[104X
[4X | M | ON | Ly | Ru ; sporadic simple group[104X
[4X | 2F(4,2)' ; Tits group[104X
[4X | PerfectGroup(<size>,<id>) ; the indicated group from the[104X
[4X ; library of perfect groups[104X
[4X | A x B ; direct product[104X
[4X | N : H ; semidirect product[104X
[4X | C(G) . G/C(G) = G' . G/G' ; non-split extension[104X
[4X ; (equal alternatives and[104X
[4X ; trivial extensions omitted)[104X
[4X | Phi(G) . G/Phi(G) ; non-split extension:[104X
[4X ; Frattini subgroup and[104X
[4X ; Frattini factor group[104X
[4X[32X[104X
[33X[0;0YNote that the [2XStructureDescription[102X is only [13Xone[113X possible way of building up
the given group from smaller pieces.[133X
[33X[0;0YThe option [21Xshort[121X is recognized - if this option is set, an abbreviated
output format is used (e.g. [10X"6x3"[110X instead of [10X"C6 x C3"[110X).[133X
[33X[0;0YIf the [2XName[102X ([14X12.8-2[114X) attribute is not bound, but [2XStructureDescription[102X is,
[2XView[102X ([14X6.3-3[114X) prints the value of the attribute [2XStructureDescription[102X. The
[2XPrint[102X ([14X6.3-4[114X)ed representation of a group is not affected by computing a
[2XStructureDescription[102X.[133X
[33X[0;0YThe strategy used to compute a [2XStructureDescription[102X is as follows:[133X
[8X1.[108X
[33X[0;6YLookup in a precomputed list, if the order of [3XG[103X is not larger than 100
and not equal to 64 or 96.[133X
[8X2.[108X
[33X[0;6YIf [3XG[103X is abelian, then decompose it into cyclic factors in [21Xelementary
divisors style[121X. For example, [10X"C2 x C3 x C3"[110X is [10X"C6 x C3"[110X. For infinite
abelian groups, [10X"C0"[110X denotes the group of integers.[133X
[8X3.[108X
[33X[0;6YRecognize alternating groups, symmetric groups, dihedral groups,
quasidihedral groups, quaternion groups, PSL's, SL's, GL's and simple
groups not listed so far as basic building blocks.[133X
[8X4.[108X
[33X[0;6YDecompose [3XG[103X into a direct product of irreducible factors.[133X
[8X5.[108X
[33X[0;6YRecognize semidirect products [3XG[103X=[22XN[122X:[22XH[122X, where [22XN[122X is normal. Select a pair
[22XN[122X, [22XH[122X with the following preferences:[133X
[8X1.[108X
[33X[0;12Yif [3XG[103X is defined as a semidirect product of [22XN[122X, [22XH[122X then select [22XN[122X,
[22XH[122X,[133X
[8X2.[108X
[33X[0;12Yif [3XG[103X is solvable, then select a solvable normal Hall subgroup [22XN[122X,
if exists, and consider the semidirect decomposition of [22XN[122X and
[22X[3XG[103X/N[122X,[133X
[8X3.[108X
[33X[0;12Yfind any nontrivial normal subgroup [22XN[122X which has a complement [22XH[122X.[133X
[33X[0;6YThe option [21Xnice[121X is recognized. If this option is set, then all
semidirect products are computed in order to find a possibly nicer
presentation. Note, that this may take a very long time if [3XG[103X has many
normal subgroups, e.g. if [22X[3XG[103X/[3XG[103X'[122X has many cyclic factors. If the option
[21Xnice[121X is set, then GAP would select a pair [22XN[122X, [22XH[122X with the following
preferences:[133X
[8X1.[108X
[33X[0;12Y[22XH[122X is abelian[133X
[8X2.[108X
[33X[0;12Y[22XN[122X is abelian[133X
[8X2a.[108X
[33X[0;12Y[22XN[122X has many abelian invariants[133X
[8X3.[108X
[33X[0;12Y[22XN[122X is a direct product[133X
[8X3a.[108X
[33X[0;12Y[22XN[122X has many direct factors[133X
[8X4.[108X
[33X[0;12Y[22Xϕ: H →[122X Aut([22XN[122X), [22Xh ↦ (n ↦ n^h)[122X is injective.[133X
[8X6.[108X
[33X[0;6YFall back to non-splitting extensions: If the centre or the commutator
factor group is non-trivial, write [3XG[103X as [22XZ([3XG[103X)[122X.[22X[3XG[103X/Z([3XG[103X)[122X or [22X[3XG[103X'[122X.[22X[3XG[103X/[3XG[103X'[122X,
respectively. Otherwise if the Frattini subgroup is non-trivial, write
[3XG[103X as [22XΦ[122X([3XG[103X).[3XG[103X/[22XΦ[122X([3XG[103X).[133X
[8X7.[108X
[33X[0;6YIf no decomposition is found (maybe this is not the case for any
finite group), try to identify [3XG[103X in the perfect groups library. If
this fails also, then return a string describing this situation.[133X
[33X[0;0YNote that [2XStructureDescription[102X is [13Xnot[113X intended to be a research tool, but
rather an educational tool. The reasons for this are as follows:[133X
[8X1.[108X
[33X[0;6Y[21XMost[121X groups do not have [21Xnice[121X decompositions. This is in some contrast
to what is often taught in elementary courses on group theory, where
it is sometimes suggested that basically every group can be written as
iterated direct or semidirect product of cyclic groups and nonabelian
simple groups.[133X
[8X2.[108X
[33X[0;6YIn particular many [22Xp[122X-groups have very [21Xsimilar[121X structure, and
[2XStructureDescription[102X can only exhibit a little of it. Changing this
would likely make the output not essentially easier to read than a pc
presentation.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xl := AllSmallGroups(12);;[127X[104X
[4X[25Xgap>[125X [27XList(l,StructureDescription);; l;[127X[104X
[4X[28X[ C3 : C4, C12, A4, D12, C6 x C2 ][128X[104X
[4X[25Xgap>[125X [27XList(AllSmallGroups(40),G->StructureDescription(G:short));[127X[104X
[4X[28X[ "5:8", "40", "5:8", "5:Q8", "4xD10", "D40", "2x(5:4)", "(10x2):2",[128X[104X
[4X[28X "20x2", "5xD8", "5xQ8", "2x(5:4)", "2^2xD10", "10x2^2" ][128X[104X
[4X[25Xgap>[125X [27XList(AllTransitiveGroups(DegreeAction,6),[127X[104X
[4X[25X>[125X [27X G->StructureDescription(G:short));[127X[104X
[4X[28X[ "6", "S3", "D12", "A4", "3xS3", "2xA4", "S4", "S4", "S3xS3", [128X[104X
[4X[28X "(3^2):4", "2xS4", "A5", "(S3xS3):2", "S5", "A6", "S6" ][128X[104X
[4X[25Xgap>[125X [27XStructureDescription(SmallGroup(504,7));[127X[104X
[4X[28X"C7 : (C9 x Q8)"[128X[104X
[4X[25Xgap>[125X [27XStructureDescription(SmallGroup(504,7):nice);[127X[104X
[4X[28X"(C7 : Q8) : C9"[128X[104X
[4X[25Xgap>[125X [27XStructureDescription(AbelianGroup([0,2,3]));[127X[104X
[4X[28X"C0 x C6"[128X[104X
[4X[25Xgap>[125X [27XStructureDescription(AbelianGroup([0,0,0,2,3,6]):short);[127X[104X
[4X[28X"0^3x6^2"[128X[104X
[4X[25Xgap>[125X [27XStructureDescription(PSL(4,2));[127X[104X
[4X[28X"A8"[128X[104X
[4X[32X[104X
[1X39.7 [33X[0;0YCosets[133X[101X
[1X39.7-1 RightCoset[101X
[33X[1;0Y[29X[2XRightCoset[102X( [3XU[103X, [3Xg[103X ) [32X operation[133X
[33X[0;0Yreturns the right coset of [3XU[103X with representative [3Xg[103X, which is the set of all
elements of the form [22Xug[122X for all [22Xu ∈ [3XU[103X[122X. [3Xg[103X must be an element of a larger
group [3XG[103X which contains [3XU[103X. For element operations such as [9Xin[109X a right coset
behaves like a set of group elements.[133X
[33X[0;0YRight cosets are external orbits for the action of [3XU[103X which acts via
[2XOnLeftInverse[102X ([14X41.2-3[114X). Of course the action of a larger group [3XG[103X on right
cosets is via [2XOnRight[102X ([14X41.2-2[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xu:=Group((1,2,3), (1,2));;[127X[104X
[4X[25Xgap>[125X [27Xc:=RightCoset(u,(2,3,4));[127X[104X
[4X[28XRightCoset(Group( [ (1,2,3), (1,2) ] ),(2,3,4))[128X[104X
[4X[25Xgap>[125X [27XActingDomain(c);[127X[104X
[4X[28XGroup([ (1,2,3), (1,2) ])[128X[104X
[4X[25Xgap>[125X [27XRepresentative(c);[127X[104X
[4X[28X(2,3,4)[128X[104X
[4X[25Xgap>[125X [27XSize(c);[127X[104X
[4X[28X6[128X[104X
[4X[25Xgap>[125X [27XAsList(c);[127X[104X
[4X[28X[ (2,3,4), (1,4,2), (1,3,4,2), (1,3)(2,4), (2,4), (1,4,2,3) ][128X[104X
[4X[25Xgap>[125X [27XIsBiCoset(c);[127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X39.7-2 RightCosets[101X
[33X[1;0Y[29X[2XRightCosets[102X( [3XG[103X, [3XU[103X ) [32X function[133X
[33X[1;0Y[29X[2XRightCosetsNC[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0Ycomputes a duplicate free list of right cosets [3XU[103X [22Xg[122X for [22Xg ∈[122X [3XG[103X. A set of
representatives for the elements in this list forms a right transversal of [3XU[103X
in [3XG[103X. (By inverting the representatives one obtains a list of
representatives of the left cosets of [3XU[103X.) The [10XNC[110X version does not check
whether [3XU[103X is a subgroup of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XRightCosets(g,u);[127X[104X
[4X[28X[ RightCoset(Group( [ (1,2,3), (1,2) ] ),()), [128X[104X
[4X[28X RightCoset(Group( [ (1,2,3), (1,2) ] ),(1,3)(2,4)), [128X[104X
[4X[28X RightCoset(Group( [ (1,2,3), (1,2) ] ),(1,4)(2,3)), [128X[104X
[4X[28X RightCoset(Group( [ (1,2,3), (1,2) ] ),(1,2)(3,4)) ][128X[104X
[4X[32X[104X
[1X39.7-3 CanonicalRightCosetElement[101X
[33X[1;0Y[29X[2XCanonicalRightCosetElement[102X( [3XU[103X, [3Xg[103X ) [32X operation[133X
[33X[0;0Yreturns a [21Xcanonical[121X representative of the right coset [3XU[103X [3Xg[103X which is
independent of the given representative [3Xg[103X. This can be used to compare
cosets by comparing their canonical representatives.[133X
[33X[0;0YThe representative chosen to be the [21Xcanonical[121X one is representation
dependent and only guaranteed to remain the same within one [5XGAP[105X session.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCanonicalRightCosetElement(u,(2,4,3));[127X[104X
[4X[28X(3,4)[128X[104X
[4X[32X[104X
[1X39.7-4 IsRightCoset[101X
[33X[1;0Y[29X[2XIsRightCoset[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YThe category of right cosets.[133X
[33X[0;0Y[5XGAP[105X does not provide left cosets as a separate data type, but as the left
coset [22XgU[122X consists of exactly the inverses of the elements of the right coset
[22XUg^{-1}[122X calculations with left cosets can be emulated using right cosets by
inverting the representatives.[133X
[1X39.7-5 IsBiCoset[101X
[33X[1;0Y[29X[2XIsBiCoset[102X( [3XC[103X ) [32X property[133X
[33X[0;0YA (right) coset [22XUg[122X is considered a [13Xbicoset[113X if its set of elements
simultaneously forms a left coset for the same subgroup. This is the case if
and only if the coset representative [22Xg[122X normalizes the subgroup [22XU[122X.[133X
[1X39.7-6 CosetDecomposition[101X
[33X[1;0Y[29X[2XCosetDecomposition[102X( [3XG[103X, [3XS[103X ) [32X function[133X
[33X[0;0YFor a finite group [3XG[103X and a subgroup [22X[3XS[103Xle[3XG[103X[122X this function returns a partition
of the elements of [3XG[103X according to the (right) cosets of [3XS[103X. The result is a
list of lists, each sublist corresponding to one coset. The first sublist is
the elements list of the subgroup, the other lists are arranged accordingly.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCosetDecomposition(SymmetricGroup(4),SymmetricGroup(3)); [127X[104X
[4X[28X[ [ (), (2,3), (1,2), (1,2,3), (1,3,2), (1,3) ], [128X[104X
[4X[28X [ (1,4), (1,4)(2,3), (1,2,4), (1,2,3,4), (1,3,2,4), (1,3,4) ], [128X[104X
[4X[28X [ (1,4,2), (1,4,2,3), (2,4), (2,3,4), (1,3)(2,4), (1,3,4,2) ], [128X[104X
[4X[28X [ (1,4,3), (1,4,3,2), (1,2,4,3), (1,2)(3,4), (2,4,3), (3,4) ] ][128X[104X
[4X[32X[104X
[1X39.8 [33X[0;0YTransversals[133X[101X
[1X39.8-1 RightTransversal[101X
[33X[1;0Y[29X[2XRightTransversal[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0YA right transversal [22Xt[122X is a list of representatives for the set [22X[3XU[103X ∖ [3XG[103X[122X of
right cosets (consisting of cosets [22XUg[122X) of [22XU[122X in [22XG[122X.[133X
[33X[0;0YThe object returned by [2XRightTransversal[102X is not a plain list, but an object
that behaves like an immutable list of length [22X[[3XG[103X:[3XU[103X][122X, except if [3XU[103X is the
trivial subgroup of [3XG[103X in which case [2XRightTransversal[102X may return the sorted
plain list of coset representatives.[133X
[33X[0;0YThe operation [2XPositionCanonical[102X ([14X21.16-3[114X), called for a transversal [22Xt[122X and an
element [22Xg[122X of [3XG[103X, will return the position of the representative in [22Xt[122X that
lies in the same coset of [3XU[103X as the element [22Xg[122X does. (In comparison, [2XPosition[102X
([14X21.16-1[114X) will return [9Xfail[109X if the element is not equal to the
representative.) Functions that implement group actions such as [2XAction[102X
([14X41.7-2[114X) or [2XPermutation[102X ([14X41.9-1[114X) (see Chapter [14X41[114X) use [2XPositionCanonical[102X
([14X21.16-3[114X), therefore it is possible to [21Xact[121X on a right transversal to
implement the action on the cosets. This is often much more efficient than
acting on cosets.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
[4X[25Xgap>[125X [27Xu:=Subgroup(g,[(1,2,3),(1,2)]);;[127X[104X
[4X[25Xgap>[125X [27Xrt:=RightTransversal(g,u);[127X[104X
[4X[28XRightTransversal(Group([ (1,2,3,4), (1,2) ]),Group([ (1,2,3), (1,2) ]))[128X[104X
[4X[25Xgap>[125X [27XLength(rt);[127X[104X
[4X[28X4[128X[104X
[4X[25Xgap>[125X [27XPosition(rt,(1,2,3));[127X[104X
[4X[28Xfail[128X[104X
[4X[32X[104X
[33X[0;0YNote that the elements of a right transversal are not necessarily [21Xcanonical[121X
in the sense of [2XCanonicalRightCosetElement[102X ([14X39.7-3[114X), but we may compute a
list of canonical coset representatives by calling that function. (See also
[2XPositionCanonical[102X ([14X21.16-3[114X).)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XList(RightTransversal(g,u),i->CanonicalRightCosetElement(u,i));[127X[104X
[4X[28X[ (), (2,3,4), (1,2,3,4), (3,4) ][128X[104X
[4X[25Xgap>[125X [27XPositionCanonical(rt,(1,2,3));[127X[104X
[4X[28X1[128X[104X
[4X[25Xgap>[125X [27Xrt[1];[127X[104X
[4X[28X()[128X[104X
[4X[32X[104X
[1X39.9 [33X[0;0YDouble Cosets[133X[101X
[1X39.9-1 DoubleCoset[101X
[33X[1;0Y[29X[2XDoubleCoset[102X( [3XU[103X, [3Xg[103X, [3XV[103X ) [32X operation[133X
[33X[0;0YThe groups [3XU[103X and [3XV[103X must be subgroups of a common supergroup [3XG[103X of which [3Xg[103X is
an element. This command constructs the double coset [3XU[103X [3Xg[103X [3XV[103X which is the set
of all elements of the form [22Xugv[122X for any [22Xu ∈ [3XU[103X[122X, [22Xv ∈ [3XV[103X[122X. For element operations
such as [9Xin[109X, a double coset behaves like a set of group elements. The double
coset stores [3XU[103X in the attribute [10XLeftActingGroup[110X, [3Xg[103X as [2XRepresentative[102X
([14X30.4-7[114X), and [3XV[103X as [10XRightActingGroup[110X.[133X
[1X39.9-2 RepresentativesContainedRightCosets[101X
[33X[1;0Y[29X[2XRepresentativesContainedRightCosets[102X( [3XD[103X ) [32X attribute[133X
[33X[0;0YA double coset [22X[3XD[103X = U g V[122X can be considered as a union of right cosets [22XU h_i[122X.
(It is the union of the orbit of [22XU g[122X under right multiplication by [22XV[122X.) For a
double coset [3XD[103X this function returns a set of representatives [22Xh_i[122X such that
[3XD[103X [22X= ⋃_{h_i} U h_i[122X. The representatives returned are canonical for [22XU[122X (see
[2XCanonicalRightCosetElement[102X ([14X39.7-3[114X)) and form a set.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xu:=Subgroup(g,[(1,2,3),(1,2)]);;v:=Subgroup(g,[(3,4)]);;[127X[104X
[4X[25Xgap>[125X [27Xc:=DoubleCoset(u,(2,4),v);[127X[104X
[4X[28XDoubleCoset(Group( [ (1,2,3), (1,2) ] ),(2,4),Group( [ (3,4) ] ))[128X[104X
[4X[25Xgap>[125X [27X(1,2,3) in c;[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27X(2,3,4) in c;[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XLeftActingGroup(c);[127X[104X
[4X[28XGroup([ (1,2,3), (1,2) ])[128X[104X
[4X[25Xgap>[125X [27XRightActingGroup(c);[127X[104X
[4X[28XGroup([ (3,4) ])[128X[104X
[4X[25Xgap>[125X [27XRepresentativesContainedRightCosets(c);[127X[104X
[4X[28X[ (2,3,4) ][128X[104X
[4X[32X[104X
[1X39.9-3 DoubleCosets[101X
[33X[1;0Y[29X[2XDoubleCosets[102X( [3XG[103X, [3XU[103X, [3XV[103X ) [32X function[133X
[33X[1;0Y[29X[2XDoubleCosetsNC[102X( [3XG[103X, [3XU[103X, [3XV[103X ) [32X operation[133X
[33X[0;0Ycomputes a duplicate free list of all double cosets [3XU[103X [22Xg[122X [3XV[103X for [22Xg ∈ [3XG[103X[122X. The
groups [3XU[103X and [3XV[103X must be subgroups of the group [3XG[103X. The [10XNC[110X version does not
check whether [3XU[103X and [3XV[103X are subgroups of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xdc:=DoubleCosets(g,u,v);[127X[104X
[4X[28X[ DoubleCoset(Group( [ (1,2,3), (1,2) ] ),(),Group( [ (3,4) ] )), [128X[104X
[4X[28X DoubleCoset(Group( [ (1,2,3), (1,2) ] ),(1,3)(2,4),Group( [128X[104X
[4X[28X [ (3,4) ] )), DoubleCoset(Group( [ (1,2,3), (1,2) ] ),(1,4)[128X[104X
[4X[28X (2,3),Group( [ (3,4) ] )) ][128X[104X
[4X[25Xgap>[125X [27XList(dc,Representative);[127X[104X
[4X[28X[ (), (1,3)(2,4), (1,4)(2,3) ][128X[104X
[4X[32X[104X
[1X39.9-4 IsDoubleCoset[101X
[33X[1;0Y[29X[2XIsDoubleCoset[102X( [3Xobj[103X ) [32X Category[133X
[33X[0;0YThe category of double cosets.[133X
[1X39.9-5 DoubleCosetRepsAndSizes[101X
[33X[1;0Y[29X[2XDoubleCosetRepsAndSizes[102X( [3XG[103X, [3XU[103X, [3XV[103X ) [32X operation[133X
[33X[0;0Yreturns a list of double coset representatives and their sizes, the entries
are lists of the form [22X[ r, n ][122X where [22Xr[122X and [22Xn[122X are an element of the double
coset and the size of the coset, respectively. This operation is faster than
[2XDoubleCosetsNC[102X ([14X39.9-3[114X) because no double coset objects have to be created.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xdc:=DoubleCosetRepsAndSizes(g,u,v);[127X[104X
[4X[28X[ [ (), 12 ], [ (1,3)(2,4), 6 ], [ (1,4)(2,3), 6 ] ][128X[104X
[4X[32X[104X
[1X39.9-6 InfoCoset[101X
[33X[1;0Y[29X[2XInfoCoset[102X[32X info class[133X
[33X[0;0YThe information function for coset and double coset operations is [2XInfoCoset[102X.[133X
[1X39.10 [33X[0;0YConjugacy Classes[133X[101X
[1X39.10-1 ConjugacyClass[101X
[33X[1;0Y[29X[2XConjugacyClass[102X( [3XG[103X, [3Xg[103X ) [32X operation[133X
[33X[0;0Ycreates the conjugacy class in [3XG[103X with representative [3Xg[103X. This class is an
external set, so functions such as [2XRepresentative[102X ([14X30.4-7[114X) (which returns
[3Xg[103X), [2XActingDomain[102X ([14X41.12-3[114X) (which returns [3XG[103X), [2XStabilizerOfExternalSet[102X
([14X41.12-10[114X) (which returns the centralizer of [3Xg[103X) and [2XAsList[102X ([14X30.3-8[114X) work for
it.[133X
[33X[0;0YA conjugacy class is an external orbit (see [2XExternalOrbit[102X ([14X41.12-9[114X)) of
group elements with the group acting by conjugation on it. Thus element
tests or operation representatives can be computed. The attribute
[2XCentralizer[102X ([14X35.4-4[114X) gives the centralizer of the representative (which is
the same result as [2XStabilizerOfExternalSet[102X ([14X41.12-10[114X)). (This is a slight
abuse of notation: This is [13Xnot[113X the centralizer of the class as a [13Xset[113X which
would be the standard behaviour of [2XCentralizer[102X ([14X35.4-4[114X).)[133X
[1X39.10-2 ConjugacyClasses[101X
[33X[1;0Y[29X[2XConjugacyClasses[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns the conjugacy classes of elements of [3XG[103X as a list of class objects of
[3XG[103X (see [2XConjugacyClass[102X ([14X39.10-1[114X) for details). It is guaranteed that the
class of the identity is in the first position, the further arrangement
depends on the method chosen (and might be different for equal but not
identical groups).[133X
[33X[0;0YFor very small groups (of size up to 500) the classes will be computed by
the conjugation action of [3XG[103X on itself (see [2XConjugacyClassesByOrbits[102X
([14X39.10-4[114X)). This can be deliberately switched off using the [21X[10Xnoaction[110X[121X option
shown below.[133X
[33X[0;0YFor solvable groups, the default method to compute the classes is by
homomorphic lift (see section [14X45.17[114X).[133X
[33X[0;0YFor other groups the method of [Hul00] is employed.[133X
[33X[0;0Y[2XConjugacyClasses[102X supports the following options that can be used to modify
this strategy:[133X
[8X[10Xrandom[110X[8X[108X
[33X[0;6YThe classes are computed by random search. See
[2XConjugacyClassesByRandomSearch[102X ([14X39.10-3[114X) below.[133X
[8X[10Xaction[110X[8X[108X
[33X[0;6YThe classes are computed by action of [3XG[103X on itself. See
[2XConjugacyClassesByOrbits[102X ([14X39.10-4[114X) below.[133X
[8X[10Xnoaction[110X[8X[108X
[33X[0;6YEven for small groups [2XConjugacyClassesByOrbits[102X ([14X39.10-4[114X) is not used
as a default. This can be useful if the elements of the group use a
lot of memory.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;[127X[104X
[4X[25Xgap>[125X [27Xcl:=ConjugacyClasses(g);[127X[104X
[4X[28X[ ()^G, (1,2)^G, (1,2)(3,4)^G, (1,2,3)^G, (1,2,3,4)^G ][128X[104X
[4X[25Xgap>[125X [27XRepresentative(cl[3]);Centralizer(cl[3]);[127X[104X
[4X[28X(1,2)(3,4)[128X[104X
[4X[28XGroup([ (1,2), (1,3)(2,4), (3,4) ])[128X[104X
[4X[25Xgap>[125X [27XSize(Centralizer(cl[5]));[127X[104X
[4X[28X4[128X[104X
[4X[25Xgap>[125X [27XSize(cl[2]);[127X[104X
[4X[28X6[128X[104X
[4X[32X[104X
[33X[0;0YIn general, you will not need to have to influence the method, but simply
call [2XConjugacyClasses[102X –[5XGAP[105X will try to select a suitable method on its own.
The method specifications are provided here mainly for expert use.[133X
[1X39.10-3 ConjugacyClassesByRandomSearch[101X
[33X[1;0Y[29X[2XConjugacyClassesByRandomSearch[102X( [3XG[103X ) [32X function[133X
[33X[0;0Ycomputes the classes of the group [3XG[103X by random search. This works very
efficiently for almost simple groups.[133X
[33X[0;0YThis function is also accessible via the option [10Xrandom[110X to the function
[2XConjugacyClass[102X ([14X39.10-1[114X).[133X
[1X39.10-4 ConjugacyClassesByOrbits[101X
[33X[1;0Y[29X[2XConjugacyClassesByOrbits[102X( [3XG[103X ) [32X function[133X
[33X[0;0Ycomputes the classes of the group [3XG[103X as orbits of [3XG[103X on its elements. This can
be quick but unsurprisingly may also take a lot of memory if [3XG[103X becomes
larger. All the classes will store their element list and thus a membership
test will be quick as well.[133X
[33X[0;0YThis function is also accessible via the option [10Xaction[110X to the function
[2XConjugacyClass[102X ([14X39.10-1[114X).[133X
[33X[0;0YTypically, for small groups (roughly of order up to [22X10^3[122X) the computation of
classes as orbits under the action is fastest; memory restrictions (and the
increasing cost of eliminating duplicates) make this less efficient for
larger groups.[133X
[33X[0;0YCalculation by random search has the smallest memory requirement, but in
generally performs worse, the more classes are there.[133X
[33X[0;0YThe following example shows the effect of this for a small group with many
classes:[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xh:=Group((4,5)(6,7,8),(1,2,3)(5,6,9));;ConjugacyClasses(h:noaction);;time;[127X[104X
[4X[28X110[128X[104X
[4X[25Xgap>[125X [27Xh:=Group((4,5)(6,7,8),(1,2,3)(5,6,9));;ConjugacyClasses(h:random);;time;[127X[104X
[4X[28X300[128X[104X
[4X[25Xgap>[125X [27Xh:=Group((4,5)(6,7,8),(1,2,3)(5,6,9));;ConjugacyClasses(h:action);;time;[127X[104X
[4X[28X30[128X[104X
[4X[32X[104X
[1X39.10-5 NrConjugacyClasses[101X
[33X[1;0Y[29X[2XNrConjugacyClasses[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns the number of conjugacy classes of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
[4X[25Xgap>[125X [27XNrConjugacyClasses(g);[127X[104X
[4X[28X5[128X[104X
[4X[32X[104X
[1X39.10-6 RationalClass[101X
[33X[1;0Y[29X[2XRationalClass[102X( [3XG[103X, [3Xg[103X ) [32X operation[133X
[33X[0;0Ycreates the rational class in [3XG[103X with representative [3Xg[103X. A rational class
consists of all elements that are conjugate to [3Xg[103X or to an [22Xi[122X-th power of [3Xg[103X
where [22Xi[122X is coprime to the order of [22Xg[122X. Thus a rational class can be
interpreted as a conjugacy class of cyclic subgroups. A rational class is an
external set ([2XIsExternalSet[102X ([14X41.12-1[114X)) of group elements with the group
acting by conjugation on it, but not an external orbit.[133X
[1X39.10-7 RationalClasses[101X
[33X[1;0Y[29X[2XRationalClasses[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of the rational classes of the group [3XG[103X. (See [2XRationalClass[102X
([14X39.10-6[114X).)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XRationalClasses(DerivedSubgroup(g));[127X[104X
[4X[28X[ RationalClass( AlternatingGroup( [ 1 .. 4 ] ), () ), [128X[104X
[4X[28X RationalClass( AlternatingGroup( [ 1 .. 4 ] ), (1,2)(3,4) ), [128X[104X
[4X[28X RationalClass( AlternatingGroup( [ 1 .. 4 ] ), (1,2,3) ) ][128X[104X
[4X[32X[104X
[1X39.10-8 GaloisGroup[101X
[33X[1;0Y[29X[2XGaloisGroup[102X( [3Xratcl[103X ) [32X attribute[133X
[33X[0;0YSuppose that [3Xratcl[103X is a rational class of a group [22XG[122X with representative [22Xg[122X.
The exponents [22Xi[122X for which [22Xg^i[122X lies already in the ordinary conjugacy class
of [22Xg[122X, form a subgroup of the [13Xprime residue class group[113X [22XP_n[122X (see
[2XPrimitiveRootMod[102X ([14X15.3-3[114X)), the so-called [13XGalois group[113X of the rational
class. The prime residue class group [22XP_n[122X is obtained in [5XGAP[105X as [10XUnits(
Integers mod [3Xn[103X[10X )[110X, the unit group of a residue class ring. The Galois group
of a rational class [3Xratcl[103X is stored in the attribute [2XGaloisGroup[102X as a
subgroup of this group.[133X
[1X39.10-9 [33X[0;0YIsConjugate[133X[101X
[33X[1;0Y[29X[2XIsConjugate[102X( [3XG[103X, [3Xx[103X, [3Xy[103X ) [32X operation[133X
[33X[1;0Y[29X[2XIsConjugate[102X( [3XG[103X, [3XU[103X, [3XV[103X ) [32X operation[133X
[33X[0;0Ytests whether the elements [3Xx[103X and [3Xy[103X or the subgroups [3XU[103X and [3XV[103X are conjugate
under the action of [3XG[103X. (They do not need to be [13Xcontained in[113X [3XG[103X.) This command
is only a shortcut to [2XRepresentativeAction[102X ([14X41.6-1[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsConjugate(g,Group((1,2,3,4),(1,3)),Group((1,3,2,4),(1,2)));[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[33X[0;0Y[2XRepresentativeAction[102X ([14X41.6-1[114X) can be used to obtain conjugating elements.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XRepresentativeAction(g,(1,2),(3,4));[127X[104X
[4X[28X(1,3)(2,4)[128X[104X
[4X[32X[104X
[1X39.10-10 NthRootsInGroup[101X
[33X[1;0Y[29X[2XNthRootsInGroup[102X( [3XG[103X, [3Xe[103X, [3Xn[103X ) [32X function[133X
[33X[0;0YLet [3Xe[103X be an element in the group [3XG[103X. This function returns a list of all
those elements in [3XG[103X whose [3Xn[103X-th power is [3Xe[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XNthRootsInGroup(g,(1,2)(3,4),2);[127X[104X
[4X[28X[ (1,3,2,4), (1,4,2,3) ][128X[104X
[4X[32X[104X
[1X39.11 [33X[0;0YNormal Structure[133X[101X
[33X[0;0YFor the operations [2XCentralizer[102X ([14X35.4-4[114X) and [2XCentre[102X ([14X35.4-5[114X), see Chapter [14X35[114X.[133X
[1X39.11-1 [33X[0;0YNormalizer[133X[101X
[33X[1;0Y[29X[2XNormalizer[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[1;0Y[29X[2XNormalizer[102X( [3XG[103X, [3Xg[103X ) [32X operation[133X
[33X[0;0YFor two groups [3XG[103X, [3XU[103X, [2XNormalizer[102X computes the normalizer [22XN_[3XG[103X([3XU[103X)[122X, that is, the
stabilizer of [3XU[103X under the conjugation action of [3XG[103X.[133X
[33X[0;0YFor a group [3XG[103X and a group element [3Xg[103X, [2XNormalizer[102X computes [22XN_[3XG[103X(⟨ [3Xg[103X ⟩)[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XNormalizer(g,Subgroup(g,[(1,2,3)]));[127X[104X
[4X[28XGroup([ (1,2,3), (2,3) ])[128X[104X
[4X[32X[104X
[1X39.11-2 Core[101X
[33X[1;0Y[29X[2XCore[102X( [3XS[103X, [3XU[103X ) [32X operation[133X
[33X[0;0YIf [3XS[103X and [3XU[103X are groups of elements in the same family, this operation returns
the core of [3XU[103X in [3XS[103X, that is the intersection of all [3XS[103X-conjugates of [3XU[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
[4X[25Xgap>[125X [27XCore(g,Subgroup(g,[(1,2,3,4)]));[127X[104X
[4X[28XGroup(())[128X[104X
[4X[32X[104X
[1X39.11-3 PCore[101X
[33X[1;0Y[29X[2XPCore[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0YThe [13X[3Xp[103X-core[113X of [3XG[103X is the largest normal [3Xp[103X-subgroup of [3XG[103X. It is the core of a
Sylow [3Xp[103X-subgroup of [3XG[103X, see [2XCore[102X ([14X39.11-2[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=QuaternionGroup(12);;[127X[104X
[4X[25Xgap>[125X [27XPCore(g,2);[127X[104X
[4X[28XGroup([ y3 ])[128X[104X
[4X[25Xgap>[125X [27XPCore(g,2) = Core(g,SylowSubgroup(g,2));[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XPCore(g,3);[127X[104X
[4X[28XGroup([ y*y3 ])[128X[104X
[4X[25Xgap>[125X [27XPCore(g,5);[127X[104X
[4X[28XGroup([ ])[128X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;[127X[104X
[4X[25Xgap>[125X [27XPCore(g,2);[127X[104X
[4X[28XGroup([ (1,4)(2,3), (1,2)(3,4) ])[128X[104X
[4X[25Xgap>[125X [27XPCore(g,2) = Core(g,SylowSubgroup(g,2));[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.11-4 NormalClosure[101X
[33X[1;0Y[29X[2XNormalClosure[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0YThe normal closure of [3XU[103X in [3XG[103X is the smallest normal subgroup of the closure
of [3XG[103X and [3XU[103X which contains [3XU[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XNormalClosure(g,Subgroup(g,[(1,2,3)])) = Group([ (1,2,3), (2,3,4) ]);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XNormalClosure(g,Group((3,4,5))) = Group([ (3,4,5), (1,5,4), (1,2,5) ]);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.11-5 NormalIntersection[101X
[33X[1;0Y[29X[2XNormalIntersection[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0Ycomputes the intersection of [3XG[103X and [3XU[103X, assuming that [3XG[103X is normalized by [3XU[103X.
This works faster than [10XIntersection[110X, but will not produce the intersection
if [3XG[103X is not normalized by [3XU[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XNormalIntersection(Group((1,2)(3,4),(1,3)(2,4)),Group((1,2,3,4)));[127X[104X
[4X[28XGroup([ (1,3)(2,4) ])[128X[104X
[4X[32X[104X
[1X39.11-6 ComplementClassesRepresentatives[101X
[33X[1;0Y[29X[2XComplementClassesRepresentatives[102X( [3XG[103X, [3XN[103X ) [32X operation[133X
[33X[0;0YLet [3XN[103X be a normal subgroup of [3XG[103X. This command returns a set of
representatives for the conjugacy classes of complements of [3XN[103X in [3XG[103X.
Complements are subgroups of [3XG[103X which intersect trivially with [3XN[103X and together
with [3XN[103X generate [3XG[103X.[133X
[33X[0;0YAt the moment only methods for a solvable [3XN[103X are available.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XComplementClassesRepresentatives(g,Group((1,2)(3,4),(1,3)(2,4)));[127X[104X
[4X[28X[ Group([ (3,4), (2,4,3) ]) ][128X[104X
[4X[32X[104X
[1X39.11-7 InfoComplement[101X
[33X[1;0Y[29X[2XInfoComplement[102X[32X info class[133X
[33X[0;0YInfo class for the complement routines.[133X
[1X39.12 [33X[0;0YSpecific and Parametrized Subgroups[133X[101X
[33X[0;0YThe centre of a group (the subgroup of those elements that commute with all
other elements of the group) can be computed by the operation [2XCentre[102X
([14X35.4-5[114X).[133X
[1X39.12-1 TrivialSubgroup[101X
[33X[1;0Y[29X[2XTrivialSubgroup[102X( [3XG[103X ) [32X attribute[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XTrivialSubgroup(g);[127X[104X
[4X[28XGroup(())[128X[104X
[4X[32X[104X
[1X39.12-2 CommutatorSubgroup[101X
[33X[1;0Y[29X[2XCommutatorSubgroup[102X( [3XG[103X, [3XH[103X ) [32X operation[133X
[33X[0;0YIf [3XG[103X and [3XH[103X are two groups of elements in the same family, this operation
returns the group generated by all commutators [22X[ g, h ] = g^{-1} h^{-1} g h[122X
(see [2XComm[102X ([14X31.12-3[114X)) of elements [22Xg ∈ [3XG[103X[122X and [22Xh ∈ [3XH[103X[122X, that is the group [22X⟨ [ g, h
] ∣ g ∈ [3XG[103X, h ∈ [3XH[103X ⟩[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCommutatorSubgroup(Group((1,2,3),(1,2)),Group((2,3,4),(3,4)));[127X[104X
[4X[28XGroup([ (1,4)(2,3), (1,3,4) ])[128X[104X
[4X[25Xgap>[125X [27XSize(last);[127X[104X
[4X[28X12[128X[104X
[4X[32X[104X
[1X39.12-3 DerivedSubgroup[101X
[33X[1;0Y[29X[2XDerivedSubgroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe derived subgroup [22X[3XG[103X'[122X of [3XG[103X is the subgroup generated by all commutators of
pairs of elements of [3XG[103X. It is normal in [3XG[103X and the factor group [22X[3XG[103X/[3XG[103X'[122X is the
largest abelian factor group of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
[4X[25Xgap>[125X [27XDerivedSubgroup(g) = Group([ (1,3,2), (2,4,3) ]);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.12-4 CommutatorLength[101X
[33X[1;0Y[29X[2XCommutatorLength[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns the minimal number [22Xn[122X such that each element in the derived subgroup
(see [2XDerivedSubgroup[102X ([14X39.12-3[114X)) of the group [3XG[103X can be written as a product
of (at most) [22Xn[122X commutators of elements in [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCommutatorLength( g );[127X[104X
[4X[28X1[128X[104X
[4X[32X[104X
[1X39.12-5 FittingSubgroup[101X
[33X[1;0Y[29X[2XFittingSubgroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe Fitting subgroup of a group [3XG[103X is its largest nilpotent normal subgroup.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XFittingSubgroup(g);[127X[104X
[4X[28XGroup([ (1,2)(3,4), (1,4)(2,3) ])[128X[104X
[4X[32X[104X
[1X39.12-6 FrattiniSubgroup[101X
[33X[1;0Y[29X[2XFrattiniSubgroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe Frattini subgroup of a group [3XG[103X is the intersection of all maximal
subgroups of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XFrattiniSubgroup(g);[127X[104X
[4X[28XGroup(())[128X[104X
[4X[32X[104X
[1X39.12-7 PrefrattiniSubgroup[101X
[33X[1;0Y[29X[2XPrefrattiniSubgroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a Prefrattini subgroup of the finite solvable group [3XG[103X.[133X
[33X[0;0YA factor [22XM/N[122X of [3XG[103X is called a Frattini factor if [22XM/N[122X is contained in the
Frattini subgroup of [22X[3XG[103X/N[122X. A subgroup [22XP[122X is a Prefrattini subgroup of [3XG[103X if [22XP[122X
covers each Frattini chief factor of [3XG[103X, and if for each maximal subgroup of
[3XG[103X there exists a conjugate maximal subgroup, which contains [22XP[122X. In a finite
solvable group [3XG[103X the Prefrattini subgroups form a characteristic conjugacy
class of subgroups and the intersection of all these subgroups is the
Frattini subgroup of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG := SmallGroup( 60, 7 );[127X[104X
[4X[28X<pc group of size 60 with 4 generators>[128X[104X
[4X[25Xgap>[125X [27XP := PrefrattiniSubgroup(G);[127X[104X
[4X[28XGroup([ f2 ])[128X[104X
[4X[25Xgap>[125X [27XSize(P);[127X[104X
[4X[28X2[128X[104X
[4X[25Xgap>[125X [27XIsNilpotent(P);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XCore(G,P);[127X[104X
[4X[28XGroup([ ])[128X[104X
[4X[25Xgap>[125X [27XFrattiniSubgroup(G);[127X[104X
[4X[28XGroup([ ])[128X[104X
[4X[32X[104X
[1X39.12-8 PerfectResiduum[101X
[33X[1;0Y[29X[2XPerfectResiduum[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yis the smallest normal subgroup of [3XG[103X that has a solvable factor group.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XPerfectResiduum(Group((1,2,3,4,5),(1,2)));[127X[104X
[4X[28XGroup([ (1,3,2), (1,4,3), (3,5,4) ])[128X[104X
[4X[32X[104X
[1X39.12-9 RadicalGroup[101X
[33X[1;0Y[29X[2XRadicalGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yis the radical of [3XG[103X, i.e., the largest solvable normal subgroup of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XRadicalGroup(SL(2,5));[127X[104X
[4X[28X<group of 2x2 matrices of size 2 over GF(5)>[128X[104X
[4X[25Xgap>[125X [27XSize(last);[127X[104X
[4X[28X2[128X[104X
[4X[32X[104X
[1X39.12-10 Socle[101X
[33X[1;0Y[29X[2XSocle[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe socle of the group [3XG[103X is the subgroup generated by all minimal normal
subgroups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XSocle(g);[127X[104X
[4X[28XGroup([ (1,4)(2,3), (1,2)(3,4) ])[128X[104X
[4X[32X[104X
[1X39.12-11 SupersolvableResiduum[101X
[33X[1;0Y[29X[2XSupersolvableResiduum[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yis the supersolvable residuum of the group [3XG[103X, that is, its smallest normal
subgroup [22XN[122X such that the factor group [22X[3XG[103X / N[122X is supersolvable.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XSupersolvableResiduum(g) = Group([ (1,3)(2,4), (1,4)(2,3) ]);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.12-12 PRump[101X
[33X[1;0Y[29X[2XPRump[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0YFor a prime [22Xp[122X, the [13X[3Xp[103X-rump[113X of a group [3XG[103X is the subgroup [22X[3XG[103X' [3XG[103X^[3Xp[103X[122X. Unless it
equals [3XG[103X itself (which is the e.g. the case if [3XG[103X is perfect), it is equal to
the second term of the [3Xp[103X-central series of [3XG[103X, see [2XPCentralSeries[102X ([14X39.17-13[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=QuaternionGroup(12);;[127X[104X
[4X[25Xgap>[125X [27XPRump(g,2) = PCentralSeries(g,2)[2];[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;[127X[104X
[4X[25Xgap>[125X [27XPRump(g,2) = AlternatingGroup(4);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.13 [33X[0;0YSylow Subgroups and Hall Subgroups[133X[101X
[33X[0;0YWith respect to the following [5XGAP[105X functions, please note that by theorems of
P. Hall, a group [22XG[122X is solvable if and only if one of the following
conditions holds.[133X
[31X1[131X [33X[0;6YFor each prime [22Xp[122X dividing the order of [22XG[122X, there exists a [22Xp[122X-complement
(see [2XSylowComplement[102X ([14X39.13-2[114X)).[133X
[31X2[131X [33X[0;6YFor each set [22XP[122X of primes dividing the order of [22XG[122X, there exists a
[22XP[122X-Hall subgroup (see [2XHallSubgroup[102X ([14X39.13-3[114X)).[133X
[31X3[131X [33X[0;6Y[22XG[122X has a Sylow system (see [2XSylowSystem[102X ([14X39.13-4[114X)).[133X
[31X4[131X [33X[0;6Y[22XG[122X has a complement system (see [2XComplementSystem[102X ([14X39.13-5[114X)).[133X
[1X39.13-1 SylowSubgroup[101X
[33X[1;0Y[29X[2XSylowSubgroup[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0Yreturns a Sylow [3Xp[103X-subgroup of the finite group [3XG[103X. This is a [3Xp[103X-subgroup of [3XG[103X
whose index in [3XG[103X is coprime to [3Xp[103X. [2XSylowSubgroup[102X computes Sylow subgroups via
the operation [10XSylowSubgroupOp[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;[127X[104X
[4X[25Xgap>[125X [27XSylowSubgroup(g,2);[127X[104X
[4X[28XGroup([ (1,2), (3,4), (1,3)(2,4) ])[128X[104X
[4X[32X[104X
[1X39.13-2 SylowComplement[101X
[33X[1;0Y[29X[2XSylowComplement[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0Yreturns a Sylow [3Xp[103X-complement of the finite group [3XG[103X. This is a subgroup [22XU[122X of
order coprime to [3Xp[103X such that the index [22X[[3XG[103X:U][122X is a [3Xp[103X-power.[133X
[33X[0;0YAt the moment methods exist only if [3XG[103X is solvable and [5XGAP[105X will issue an
error if [3XG[103X is not solvable.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XSylowComplement(g,3);[127X[104X
[4X[28XGroup([ (1,2), (3,4), (1,3)(2,4) ])[128X[104X
[4X[32X[104X
[1X39.13-3 HallSubgroup[101X
[33X[1;0Y[29X[2XHallSubgroup[102X( [3XG[103X, [3XP[103X ) [32X operation[133X
[33X[0;0Ycomputes a [3XP[103X-Hall subgroup for a set [3XP[103X of primes. This is a subgroup the
order of which is only divisible by primes in [3XP[103X and whose index is coprime
to all primes in [3XP[103X. Such a subgroup is unique up to conjugacy if [3XG[103X is
solvable. The function computes Hall subgroups via the operation
[10XHallSubgroupOp[110X.[133X
[33X[0;0YIf [3XG[103X is solvable this function always returns a subgroup. If [3XG[103X is not
solvable this function might return a subgroup (if it is unique up to
conjugacy), a list of subgroups (which are representatives of the conjugacy
classes in case there are several such classes) or [9Xfail[109X if no such subgroup
exists.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xh:=SmallGroup(60,10);;[127X[104X
[4X[25Xgap>[125X [27Xu:=HallSubgroup(h,[2,3]);[127X[104X
[4X[28XGroup([ f1, f2, f3 ])[128X[104X
[4X[25Xgap>[125X [27XSize(u);[127X[104X
[4X[28X12[128X[104X
[4X[25Xgap>[125X [27Xh:=PSL(3,5);;[127X[104X
[4X[25Xgap>[125X [27XHallSubgroup(h,[2,3]); [127X[104X
[4X[28X[ <permutation group of size 96 with 6 generators>, [128X[104X
[4X[28X <permutation group of size 96 with 6 generators> ][128X[104X
[4X[25Xgap>[125X [27Xu := HallSubgroup(h,[3,31]);;[127X[104X
[4X[25Xgap>[125X [27XSize(u); StructureDescription(u);[127X[104X
[4X[28X93[128X[104X
[4X[28X"C31 : C3"[128X[104X
[4X[25Xgap>[125X [27XHallSubgroup(h,[5,31]);[127X[104X
[4X[28Xfail[128X[104X
[4X[32X[104X
[1X39.13-4 SylowSystem[101X
[33X[1;0Y[29X[2XSylowSystem[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YA Sylow system of a group [3XG[103X is a set of Sylow subgroups of [3XG[103X such that every
pair of subgroups from this set commutes as subgroups. Sylow systems exist
only for solvable groups. The operation returns [9Xfail[109X if the group [3XG[103X is not
solvable.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xh:=SmallGroup(60,10);;[127X[104X
[4X[25Xgap>[125X [27XSylowSystem(h);[127X[104X
[4X[28X[ Group([ f1, f2 ]), Group([ f3 ]), Group([ f4 ]) ][128X[104X
[4X[25Xgap>[125X [27XList(last,Size);[127X[104X
[4X[28X[ 4, 3, 5 ][128X[104X
[4X[32X[104X
[1X39.13-5 ComplementSystem[101X
[33X[1;0Y[29X[2XComplementSystem[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YA complement system of a group [3XG[103X is a set of Hall [22Xp'[122X-subgroups of [3XG[103X, where
[22Xp'[122X runs through the subsets of prime factors of [22X|[3XG[103X|[122X that omit exactly one
prime. Every pair of subgroups from this set commutes as subgroups.
Complement systems exist only for solvable groups, therefore
[2XComplementSystem[102X returns [9Xfail[109X if the group [3XG[103X is not solvable.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XComplementSystem(h);[127X[104X
[4X[28X[ Group([ f3, f4 ]), Group([ f1, f2, f4 ]), Group([ f1, f2, f3 ]) ][128X[104X
[4X[25Xgap>[125X [27XList(last,Size);[127X[104X
[4X[28X[ 15, 20, 12 ][128X[104X
[4X[32X[104X
[1X39.13-6 HallSystem[101X
[33X[1;0Y[29X[2XHallSystem[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list containing one Hall [22XP[122X-subgroup for each set [22XP[122X of prime
divisors of the order of [3XG[103X. Hall systems exist only for solvable groups. The
operation returns [9Xfail[109X if the group [3XG[103X is not solvable.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XHallSystem(h);[127X[104X
[4X[28X[ Group([ ]), Group([ f1, f2 ]), Group([ f1, f2, f3 ]), [128X[104X
[4X[28X Group([ f1, f2, f3, f4 ]), Group([ f1, f2, f4 ]), Group([ f3 ]), [128X[104X
[4X[28X Group([ f3, f4 ]), Group([ f4 ]) ][128X[104X
[4X[25Xgap>[125X [27XList(last,Size);[127X[104X
[4X[28X[ 1, 4, 12, 60, 20, 3, 15, 5 ][128X[104X
[4X[32X[104X
[1X39.14 [33X[0;0YSubgroups characterized by prime powers[133X[101X
[1X39.14-1 Omega[101X
[33X[1;0Y[29X[2XOmega[102X( [3XG[103X, [3Xp[103X[, [3Xn[103X] ) [32X operation[133X
[33X[0;0YFor a [3Xp[103X-group [3XG[103X, one defines [22XΩ_[3Xn[103X([3XG[103X) = { g ∈ [3XG[103X ∣ g^{[3Xp[103X^[3Xn[103X} = 1 }[122X. The default
value for [3Xn[103X is [10X1[110X.[133X
[33X[0;0Y[13X@At the moment methods exist only for abelian [3XG[103X and [3Xn[103X=1.@[113X[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xh:=SmallGroup(16,10);[127X[104X
[4X[28X<pc group of size 16 with 4 generators>[128X[104X
[4X[25Xgap>[125X [27XOmega(h,2);[127X[104X
[4X[28XGroup([ f2, f3, f4 ])[128X[104X
[4X[32X[104X
[1X39.14-2 Agemo[101X
[33X[1;0Y[29X[2XAgemo[102X( [3XG[103X, [3Xp[103X[, [3Xn[103X] ) [32X function[133X
[33X[0;0YFor a [3Xp[103X-group [3XG[103X, one defines [22X℧_[3Xn[103X(G) = ⟨ g^{[3Xp[103X^[3Xn[103X} ∣ g ∈ [3XG[103X ⟩[122X. The default value
for [3Xn[103X is [10X1[110X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XAgemo(h,2);Agemo(h,2,2);[127X[104X
[4X[28XGroup([ f4 ])[128X[104X
[4X[28XGroup([ ])[128X[104X
[4X[32X[104X
[1X39.15 [33X[0;0YGroup Properties[133X[101X
[33X[0;0YSome 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 [10XGroup[110X to distinguish different meanings for different structures.[133X
[33X[0;0YSome functions, such as [2XIsPSolvable[102X ([14X39.15-24[114X) and [2XIsPNilpotent[102X ([14X39.15-25[114X),
although they are mathematical properties, are not properties in the sense
of [5XGAP[105X (see [14X13.5[114X and [14X13.7[114X), as they depend on a parameter.[133X
[1X39.15-1 IsCyclic[101X
[33X[1;0Y[29X[2XIsCyclic[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group is [13Xcyclic[113X if it can be generated by one element. For a cyclic group,
one can compute a generating set consisting of only one element using
[2XMinimalGeneratingSet[102X ([14X39.22-3[114X).[133X
[1X39.15-2 IsElementaryAbelian[101X
[33X[1;0Y[29X[2XIsElementaryAbelian[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group [3XG[103X is elementary abelian if it is commutative and if there is a prime
[22Xp[122X such that the order of each element in [3XG[103X divides [22Xp[122X.[133X
[1X39.15-3 IsNilpotentGroup[101X
[33X[1;0Y[29X[2XIsNilpotentGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group is [13Xnilpotent[113X if the lower central series
(see [2XLowerCentralSeriesOfGroup[102X ([14X39.17-11[114X) for a definition) reaches the
trivial subgroup in a finite number of steps.[133X
[1X39.15-4 NilpotencyClassOfGroup[101X
[33X[1;0Y[29X[2XNilpotencyClassOfGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe nilpotency class of a nilpotent group [3XG[103X is the number of steps in the
lower central series of [3XG[103X (see [2XLowerCentralSeriesOfGroup[102X ([14X39.17-11[114X));[133X
[33X[0;0YIf [3XG[103X is not nilpotent an error is issued.[133X
[1X39.15-5 IsPerfectGroup[101X
[33X[1;0Y[29X[2XIsPerfectGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group is [13Xperfect[113X if it equals its derived subgroup (see [2XDerivedSubgroup[102X
([14X39.12-3[114X)).[133X
[1X39.15-6 IsSolvableGroup[101X
[33X[1;0Y[29X[2XIsSolvableGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group is [13Xsolvable[113X if the derived series (see [2XDerivedSeriesOfGroup[102X
([14X39.17-7[114X) for a definition) reaches the trivial subgroup in a finite number
of steps.[133X
[33X[0;0YFor finite groups this is the same as being polycyclic
(see [2XIsPolycyclicGroup[102X ([14X39.15-7[114X)), and each polycyclic group is solvable,
but there are infinite solvable groups that are not polycyclic.[133X
[1X39.15-7 IsPolycyclicGroup[101X
[33X[1;0Y[29X[2XIsPolycyclicGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group is polycyclic if it has a subnormal series with cyclic factors. For
finite groups this is the same as if the group is solvable
(see [2XIsSolvableGroup[102X ([14X39.15-6[114X)).[133X
[1X39.15-8 IsSupersolvableGroup[101X
[33X[1;0Y[29X[2XIsSupersolvableGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA finite group is [13Xsupersolvable[113X if it has a normal series with cyclic
factors.[133X
[1X39.15-9 IsMonomialGroup[101X
[33X[1;0Y[29X[2XIsMonomialGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA finite group is [13Xmonomial[113X if every irreducible complex character is induced
from a linear character of a subgroup.[133X
[1X39.15-10 IsSimpleGroup[101X
[33X[1;0Y[29X[2XIsSimpleGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group is [13Xsimple[113X if it is nontrivial and has no nontrivial normal
subgroups.[133X
[1X39.15-11 IsAlmostSimpleGroup[101X
[33X[1;0Y[29X[2XIsAlmostSimpleGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA group [3XG[103X is [13Xalmost simple[113X if a nonabelian simple group [22XS[122X exists such that [3XG[103X
is isomorphic to a subgroup of the automorphism group of [22XS[122X that contains all
inner automorphisms of [22XS[122X.[133X
[33X[0;0YEquivalently, [3XG[103X is almost simple if and only if it has a unique minimal
normal subgroup [22XN[122X and if [22XN[122X is a nonabelian simple group.[133X
[33X[0;0YNote that an almost simple group is [13Xnot[113X defined as an extension of a simple
group by outer automorphisms, since we want to exclude extensions of groups
of prime order. In particular, a [13Xsimple[113X group is [13Xalmost simple[113X if and only
if it is nonabelian.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsAlmostSimpleGroup( AlternatingGroup( 5 ) );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsAlmostSimpleGroup( SymmetricGroup( 5 ) );[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsAlmostSimpleGroup( SymmetricGroup( 3 ) );[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XIsAlmostSimpleGroup( SL( 2, 5 ) ); [127X[104X
[4X[28Xfalse[128X[104X
[4X[32X[104X
[1X39.15-12 [33X[0;0YIsomorphismTypeInfoFiniteSimpleGroup[133X[101X
[33X[1;0Y[29X[2XIsomorphismTypeInfoFiniteSimpleGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XIsomorphismTypeInfoFiniteSimpleGroup[102X( [3Xn[103X ) [32X attribute[133X
[33X[0;0YFor a finite simple group [3XG[103X, [2XIsomorphismTypeInfoFiniteSimpleGroup[102X returns a
record with the components [10Xname[110X, [10Xshortname[110X, [10Xseries[110X, and possibly [10Xparameter[110X,
describing the isomorphism type of [3XG[103X.[133X
[33X[0;0YThe values of the components [10Xname[110X, [10Xshortname[110X, and [10Xseries[110X are strings, [10Xname[110X
gives name(s) for [3XG[103X, [10Xshortname[110X gives one name for [3XG[103X that is compatible with
the naming scheme used in the [5XGAP[105X packages [5XCTblLib[105X and [5XAtlasRep[105X (and in the
[5XAtlas[105X of Finite Groups [CCN+85]), and [10Xseries[110X describes the following series.[133X
[33X[0;0Y(If different characterizations of [3XG[103X are possible only one is given by
[10Xseries[110X and [10Xparameter[110X, while [10Xname[110X may give several names.)[133X
[8X[10X"A"[110X[8X[108X
[33X[0;6YAlternating groups, [10Xparameter[110X gives the natural degree.[133X
[8X[10X"L"[110X[8X[108X
[33X[0;6YLinear groups (Chevalley type [22XA[122X), [10Xparameter[110X is a list [22X[ n, q ][122X that
indicates [22XL(n,q)[122X.[133X
[8X[10X"2A"[110X[8X[108X
[33X[0;6YTwisted Chevalley type [22X^2A[122X, [10Xparameter[110X is a list [22X[ n, q ][122X that
indicates [22X^2A(n,q)[122X.[133X
[8X[10X"B"[110X[8X[108X
[33X[0;6YChevalley type [22XB[122X, [10Xparameter[110X is a list [22X[n, q ][122X that indicates [22XB(n,q)[122X.[133X
[8X[10X"2B"[110X[8X[108X
[33X[0;6YTwisted Chevalley type [22X^2B[122X, [10Xparameter[110X is a value [22Xq[122X that indicates
[22X^2B(2,q)[122X.[133X
[8X[10X"C"[110X[8X[108X
[33X[0;6YChevalley type [22XC[122X, [10Xparameter[110X is a list [22X[ n, q ][122X that indicates [22XC(n,q)[122X.[133X
[8X[10X"D"[110X[8X[108X
[33X[0;6YChevalley type [22XD[122X, [10Xparameter[110X is a list [22X[ n, q ][122X that indicates [22XD(n,q)[122X.[133X
[8X[10X"2D"[110X[8X[108X
[33X[0;6YTwisted Chevalley type [22X^2D[122X, [10Xparameter[110X is a list [22X[ n, q ][122X that
indicates [22X^2D(n,q)[122X.[133X
[8X[10X"3D"[110X[8X[108X
[33X[0;6YTwisted Chevalley type [22X^3D[122X, [10Xparameter[110X is a value [22Xq[122X that indicates
[22X^3D(4,q)[122X.[133X
[8X[10X"E"[110X[8X[108X
[33X[0;6YExceptional Chevalley type [22XE[122X, [10Xparameter[110X is a list [22X[ n, q ][122X that
indicates [22XE_n(q)[122X. The value of [3Xn[103X is 6, 7, or 8.[133X
[8X[10X"2E"[110X[8X[108X
[33X[0;6YTwisted exceptional Chevalley type [22XE_6[122X, [10Xparameter[110X is a value [22Xq[122X that
indicates [22X^2E_6(q)[122X.[133X
[8X[10X"F"[110X[8X[108X
[33X[0;6YExceptional Chevalley type [22XF[122X, [10Xparameter[110X is a value [22Xq[122X that indicates
[22XF(4,q)[122X.[133X
[8X[10X"2F"[110X[8X[108X
[33X[0;6YTwisted exceptional Chevalley type [22X^2F[122X (Ree groups), [10Xparameter[110X is a
value [22Xq[122X that indicates [22X^2F(4,q)[122X.[133X
[8X[10X"G"[110X[8X[108X
[33X[0;6YExceptional Chevalley type [22XG[122X, [10Xparameter[110X is a value [22Xq[122X that indicates
[22XG(2,q)[122X.[133X
[8X[10X"2G"[110X[8X[108X
[33X[0;6YTwisted exceptional Chevalley type [22X^2G[122X (Ree groups), [10Xparameter[110X is a
value [22Xq[122X that indicates [22X^2G(2,q)[122X.[133X
[8X[10X"Spor"[110X[8X[108X
[33X[0;6YSporadic simple groups, [10Xname[110X gives the name.[133X
[8X[10X"Z"[110X[8X[108X
[33X[0;6YCyclic groups of prime size, [10Xparameter[110X gives the size.[133X
[33X[0;0YAn equal sign in the name denotes different naming schemes for the same
group, a tilde sign abstract isomorphisms between groups constructed in a
different way.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup([127X[104X
[4X[25X>[125X [27X Group((4,5)(6,7),(1,2,4)(3,5,6)));[127X[104X
[4X[28Xrec( [128X[104X
[4X[28X name := "A(1,7) = L(2,7) ~ B(1,7) = O(3,7) ~ C(1,7) = S(2,7) ~ 2A(1,\[128X[104X
[4X[28X7) = U(2,7) ~ A(2,2) = L(3,2)", parameter := [ 2, 7 ], series := "L", [128X[104X
[4X[28X shortname := "L3(2)" )[128X[104X
[4X[32X[104X
[33X[0;0YFor a positive integer [3Xn[103X, [2XIsomorphismTypeInfoFiniteSimpleGroup[102X returns [9Xfail[109X
if [3Xn[103X is not the order of a finite simple group, and a record as described
for the case of a group [3XG[103X otherwise. If more than one simple group of order
[3Xn[103X exists then the result record contains only the [10Xname[110X component, a string
that lists the two possible isomorphism types of simple groups of this
order.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( 5 );[127X[104X
[4X[28Xrec( name := "Z(5)", parameter := 5, series := "Z", shortname := "C5" [128X[104X
[4X[28X )[128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup( 6 );[127X[104X
[4X[28Xfail[128X[104X
[4X[25Xgap>[125X [27XIsomorphismTypeInfoFiniteSimpleGroup(Size(SymplecticGroup(6,3))/2);[127X[104X
[4X[28Xrec( [128X[104X
[4X[28X name := "cannot decide from size alone between B(3,3) = O(7,3) and C\[128X[104X
[4X[28X(3,3) = S(6,3)", parameter := [ 3, 3 ] )[128X[104X
[4X[32X[104X
[1X39.15-13 SimpleGroup[101X
[33X[1;0Y[29X[2XSimpleGroup[102X( [3Xid[103X[, [3Xparam[103X] ) [32X function[133X
[33X[0;0YThis function will construct [12Xan[112X instance of the specified simple group.
Groups are specified via their name in ATLAS style notation, with parameters
added if necessary. The intelligence applied to parsing the name is limited,
and at the moment no proper extensions can be constructed. For groups who do
not have a permutation representation of small degree the ATLASREP package
might need to be installed to construct theses groups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SimpleGroup("M(23)");[127X[104X
[4X[28XM23[128X[104X
[4X[25Xgap>[125X [27XSize(g);[127X[104X
[4X[28X10200960[128X[104X
[4X[25Xgap>[125X [27Xg:=SimpleGroup("PSL",3,5);[127X[104X
[4X[28XPSL(3,5)[128X[104X
[4X[25Xgap>[125X [27XSize(g);[127X[104X
[4X[28X372000[128X[104X
[4X[25Xgap>[125X [27Xg:=SimpleGroup("PSp6",2); [127X[104X
[4X[28XPSp(6,2)[128X[104X
[4X[32X[104X
[1X39.15-14 SimpleGroupsIterator[101X
[33X[1;0Y[29X[2XSimpleGroupsIterator[102X( [[3Xstart[103X[, [3Xend[103X]] ) [32X function[133X
[33X[0;0YThis function returns an iterator that will run over all simple groups,
starting at order [3Xstart[103X if specified, up to order [22X10^18[122X (or -- if specified
-- order [3Xend[103X). If the option [3XNOPSL2[103X is given, groups of type [22XPSL_2(q)[122X are
omitted.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xit:=SimpleGroupsIterator(20000);[127X[104X
[4X[28X<iterator>[128X[104X
[4X[25Xgap>[125X [27XList([1..8],x->NextIterator(it)); [127X[104X
[4X[28X[ A8, PSL(3,4), PSL(2,37), PSp(4,3), Sz(8), PSL(2,32), PSL(2,41), [128X[104X
[4X[28X PSL(2,43) ][128X[104X
[4X[25Xgap>[125X [27Xit:=SimpleGroupsIterator(1,2000);;[127X[104X
[4X[25Xgap>[125X [27Xl:=[];;for i in it do Add(l,i);od;l;[127X[104X
[4X[28X[ A5, PSL(2,7), A6, PSL(2,8), PSL(2,11), PSL(2,13) ][128X[104X
[4X[25Xgap>[125X [27Xit:=SimpleGroupsIterator(20000,100000:NOPSL2);;[127X[104X
[4X[25Xgap>[125X [27Xl:=[];;for i in it do Add(l,i);od;l;[127X[104X
[4X[28X[ A8, PSL(3,4), PSp(4,3), Sz(8), PSU(3,4), M12 ][128X[104X
[4X[32X[104X
[1X39.15-15 SmallSimpleGroup[101X
[33X[1;0Y[29X[2XSmallSimpleGroup[102X( [3Xorder[103X[, [3Xi[103X] ) [32X function[133X
[6XReturns:[106X [33X[0;10YThe [3Xi[103Xth simple group of order [3Xorder[103X in the stored list, given in a
small-degree permutation representation, or [2Xfail[102X ([14X20.2-1[114X) if no
such simple group exists.[133X
[33X[0;0YIf [3Xi[103X is not given, it defaults to 1. Currently, all simple groups of order
less than [22X10^6[122X are available via this function.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XSmallSimpleGroup(60);[127X[104X
[4X[28XA5[128X[104X
[4X[25Xgap>[125X [27XSmallSimpleGroup(20160,1);[127X[104X
[4X[28XA8[128X[104X
[4X[25Xgap>[125X [27XSmallSimpleGroup(20160,2);[127X[104X
[4X[28XPSL(3,4)[128X[104X
[4X[32X[104X
[1X39.15-16 AllSmallNonabelianSimpleGroups[101X
[33X[1;0Y[29X[2XAllSmallNonabelianSimpleGroups[102X( [3Xorders[103X ) [32X function[133X
[6XReturns:[106X [33X[0;10YA list of all nonabelian simple groups whose order lies in the
range [3Xorders[103X.[133X
[33X[0;0YThe groups are given in small-degree permutation representations. The
returned list is sorted by ascending group order. Currently, all simple
groups of order less than [22X10^6[122X are available via this function.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XList(AllSmallNonabelianSimpleGroups([1..1000000]),[127X[104X
[4X[25X>[125X [27X StructureDescription);[127X[104X
[4X[28X[ "A5", "PSL(3,2)", "A6", "PSL(2,8)", "PSL(2,11)", "PSL(2,13)", [128X[104X
[4X[28X "PSL(2,17)", "A7", "PSL(2,19)", "PSL(2,16)", "PSL(3,3)", [128X[104X
[4X[28X "PSU(3,3)", "PSL(2,23)", "PSL(2,25)", "M11", "PSL(2,27)", [128X[104X
[4X[28X "PSL(2,29)", "PSL(2,31)", "A8", "PSL(3,4)", "PSL(2,37)", "O(5,3)", [128X[104X
[4X[28X "Sz(8)", "PSL(2,32)", "PSL(2,41)", "PSL(2,43)", "PSL(2,47)", [128X[104X
[4X[28X "PSL(2,49)", "PSU(3,4)", "PSL(2,53)", "M12", "PSL(2,59)", [128X[104X
[4X[28X "PSL(2,61)", "PSU(3,5)", "PSL(2,67)", "J1", "PSL(2,71)", "A9", [128X[104X
[4X[28X "PSL(2,73)", "PSL(2,79)", "PSL(2,64)", "PSL(2,81)", "PSL(2,83)", [128X[104X
[4X[28X "PSL(2,89)", "PSL(3,5)", "M22", "PSL(2,97)", "PSL(2,101)", [128X[104X
[4X[28X "PSL(2,103)", "HJ", "PSL(2,107)", "PSL(2,109)", "PSL(2,113)", [128X[104X
[4X[28X "PSL(2,121)", "PSL(2,125)", "O(5,4)" ][128X[104X
[4X[32X[104X
[1X39.15-17 IsFinitelyGeneratedGroup[101X
[33X[1;0Y[29X[2XIsFinitelyGeneratedGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0Ytests whether the group [3XG[103X can be generated by a finite number of generators.
(This property is mainly used to obtain finiteness conditions.)[133X
[33X[0;0YNote that this is a pure existence statement. Even if a group is known to be
generated by a finite number of elements, it can be very hard or even
impossible to obtain such a generating set if it is not known.[133X
[1X39.15-18 IsSubsetLocallyFiniteGroup[101X
[33X[1;0Y[29X[2XIsSubsetLocallyFiniteGroup[102X( [3XU[103X ) [32X property[133X
[33X[0;0YA group is called locally finite if every finitely generated subgroup is
finite. This property checks whether the group [3XU[103X is a subset of a locally
finite group. This is used to check whether finite generation will imply
finiteness, as it does for example for permutation groups.[133X
[1X39.15-19 IsPGroup[101X
[33X[1;0Y[29X[2XIsPGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA [13X[22Xp[122X-group[113X is a group in which the order (see [2XOrder[102X ([14X31.10-10[114X)) of every
element is of the form [22Xp^n[122X for a prime integer [22Xp[122X and a nonnegative integer
[22Xn[122X. [2XIsPGroup[102X returns [9Xtrue[109X if [3XG[103X is a [22Xp[122X-group, and [9Xfalse[109X otherwise.[133X
[33X[0;0YFinite [22Xp[122X-groups are precisely those groups whose order (see [2XSize[102X ([14X30.4-6[114X))
is a prime power, and are always nilpotent.[133X
[33X[0;0YNote that [22Xp[122X-groups can also be infinite, and in that case, need not be
nilpotent.[133X
[1X39.15-20 IsPowerfulPGroup[101X
[33X[1;0Y[29X[2XIsPowerfulPGroup[102X( [3XG[103X ) [32X property[133X
[33X[0;0YA finite p-group [3XG[103X is said to be a [13Xpowerful [22Xp[122X-group[113X if the commutator
subgroup [22X[[3XG[103X,[3XG[103X][122X is contained in [22X[3XG[103X^p[122X if the prime [22Xp[122X is odd, or if [22X[[3XG[103X,[3XG[103X][122X is
contained in [22X[3XG[103X^4[122X if [22Xp = 2[122X. The subgroup [22X[3XG[103X^p[122X is called the first Agemo
subgroup, (see [2XAgemo[102X ([14X39.14-2[114X)). [2XIsPowerfulPGroup[102X returns [9Xtrue[109X if [3XG[103X is a
powerful [22Xp[122X-group, and [9Xfalse[109X otherwise. [13XNote: [113XThis function returns [9Xtrue[109X if [3XG[103X
is the trivial group.[133X
[1X39.15-21 PrimePGroup[101X
[33X[1;0Y[29X[2XPrimePGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YIf [3XG[103X is a nontrivial [22Xp[122X-group (see [2XIsPGroup[102X ([14X39.15-19[114X)), [2XPrimePGroup[102X returns
the prime integer [22Xp[122X; if [3XG[103X is trivial then [2XPrimePGroup[102X returns [9Xfail[109X.
Otherwise an error is issued.[133X
[33X[0;0Y(One should avoid a common error of writing [10Xif IsPGroup(g) then ...
PrimePGroup(g) ...[110X where the code represented by dots assumes that
[10XPrimePGroup(g)[110X is an integer.)[133X
[1X39.15-22 PClassPGroup[101X
[33X[1;0Y[29X[2XPClassPGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe [22Xp[122X-class of a [22Xp[122X-group [3XG[103X (see [2XIsPGroup[102X ([14X39.15-19[114X)) is the length of the
lower [22Xp[122X-central series (see [2XPCentralSeries[102X ([14X39.17-13[114X)) of [3XG[103X. If [3XG[103X is not a
[22Xp[122X-group then an error is issued.[133X
[1X39.15-23 RankPGroup[101X
[33X[1;0Y[29X[2XRankPGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YFor a [22Xp[122X-group [3XG[103X (see [2XIsPGroup[102X ([14X39.15-19[114X)), [2XRankPGroup[102X returns the [13Xrank[113X of [3XG[103X,
which is defined as the minimal size of a generating system of [3XG[103X. If [3XG[103X is
not a [22Xp[122X-group then an error is issued.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xh:=Group((1,2,3,4),(1,3));;[127X[104X
[4X[25Xgap>[125X [27XPClassPGroup(h);[127X[104X
[4X[28X2[128X[104X
[4X[25Xgap>[125X [27XRankPGroup(h);[127X[104X
[4X[28X2[128X[104X
[4X[32X[104X
[1X39.15-24 IsPSolvable[101X
[33X[1;0Y[29X[2XIsPSolvable[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0YA finite group is [22Xp[122X-solvable if every chief factor either has order not
divisible by [22Xp[122X, or is solvable.[133X
[1X39.15-25 IsPNilpotent[101X
[33X[1;0Y[29X[2XIsPNilpotent[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0YA group is [22Xp[122X-nilpotent if it possesses a normal [22Xp[122X-complement.[133X
[1X39.16 [33X[0;0YNumerical Group Attributes[133X[101X
[33X[0;0YThis 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,
[2XNrConjugacyClasses[102X ([14X39.10-5[114X), [2XNilpotencyClassOfGroup[102X ([14X39.15-4[114X) and others.[133X
[33X[0;0YNote also that some functions, such as [2XEulerianFunction[102X ([14X39.16-3[114X), are
mathematical attributes, but not [5XGAP[105X attributes (see [14X13.5[114X) as they are
depending on a parameter.[133X
[1X39.16-1 AbelianInvariants[101X
[33X[1;0Y[29X[2XAbelianInvariants[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns the abelian invariants (also sometimes called primary decomposition)
of the commutator factor group of the group [3XG[103X. These are given as a list of
prime-powers or zeroes and describe the structure of [22X[3XG[103X/[3XG[103X'[122X as a direct
product of cyclic groups of prime power (or infinite) order.[133X
[33X[0;0Y(See [2XIndependentGeneratorsOfAbelianGroup[102X ([14X39.22-5[114X) to obtain actual
generators).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2),(5,6));;[127X[104X
[4X[25Xgap>[125X [27XAbelianInvariants(g);[127X[104X
[4X[28X[ 2, 2 ][128X[104X
[4X[25Xgap>[125X [27Xh:=FreeGroup(2);;h:=h/[h.1^3];;[127X[104X
[4X[25Xgap>[125X [27XAbelianInvariants(h);[127X[104X
[4X[28X[ 0, 3 ][128X[104X
[4X[32X[104X
[1X39.16-2 Exponent[101X
[33X[1;0Y[29X[2XExponent[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe exponent [22Xe[122X of a group [3XG[103X is the lcm of the orders of its elements, that
is, [22Xe[122X is the smallest integer such that [22Xg^e = 1[122X for all [22Xg ∈ [3XG[103X[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XExponent(g);[127X[104X
[4X[28X12[128X[104X
[4X[32X[104X
[1X39.16-3 EulerianFunction[101X
[33X[1;0Y[29X[2XEulerianFunction[102X( [3XG[103X, [3Xn[103X ) [32X operation[133X
[33X[0;0Yreturns the number of [3Xn[103X-tuples [22X(g_1, g_2, ..., g_n)[122X of elements of the group
[3XG[103X that generate the whole group [3XG[103X. The elements of such an [3Xn[103X-tuple need not
be different.[133X
[33X[0;0YIn [Hal36], the notation [22Xϕ_[3Xn[103X([3XG[103X)[122X is used for the value returned by
[2XEulerianFunction[102X, and the quotient of [22Xϕ_[3Xn[103X([3XG[103X)[122X by the order of the
automorphism group of [3XG[103X is called [22Xd_[3Xn[103X([3XG[103X)[122X. If [3XG[103X is a nonabelian simple group
then [22Xd_[3Xn[103X([3XG[103X)[122X is the greatest number [22Xd[122X for which the direct product of [22Xd[122X
groups isomorphic with [3XG[103X can be generated by [3Xn[103X elements.[133X
[33X[0;0YIf the Library of Tables of Marks (see Chapter [14X70[114X) covers the group [3XG[103X, you
may also use [2XEulerianFunctionByTom[102X ([14X70.9-9[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XEulerianFunction( g, 2 );[127X[104X
[4X[28X432[128X[104X
[4X[32X[104X
[1X39.17 [33X[0;0YSubgroup Series[133X[101X
[33X[0;0YIn group theory many subgroup series are considered, and [5XGAP[105X provides
commands to compute them. In the following sections, there is always a
series [22XG = U_1 > U_2 > ⋯ > U_m = ⟨ 1 ⟩[122X of subgroups considered. A series
also may stop without reaching [22XG[122X or [22X⟨ 1 ⟩[122X.[133X
[33X[0;0YA series is called [13Xsubnormal[113X if every [22XU_{i+1}[122X is normal in [22XU_i[122X.[133X
[33X[0;0YA series is called [13Xnormal[113X if every [22XU_i[122X is normal in [22XG[122X.[133X
[33X[0;0YA series of normal subgroups is called [13Xcentral[113X if [22XU_i/U_{i+1}[122X is central in
[22XG / U_{i+1}[122X.[133X
[33X[0;0YWe call a series [13Xrefinable[113X if intermediate subgroups can be added to the
series without destroying the properties of the series.[133X
[33X[0;0YUnless explicitly declared otherwise, all subgroup series are descending.
That is they are stored in decreasing order.[133X
[1X39.17-1 ChiefSeries[101X
[33X[1;0Y[29X[2XChiefSeries[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yis a series of normal subgroups of [3XG[103X which cannot be refined further. That
is there is no normal subgroup [22XN[122X of [3XG[103X with [22XU_i > N > U_{i+1}[122X. This attribute
returns [13Xone[113X chief series (of potentially many possibilities).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
[4X[25Xgap>[125X [27XChiefSeries(g);[127X[104X
[4X[28X[ Group([ (1,2,3,4), (1,2) ]), [128X[104X
[4X[28X Group([ (2,4,3), (1,4)(2,3), (1,3)(2,4) ]), [128X[104X
[4X[28X Group([ (1,4)(2,3), (1,3)(2,4) ]), Group(()) ][128X[104X
[4X[32X[104X
[1X39.17-2 ChiefSeriesThrough[101X
[33X[1;0Y[29X[2XChiefSeriesThrough[102X( [3XG[103X, [3Xl[103X ) [32X operation[133X
[33X[0;0Yis a chief series of the group [3XG[103X going through the normal subgroups in the
list [3Xl[103X, which must be a list of normal subgroups of [3XG[103X contained in each
other, sorted by descending size. This attribute returns [13Xone[113X chief series
(of potentially many possibilities).[133X
[1X39.17-3 ChiefSeriesUnderAction[101X
[33X[1;0Y[29X[2XChiefSeriesUnderAction[102X( [3XH[103X, [3XG[103X ) [32X operation[133X
[33X[0;0Yreturns a series of normal subgroups of [3XG[103X which are invariant under [3XH[103X such
that the series cannot be refined any further. [3XG[103X must be a subgroup of [3XH[103X.
This attribute returns [13Xone[113X such series (of potentially many possibilities).[133X
[1X39.17-4 SubnormalSeries[101X
[33X[1;0Y[29X[2XSubnormalSeries[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0YIf [3XU[103X is a subgroup of [3XG[103X this operation returns a subnormal series that
descends from [3XG[103X to a subnormal subgroup [22XV ≥[122X[3XU[103X. If [3XU[103X is subnormal, [22XV =[122X [3XU[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xs:=SubnormalSeries(g,Group((1,2)(3,4))) =[127X[104X
[4X[25X>[125X [27X[ Group([ (1,2,3,4), (1,2) ]),[127X[104X
[4X[25X>[125X [27X Group([ (1,2)(3,4), (1,3)(2,4) ]),[127X[104X
[4X[25X>[125X [27X Group([ (1,2)(3,4) ]) ];[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.17-5 CompositionSeries[101X
[33X[1;0Y[29X[2XCompositionSeries[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YA composition series is a subnormal series which cannot be refined. This
attribute returns [13Xone[113X composition series (of potentially many
possibilities).[133X
[1X39.17-6 DisplayCompositionSeries[101X
[33X[1;0Y[29X[2XDisplayCompositionSeries[102X( [3XG[103X ) [32X function[133X
[33X[0;0YDisplays a composition series of [3XG[103X in a nice way, identifying the simple
factors.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCompositionSeries(g);[127X[104X
[4X[28X[ Group([ (3,4), (2,4,3), (1,4)(2,3), (1,3)(2,4) ]), [128X[104X
[4X[28X Group([ (2,4,3), (1,4)(2,3), (1,3)(2,4) ]), [128X[104X
[4X[28X Group([ (1,4)(2,3), (1,3)(2,4) ]), Group([ (1,3)(2,4) ]), Group(()) [128X[104X
[4X[28X ][128X[104X
[4X[25Xgap>[125X [27XDisplayCompositionSeries(Group((1,2,3,4,5,6,7),(1,2)));[127X[104X
[4X[28XG (2 gens, size 5040)[128X[104X
[4X[28X | Z(2)[128X[104X
[4X[28XS (5 gens, size 2520)[128X[104X
[4X[28X | A(7)[128X[104X
[4X[28X1 (0 gens, size 1)[128X[104X
[4X[32X[104X
[1X39.17-7 DerivedSeriesOfGroup[101X
[33X[1;0Y[29X[2XDerivedSeriesOfGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe derived series of a group is obtained by [22XU_{i+1} = U_i'[122X. It stops if [22XU_i[122X
is perfect.[133X
[1X39.17-8 DerivedLength[101X
[33X[1;0Y[29X[2XDerivedLength[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe derived length of a group is the number of steps in the derived series.
(As there is always the group, it is the series length minus 1.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XList(DerivedSeriesOfGroup(g),Size);[127X[104X
[4X[28X[ 24, 12, 4, 1 ][128X[104X
[4X[25Xgap>[125X [27XDerivedLength(g);[127X[104X
[4X[28X3[128X[104X
[4X[32X[104X
[1X39.17-9 [33X[0;0YElementaryAbelianSeries[133X[101X
[33X[1;0Y[29X[2XElementaryAbelianSeries[102X( [3XG[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XElementaryAbelianSeriesLargeSteps[102X( [3XG[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XElementaryAbelianSeries[102X( [3Xlist[103X ) [32X attribute[133X
[33X[0;0Yreturns a series of normal subgroups of [22XG[122X such that all factors are
elementary abelian. If the group is not solvable (and thus no such series
exists) it returns [9Xfail[109X.[133X
[33X[0;0YThe variant [2XElementaryAbelianSeriesLargeSteps[102X tries to make the steps in
this series large (by eliminating intermediate subgroups if possible) at a
small additional cost.[133X
[33X[0;0YIn the third variant, an elementary abelian series through the given series
of normal subgroups in the list [3Xlist[103X is constructed.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XList(ElementaryAbelianSeries(g),Size);[127X[104X
[4X[28X[ 24, 12, 4, 1 ][128X[104X
[4X[32X[104X
[1X39.17-10 InvariantElementaryAbelianSeries[101X
[33X[1;0Y[29X[2XInvariantElementaryAbelianSeries[102X( [3XG[103X, [3Xmorph[103X[, [3XN[103X[, [3Xfine[103X]] ) [32X function[133X
[33X[0;0YFor a (solvable) group [3XG[103X and a list of automorphisms [3Xmorph[103X of [3XG[103X, this
command finds a normal series of [3XG[103X with elementary abelian factors such that
every group in this series is invariant under every automorphism in [3Xmorph[103X.[133X
[33X[0;0YIf a normal subgroup [3XN[103X of [3XG[103X which is invariant under [3Xmorph[103X is given, this
series is chosen to contain [3XN[103X. No tests are performed to check the validity
of the arguments.[133X
[33X[0;0YThe series obtained will be constructed to prefer large steps unless [3Xfine[103X is
given as [9Xtrue[109X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,3));[127X[104X
[4X[28XGroup([ (1,2,3,4), (1,3) ])[128X[104X
[4X[25Xgap>[125X [27Xhom:=GroupHomomorphismByImages(g,g,GeneratorsOfGroup(g),[127X[104X
[4X[25X>[125X [27X[(1,4,3,2),(1,4)(2,3)]);[127X[104X
[4X[28X[ (1,2,3,4), (1,3) ] -> [ (1,4,3,2), (1,4)(2,3) ][128X[104X
[4X[25Xgap>[125X [27XInvariantElementaryAbelianSeries(g,[hom]);[127X[104X
[4X[28X[ Group([ (1,2,3,4), (1,3) ]), Group([ (1,3)(2,4) ]), Group(()) ][128X[104X
[4X[32X[104X
[1X39.17-11 LowerCentralSeriesOfGroup[101X
[33X[1;0Y[29X[2XLowerCentralSeriesOfGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe lower central series of a group [3XG[103X is defined as [22XU_{i+1}:= [[3XG[103X, U_i][122X. It
is a central series of normal subgroups. The name derives from the fact that
[22XU_i[122X is contained in the [22Xi[122X-th step subgroup of any central series.[133X
[1X39.17-12 UpperCentralSeriesOfGroup[101X
[33X[1;0Y[29X[2XUpperCentralSeriesOfGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe upper central series of a group [3XG[103X is defined as an ending series [22XU_i /
U_{i+1}:= Z([3XG[103X/U_{i+1})[122X. It is a central series of normal subgroups. The name
derives from the fact that [22XU_i[122X contains every [22Xi[122X-th step subgroup of a
central series.[133X
[1X39.17-13 PCentralSeries[101X
[33X[1;0Y[29X[2XPCentralSeries[102X( [3XG[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0YThe [3Xp[103X-central series of [3XG[103X is defined by [22XU_1:= [3XG[103X[122X, [22XU_i:= [[3XG[103X, U_{i-1}]
U_{i-1}^[3Xp[103X[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=QuaternionGroup(12);;[127X[104X
[4X[25Xgap>[125X [27XPCentralSeries(g,2);[127X[104X
[4X[28X[ <pc group of size 12 with 3 generators>, Group([ y3, y*y3 ]), Group([ y*y3 ]) ][128X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;[127X[104X
[4X[25Xgap>[125X [27XPCentralSeries(g,2);[127X[104X
[4X[28X[ Sym( [ 1 .. 4 ] ), Group([ (1,2,3), (2,3,4) ]) ][128X[104X
[4X[32X[104X
[1X39.17-14 JenningsSeries[101X
[33X[1;0Y[29X[2XJenningsSeries[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YFor a [22Xp[122X-group [3XG[103X, this function returns its Jennings series. This series is
defined by setting [22XG_1 = [3XG[103X[122X and for [22Xi ≥ 0[122X, [22XG_{i+1} = [G_i,[3XG[103X] G_j^p[122X, where [22Xj[122X
is the smallest integer [22X> i/p[122X.[133X
[1X39.17-15 DimensionsLoewyFactors[101X
[33X[1;0Y[29X[2XDimensionsLoewyFactors[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThis operation computes the dimensions of the factors of the Loewy series of
[3XG[103X. (See [HB82, p. 157] for the slightly complicated definition of the Loewy
Series.)[133X
[33X[0;0YThe dimensions are computed via the [2XJenningsSeries[102X ([14X39.17-14[114X) without
computing the Loewy series itself.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XG:= SmallGroup( 3^6, 100 );[127X[104X
[4X[28X<pc group of size 729 with 6 generators>[128X[104X
[4X[25Xgap>[125X [27XJenningsSeries( G );[127X[104X
[4X[28X[ <pc group of size 729 with 6 generators>, Group([ f3, f4, f5, f6 ]),[128X[104X
[4X[28X Group([ f4, f5, f6 ]), Group([ f5, f6 ]), Group([ f5, f6 ]), [128X[104X
[4X[28X Group([ f5, f6 ]), Group([ f6 ]), Group([ f6 ]), Group([ f6 ]), [128X[104X
[4X[28X Group([ <identity> of ... ]) ][128X[104X
[4X[25Xgap>[125X [27XDimensionsLoewyFactors(G);[127X[104X
[4X[28X[ 1, 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26, [128X[104X
[4X[28X 27, 27, 27, 27, 27, 27, 27, 27, 27, 26, 25, 23, 22, 20, 19, 17, 16, [128X[104X
[4X[28X 14, 13, 11, 10, 8, 7, 5, 4, 2, 1 ][128X[104X
[4X[32X[104X
[1X39.17-16 AscendingChain[101X
[33X[1;0Y[29X[2XAscendingChain[102X( [3XG[103X, [3XU[103X ) [32X function[133X
[33X[0;0YThis function computes an ascending chain of subgroups from [3XU[103X to [3XG[103X. This
chain is given as a list whose first entry is [3XU[103X and the last entry is [3XG[103X. The
function tries to make the links in this chain small.[133X
[33X[0;0YThe option [10XrefineIndex[110X can be used to give a bound for refinements of steps
to avoid [5XGAP[105X trying to enforce too small steps. The option [10Xcheap[110X (if set to
[9Xtrue[109X) will overall limit the amount of heuristic searches.[133X
[1X39.17-17 IntermediateGroup[101X
[33X[1;0Y[29X[2XIntermediateGroup[102X( [3XG[103X, [3XU[103X ) [32X function[133X
[33X[0;0YThis routine tries to find a subgroup [22XE[122X of [3XG[103X, such that [22X[3XG[103X > E > [3XU[103X[122X holds. If
[3XU[103X is maximal in [3XG[103X, the function returns [9Xfail[109X. This is done by finding
minimal blocks for the operation of [3XG[103X on the right cosets of [3XU[103X.[133X
[1X39.17-18 IntermediateSubgroups[101X
[33X[1;0Y[29X[2XIntermediateSubgroups[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0Yreturns a list of all subgroups of [3XG[103X that properly contain [3XU[103X; that is all
subgroups between [3XG[103X and [3XU[103X. It returns a record with a component [10Xsubgroups[110X,
which is a list of these subgroups, as well as a component [10Xinclusions[110X, which
lists all maximality inclusions among these subgroups. A maximality
inclusion is given as a list [22X[i, j][122X indicating that the subgroup number [22Xi[122X is
a maximal subgroup of the subgroup number [22Xj[122X, the numbers [22X0[122X and [22X1 +[122X
[10XLength(subgroups)[110X are used to denote [3XU[103X and [3XG[103X, respectively.[133X
[1X39.18 [33X[0;0YFactor Groups[133X[101X
[1X39.18-1 NaturalHomomorphismByNormalSubgroup[101X
[33X[1;0Y[29X[2XNaturalHomomorphismByNormalSubgroup[102X( [3XG[103X, [3XN[103X ) [32X function[133X
[33X[1;0Y[29X[2XNaturalHomomorphismByNormalSubgroupNC[102X( [3XG[103X, [3XN[103X ) [32X function[133X
[33X[0;0Yreturns a homomorphism from [3XG[103X to another group whose kernel is [3XN[103X. [5XGAP[105X will
try to select the image group as to make computations in it as efficient as
possible. As the factor group [22X[3XG[103X/[3XN[103X[122X can be identified with the image of [3XG[103X this
permits efficient computations in the factor group. The homomorphism
returned is not necessarily surjective, so [2XImagesSource[102X ([14X32.4-1[114X) should be
used instead of [2XRange[102X ([14X32.3-7[114X) to get a group isomorphic to the factor
group. The [10XNC[110X variant does not check whether [3XN[103X is normal in [3XG[103X.[133X
[1X39.18-2 FactorGroup[101X
[33X[1;0Y[29X[2XFactorGroup[102X( [3XG[103X, [3XN[103X ) [32X function[133X
[33X[1;0Y[29X[2XFactorGroupNC[102X( [3XG[103X, [3XN[103X ) [32X operation[133X
[33X[0;0Yreturns the image of the [10XNaturalHomomorphismByNormalSubgroup([3XG[103X[10X,[3XN[103X[10X)[110X. The
homomorphism will be returned by calling the function [10XNaturalHomomorphism[110X on
the result. The [10XNC[110X version does not test whether [3XN[103X is normal in [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;n:=Subgroup(g,[(1,2)(3,4),(1,3)(2,4)]);;[127X[104X
[4X[25Xgap>[125X [27Xhom:=NaturalHomomorphismByNormalSubgroup(g,n);[127X[104X
[4X[28X[ (1,2,3,4), (1,2) ] -> [ f1*f2, f1 ][128X[104X
[4X[25Xgap>[125X [27XSize(ImagesSource(hom));[127X[104X
[4X[28X6[128X[104X
[4X[25Xgap>[125X [27XFactorGroup(g,n);;[127X[104X
[4X[25Xgap>[125X [27XStructureDescription(last);[127X[104X
[4X[28X"S3"[128X[104X
[4X[32X[104X
[1X39.18-3 CommutatorFactorGroup[101X
[33X[1;0Y[29X[2XCommutatorFactorGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Ycomputes the commutator factor group [22X[3XG[103X/[3XG[103X'[122X of the group [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCommutatorFactorGroup(g);[127X[104X
[4X[28XGroup([ f1 ])[128X[104X
[4X[32X[104X
[1X39.18-4 MaximalAbelianQuotient[101X
[33X[1;0Y[29X[2XMaximalAbelianQuotient[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns an epimorphism from [3XG[103X onto the maximal abelian quotient of [3XG[103X. The
kernel of this epimorphism is the derived subgroup of [3XG[103X, see [2XDerivedSubgroup[102X
([14X39.12-3[114X).[133X
[1X39.18-5 HasAbelianFactorGroup[101X
[33X[1;0Y[29X[2XHasAbelianFactorGroup[102X( [3XG[103X, [3XN[103X ) [32X function[133X
[33X[0;0Ytests whether [3XG[103X [22X/[122X [3XN[103X is abelian (without explicitly constructing the factor
group and without testing whether [3XN[103X is in fact a normal subgroup).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XHasAbelianFactorGroup(g,n);[127X[104X
[4X[28Xfalse[128X[104X
[4X[25Xgap>[125X [27XHasAbelianFactorGroup(DerivedSubgroup(g),n);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.18-6 HasElementaryAbelianFactorGroup[101X
[33X[1;0Y[29X[2XHasElementaryAbelianFactorGroup[102X( [3XG[103X, [3XN[103X ) [32X function[133X
[33X[0;0Ytests whether [3XG[103X [22X/[122X [3XN[103X is elementary abelian (without explicitly constructing
the factor group and without testing whether [3XN[103X is in fact a normal
subgroup).[133X
[1X39.18-7 CentralizerModulo[101X
[33X[1;0Y[29X[2XCentralizerModulo[102X( [3XG[103X, [3XN[103X, [3Xelm[103X ) [32X operation[133X
[33X[0;0YComputes the full preimage of the centralizer [22XC_{[3XG[103X/[3XN[103X}([3Xelm[103X ⋅ [3XN[103X)[122X in [3XG[103X (without
necessarily constructing the factor group).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XCentralizerModulo(g,n,(1,2));[127X[104X
[4X[28XGroup([ (3,4), (1,3)(2,4), (1,4)(2,3) ])[128X[104X
[4X[32X[104X
[1X39.19 [33X[0;0YSets of Subgroups[133X[101X
[1X39.19-1 ConjugacyClassSubgroups[101X
[33X[1;0Y[29X[2XConjugacyClassSubgroups[102X( [3XG[103X, [3XU[103X ) [32X operation[133X
[33X[0;0Ygenerates the conjugacy class of subgroups of [3XG[103X with representative [3XU[103X. This
class is an external set, so functions such as [2XRepresentative[102X ([14X30.4-7[114X),
(which returns [3XU[103X), [2XActingDomain[102X ([14X41.12-3[114X) (which returns [3XG[103X),
[2XStabilizerOfExternalSet[102X ([14X41.12-10[114X) (which returns the normalizer of [3XU[103X), and
[2XAsList[102X ([14X30.3-8[114X) work for it.[133X
[33X[0;0Y(The use of the [10X[][110X list access to select elements of the class is considered
obsolescent and will be removed in future versions. Use [2XClassElementLattice[102X
([14X39.20-2[114X) instead.)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;IsNaturalSymmetricGroup(g);;[127X[104X
[4X[25Xgap>[125X [27Xcl:=ConjugacyClassSubgroups(g,Subgroup(g,[(1,2)]));[127X[104X
[4X[28XGroup( [ (1,2) ] )^G[128X[104X
[4X[25Xgap>[125X [27XSize(cl);[127X[104X
[4X[28X6[128X[104X
[4X[25Xgap>[125X [27XClassElementLattice(cl,4);[127X[104X
[4X[28XGroup([ (2,3) ])[128X[104X
[4X[32X[104X
[1X39.19-2 IsConjugacyClassSubgroupsRep[101X
[33X[1;0Y[29X[2XIsConjugacyClassSubgroupsRep[102X( [3Xobj[103X ) [32X Representation[133X
[33X[1;0Y[29X[2XIsConjugacyClassSubgroupsByStabilizerRep[102X( [3Xobj[103X ) [32X Representation[133X
[33X[0;0YIs the representation [5XGAP[105X uses for conjugacy classes of subgroups. It can be
used to check whether an object is a class of subgroups. The second
representation [2XIsConjugacyClassSubgroupsByStabilizerRep[102X in addition is an
external orbit by stabilizer and will compute its elements via a transversal
of the stabilizer.[133X
[1X39.19-3 ConjugacyClassesSubgroups[101X
[33X[1;0Y[29X[2XConjugacyClassesSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThis attribute returns a list of all conjugacy classes of subgroups of the
group [3XG[103X. It also is applicable for lattices of subgroups
(see [2XLatticeSubgroups[102X ([14X39.20-1[114X)). The order in which the classes are listed
depends on the method chosen by [5XGAP[105X. For each class of subgroups, a
representative can be accessed using [2XRepresentative[102X ([14X30.4-7[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XConjugacyClassesSubgroups(g);[127X[104X
[4X[28X[ Group( () )^G, Group( [ (1,3)(2,4) ] )^G, Group( [ (3,4) ] )^G, [128X[104X
[4X[28X Group( [ (2,4,3) ] )^G, Group( [ (1,4)(2,3), (1,3)(2,4) ] )^G, [128X[104X
[4X[28X Group( [ (3,4), (1,2)(3,4) ] )^G, [128X[104X
[4X[28X Group( [ (1,3,2,4), (1,2)(3,4) ] )^G, Group( [ (3,4), (2,4,3) ] )^G,[128X[104X
[4X[28X Group( [ (1,4)(2,3), (1,3)(2,4), (3,4) ] )^G, [128X[104X
[4X[28X Group( [ (1,4)(2,3), (1,3)(2,4), (2,4,3) ] )^G, [128X[104X
[4X[28X Group( [ (1,4)(2,3), (1,3)(2,4), (2,4,3), (3,4) ] )^G ][128X[104X
[4X[32X[104X
[1X39.19-4 ConjugacyClassesMaximalSubgroups[101X
[33X[1;0Y[29X[2XConjugacyClassesMaximalSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns the conjugacy classes of maximal subgroups of [3XG[103X. Representatives of
the classes can be computed directly by [2XMaximalSubgroupClassReps[102X ([14X39.19-5[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XConjugacyClassesMaximalSubgroups(g);[127X[104X
[4X[28X[ Group( [ (2,4,3), (1,4)(2,3), (1,3)(2,4) ] )^G,[128X[104X
[4X[28X Group( [ (3,4), (1,4)(2,3), (1,3)(2,4) ] )^G,[128X[104X
[4X[28X Group( [ (3,4), (2,4,3) ] )^G ][128X[104X
[4X[32X[104X
[1X39.19-5 MaximalSubgroupClassReps[101X
[33X[1;0Y[29X[2XMaximalSubgroupClassReps[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of conjugacy representatives of the maximal subgroups of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMaximalSubgroupClassReps(g);[127X[104X
[4X[28X[ Group([ (2,4,3), (1,4)(2,3), (1,3)(2,4) ]), Group([ (3,4), (1,4)[128X[104X
[4X[28X (2,3), (1,3)(2,4) ]), Group([ (3,4), (2,4,3) ]) ][128X[104X
[4X[32X[104X
[1X39.19-6 LowIndexSubgroups[101X
[33X[1;0Y[29X[2XLowIndexSubgroups[102X( [3XG[103X, [3Xindex[103X ) [32X operation[133X
[33X[0;0YThe operation [2XLowIndexSubgroups[102X computes representatives of the conjugacy
classes of subgroups of the group [3XG[103X that index less than or equal to [3Xindex[103X.[133X
[33X[0;0YFor finitely presented groups this operation simply defaults to
[2XLowIndexSubgroupsFpGroup[102X ([14X47.10-1[114X). In other cases, it uses repeated
calculation of maximal subgroups.[133X
[33X[0;0YThe function [2XLowLayerSubgroups[102X ([14X39.20-6[114X) works similar but does not bound
the index, but instead considers up to [3Xlayer[103X-th maximal subgroups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=TransitiveGroup(18,950);;[127X[104X
[4X[25Xgap>[125X [27Xl:=LowIndexSubgroups(g,20);;Collected(List(l,x->Index(g,x)));[127X[104X
[4X[28X[ [ 1, 1 ], [ 2, 1 ], [ 5, 1 ], [ 6, 1 ], [ 10, 2 ], [ 12, 3 ], [ 15, 1 ], [128X[104X
[4X[28X [ 16, 2 ], [ 18, 1 ], [ 20, 9 ] ][128X[104X
[4X[32X[104X
[1X39.19-7 AllSubgroups[101X
[33X[1;0Y[29X[2XAllSubgroups[102X( [3XG[103X ) [32X function[133X
[33X[0;0YFor a finite group [3XG[103X [2XAllSubgroups[102X returns a list of all subgroups of [3XG[103X,
intended primarily for use in class for small examples. This list will
quickly get very long and in general use of [2XConjugacyClassesSubgroups[102X
([14X39.19-3[114X) is recommended.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XAllSubgroups(SymmetricGroup(3));[127X[104X
[4X[28X[ Group(()), Group([ (2,3) ]), Group([ (1,2) ]), Group([ (1,3) ]), [128X[104X
[4X[28X Group([ (1,2,3) ]), Group([ (1,2,3), (2,3) ]) ][128X[104X
[4X[32X[104X
[1X39.19-8 MaximalSubgroups[101X
[33X[1;0Y[29X[2XMaximalSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of all maximal subgroups of [3XG[103X. This may take up much space,
therefore the command should be avoided if possible. See
[2XConjugacyClassesMaximalSubgroups[102X ([14X39.19-4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMaximalSubgroups(Group((1,2,3),(1,2)));[127X[104X
[4X[28X[ Group([ (1,2,3) ]), Group([ (2,3) ]), Group([ (1,2) ]), [128X[104X
[4X[28X Group([ (1,3) ]) ][128X[104X
[4X[32X[104X
[1X39.19-9 NormalSubgroups[101X
[33X[1;0Y[29X[2XNormalSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of all normal subgroups of [3XG[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;NormalSubgroups(g);[127X[104X
[4X[28X[ Sym( [ 1 .. 4 ] ), Alt( [ 1 .. 4 ] ), Group([ (1,4)(2,3), (1,2)[128X[104X
[4X[28X (3,4) ]), Group(()) ][128X[104X
[4X[32X[104X
[33X[0;0YThe algorithm for the computation of normal subgroups is described in
[Hul98].[133X
[1X39.19-10 MaximalNormalSubgroups[101X
[33X[1;0Y[29X[2XMaximalNormalSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yis a list containing those proper normal subgroups of the group [3XG[103X that are
maximal among the proper normal subgroups. Gives error if [3XG[103X/[3XG'[103X is infinite,
yielding infinitely many maximal normal subgroups. Note, that the maximal
normal subgroups of a group [3XG[103X can be computed more efficiently if the
character table of [3XG[103X is known or if [3XG[103X is known to be abelian or solvable
(even if infinite). So if the character table is needed, anyhow, or [3XG[103X is
suspected to be abelian or solvable, then these should be computed before
computing the maximal normal subgroups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMaximalNormalSubgroups( g );[127X[104X
[4X[28X[ Group([ (1,2,3), (2,3,4) ]) ][128X[104X
[4X[25Xgap>[125X [27Xf := FreeGroup("x", "y");; x := f.1;; y := f.2;;[127X[104X
[4X[25Xgap>[125X [27XList(MaximalNormalSubgroups(f/[x^2, y^2]), GeneratorsOfGroup);[127X[104X
[4X[28X[ [ x, y*x*y^-1 ], [ y, x*y*x^-1 ], [ y*x^-1 ] ][128X[104X
[4X[32X[104X
[1X39.19-11 MinimalNormalSubgroups[101X
[33X[1;0Y[29X[2XMinimalNormalSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yis a list containing those nontrivial normal subgroups of the group [3XG[103X that
are minimal among the nontrivial normal subgroups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMinimalNormalSubgroups( g );[127X[104X
[4X[28X[ Group([ (1,4)(2,3), (1,3)(2,4) ]) ][128X[104X
[4X[32X[104X
[1X39.20 [33X[0;0YSubgroup Lattice[133X[101X
[1X39.20-1 LatticeSubgroups[101X
[33X[1;0Y[29X[2XLatticeSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Ycomputes the lattice of subgroups of the group [3XG[103X. This lattice has the
conjugacy classes of subgroups as attribute [2XConjugacyClassesSubgroups[102X
([14X39.19-3[114X) and permits one to test maximality/minimality relations.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;[127X[104X
[4X[25Xgap>[125X [27Xl:=LatticeSubgroups(g);[127X[104X
[4X[28X<subgroup lattice of Sym( [ 1 .. 4 ] ), 11 classes, 30 subgroups>[128X[104X
[4X[25Xgap>[125X [27XConjugacyClassesSubgroups(l);[127X[104X
[4X[28X[ Group( () )^G, Group( [ (1,3)(2,4) ] )^G, Group( [ (3,4) ] )^G, [128X[104X
[4X[28X Group( [ (2,4,3) ] )^G, Group( [ (1,4)(2,3), (1,3)(2,4) ] )^G, [128X[104X
[4X[28X Group( [ (3,4), (1,2)(3,4) ] )^G, [128X[104X
[4X[28X Group( [ (1,3,2,4), (1,2)(3,4) ] )^G, Group( [ (3,4), (2,4,3) ] )^G,[128X[104X
[4X[28X Group( [ (1,4)(2,3), (1,3)(2,4), (3,4) ] )^G, [128X[104X
[4X[28X Group( [ (1,4)(2,3), (1,3)(2,4), (2,4,3) ] )^G, [128X[104X
[4X[28X Group( [ (1,4)(2,3), (1,3)(2,4), (2,4,3), (3,4) ] )^G ][128X[104X
[4X[32X[104X
[1X39.20-2 ClassElementLattice[101X
[33X[1;0Y[29X[2XClassElementLattice[102X( [3XC[103X, [3Xn[103X ) [32X operation[133X
[33X[0;0YFor a class [3XC[103X of subgroups, obtained by a lattice computation, this
operation returns the [3Xn[103X-th conjugate subgroup in the class.[133X
[33X[0;0Y[13XBecause of other methods installed, calling [2XAsList[102X ([14X30.3-8[114X) with [3XC[103X can give
a different arrangement of the class elements![113X[133X
[33X[0;0YThe [5XGAP[105X package [5XXGAP[105X permits a graphical display of the lattice of subgroups
in a nice way.[133X
[1X39.20-3 DotFileLatticeSubgroups[101X
[33X[1;0Y[29X[2XDotFileLatticeSubgroups[102X( [3XL[103X, [3Xfile[103X ) [32X function[133X
[33X[0;0YThis function produces a graphical representation of the subgroup lattice [3XL[103X
in file [3Xfile[103X. The output is in [10X.dot[110X (also known as [10XGraphViz[110X format). For
details on the format, and information about how to display or edit this
format see [7Xhttp://www.graphviz.org[107X. (On the Macintosh, the program
[10XOmniGraffle[110X is also able to read this format.)[133X
[33X[0;0YSubgroups are labelled in the form [10X[3Xi[103X[10X-[3Xj[103X[10X[110X where [3Xi[103X is the number of the class of
subgroups and [3Xj[103X the number within this class. Normal subgroups are
represented by a box.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XDotFileLatticeSubgroups(l,"s4lat.dot");[127X[104X
[4X[32X[104X
[1X39.20-4 MaximalSubgroupsLattice[101X
[33X[1;0Y[29X[2XMaximalSubgroupsLattice[102X( [3Xlat[103X ) [32X attribute[133X
[33X[0;0YFor a lattice [3Xlat[103X of subgroups this attribute contains the maximal subgroup
relations among the subgroups of the lattice. It is a list corresponding to
the [2XConjugacyClassesSubgroups[102X ([14X39.19-3[114X) value of the lattice, each entry
giving a list of the maximal subgroups of the representative of this class.
Every maximal subgroup is indicated by a list of the form [22X[ c, n ][122X which
means that the [22Xn[122X-th subgroup in class number [22Xc[122X is a maximal subgroup of the
representative.[133X
[33X[0;0YThe number [22Xn[122X corresponds to access via [2XClassElementLattice[102X ([14X39.20-2[114X) and [13Xnot[113X
necessarily the [2XAsList[102X ([14X30.3-8[114X) arrangement! See also
[2XMinimalSupergroupsLattice[102X ([14X39.20-5[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMaximalSubgroupsLattice(l);[127X[104X
[4X[28X[ [ ], [ [ 1, 1 ] ], [ [ 1, 1 ] ], [ [ 1, 1 ] ], [128X[104X
[4X[28X [ [ 2, 1 ], [ 2, 2 ], [ 2, 3 ] ], [ [ 3, 1 ], [ 3, 6 ], [ 2, 3 ] ], [128X[104X
[4X[28X [ [ 2, 3 ] ], [ [ 4, 1 ], [ 3, 1 ], [ 3, 2 ], [ 3, 3 ] ], [128X[104X
[4X[28X [ [ 7, 1 ], [ 6, 1 ], [ 5, 1 ] ], [128X[104X
[4X[28X [ [ 5, 1 ], [ 4, 1 ], [ 4, 2 ], [ 4, 3 ], [ 4, 4 ] ], [128X[104X
[4X[28X [ [ 10, 1 ], [ 9, 1 ], [ 9, 2 ], [ 9, 3 ], [ 8, 1 ], [ 8, 2 ], [128X[104X
[4X[28X [ 8, 3 ], [ 8, 4 ] ] ][128X[104X
[4X[25Xgap>[125X [27Xlast[6];[127X[104X
[4X[28X[ [ 3, 1 ], [ 3, 6 ], [ 2, 3 ] ][128X[104X
[4X[25Xgap>[125X [27Xu1:=Representative(ConjugacyClassesSubgroups(l)[6]);[127X[104X
[4X[28XGroup([ (3,4), (1,2)(3,4) ])[128X[104X
[4X[25Xgap>[125X [27Xu2:=ClassElementLattice(ConjugacyClassesSubgroups(l)[3],1);;[127X[104X
[4X[25Xgap>[125X [27Xu3:=ClassElementLattice(ConjugacyClassesSubgroups(l)[3],6);;[127X[104X
[4X[25Xgap>[125X [27Xu4:=ClassElementLattice(ConjugacyClassesSubgroups(l)[2],3);;[127X[104X
[4X[25Xgap>[125X [27XIsSubgroup(u1,u2);IsSubgroup(u1,u3);IsSubgroup(u1,u4);[127X[104X
[4X[28Xtrue[128X[104X
[4X[28Xtrue[128X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.20-5 MinimalSupergroupsLattice[101X
[33X[1;0Y[29X[2XMinimalSupergroupsLattice[102X( [3Xlat[103X ) [32X attribute[133X
[33X[0;0YFor a lattice [3Xlat[103X of subgroups this attribute contains the minimal
supergroup relations among the subgroups of the lattice. It is a list
corresponding to the [2XConjugacyClassesSubgroups[102X ([14X39.19-3[114X) value of the
lattice, each entry giving a list of the minimal supergroups of the
representative of this class. Every minimal supergroup is indicated by a
list of the form [22X[ c, n ][122X, which means that the [22Xn[122X-th subgroup in class
number [22Xc[122X is a minimal supergroup of the representative.[133X
[33X[0;0YThe number [22Xn[122X corresponds to access via [2XClassElementLattice[102X ([14X39.20-2[114X) and [13Xnot[113X
necessarily the [2XAsList[102X ([14X30.3-8[114X) arrangement! See also
[2XMaximalSubgroupsLattice[102X ([14X39.20-4[114X).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMinimalSupergroupsLattice(l);[127X[104X
[4X[28X[ [ [ 2, 1 ], [ 2, 2 ], [ 2, 3 ], [ 3, 1 ], [ 3, 2 ], [ 3, 3 ], [128X[104X
[4X[28X [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 4, 1 ], [ 4, 2 ], [ 4, 3 ], [128X[104X
[4X[28X [ 4, 4 ] ], [ [ 5, 1 ], [ 6, 2 ], [ 7, 2 ] ], [128X[104X
[4X[28X [ [ 6, 1 ], [ 8, 1 ], [ 8, 3 ] ], [ [ 8, 1 ], [ 10, 1 ] ], [128X[104X
[4X[28X [ [ 9, 1 ], [ 9, 2 ], [ 9, 3 ], [ 10, 1 ] ], [ [ 9, 1 ] ], [128X[104X
[4X[28X [ [ 9, 1 ] ], [ [ 11, 1 ] ], [ [ 11, 1 ] ], [ [ 11, 1 ] ], [ ] ][128X[104X
[4X[25Xgap>[125X [27Xlast[3];[127X[104X
[4X[28X[ [ 6, 1 ], [ 8, 1 ], [ 8, 3 ] ][128X[104X
[4X[25Xgap>[125X [27Xu5:=ClassElementLattice(ConjugacyClassesSubgroups(l)[8],1);[127X[104X
[4X[28XGroup([ (3,4), (2,4,3) ])[128X[104X
[4X[25Xgap>[125X [27Xu6:=ClassElementLattice(ConjugacyClassesSubgroups(l)[8],3);[127X[104X
[4X[28XGroup([ (1,3), (1,3,4) ])[128X[104X
[4X[25Xgap>[125X [27XIsSubgroup(u5,u2);[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27XIsSubgroup(u6,u2);[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[1X39.20-6 LowLayerSubgroups[101X
[33X[1;0Y[29X[2XLowLayerSubgroups[102X( [3Xact[103X, [3XG[103X, [3Xlim[103X, [3Xcond[103X, [3Xdosub[103X ) [32X function[133X
[33X[0;0YThis function computes representatives of the conjugacy classes of subgroups
of the finite group [3XG[103X such that the subgroups can be obtained as [3Xlim[103X-fold
iterated maximal subgroups. If a function [3Xcond[103X is given, only subgroups for
which this function returns true (also for their intermediate overgroups) is
returned. If also a function [3Xdosub[103X is given, maximal subgroups are only
attempted if this function returns true (this is separated for performance
reasons). In the example below, the result would be the same with leaving
out the fourth function, but calculation this way is slightly faster.[133X
[1X39.20-7 ContainedConjugates[101X
[33X[1;0Y[29X[2XContainedConjugates[102X( [3XG[103X, [3XA[103X, [3XB[103X ) [32X function[133X
[33X[0;0YFor [22XA,B ≤ G[122X this operation returns representatives of the [3XA[103X conjugacy
classes of subgroups that are conjugate to [3XB[103X under [3XG[103X. The function returns a
list of pairs of subgroup and conjugating element.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(8);;[127X[104X
[4X[25Xgap>[125X [27Xa:=TransitiveGroup(8,47);;b:=TransitiveGroup(8,7);;[127X[104X
[4X[25Xgap>[125X [27XContainedConjugates(g,a,b);[127X[104X
[4X[28X[ [ Group([ (1,4,2,5,3,6,8,7), (1,3)(2,8) ]), (2,4,5,3)(7,8) ] ][128X[104X
[4X[32X[104X
[1X39.20-8 ContainingConjugates[101X
[33X[1;0Y[29X[2XContainingConjugates[102X( [3XG[103X, [3XA[103X, [3XB[103X ) [32X function[133X
[33X[0;0YFor [22XA,B ≤ G[122X this operation returns all [3XG[103X conjugates of [3XA[103X that contain [3XB[103X. The
function returns a list of pairs of subgroup and conjugating element.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(8);;[127X[104X
[4X[25Xgap>[125X [27Xa:=TransitiveGroup(8,47);;b:=TransitiveGroup(8,7);;[127X[104X
[4X[25Xgap>[125X [27XContainingConjugates(g,a,b);[127X[104X
[4X[28X[ [ Group([ (1,3,5,7), (3,5), (1,4)(2,7)(3,6)(5,8) ]), (2,3,5,4)(7,8) ] ][128X[104X
[4X[32X[104X
[1X39.20-9 MinimalFaithfulPermutationDegree[101X
[33X[1;0Y[29X[2XMinimalFaithfulPermutationDegree[102X( [3XG[103X ) [32X function[133X
[33X[0;0YFor a finite group [3XG[103X this operation calculates the least positive integer
[22Xn=μ(G)[122X such that [3XG[103X is isomorphic to a subgroup of the symmetric group of
degree [22Xn[122X. This can require calculating the whole subgroup lattice.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMinimalFaithfulPermutationDegree(SmallGroup(96,3));[127X[104X
[4X[28X12[128X[104X
[4X[32X[104X
[1X39.20-10 RepresentativesPerfectSubgroups[101X
[33X[1;0Y[29X[2XRepresentativesPerfectSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XRepresentativesSimpleSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of conjugacy representatives of perfect (respectively simple)
subgroups of [3XG[103X. This uses the library of perfect groups (see [2XPerfectGroup[102X
([14X50.6-2[114X)), thus it will issue an error if the library is insufficient to
determine all perfect subgroups.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xm11:=TransitiveGroup(11,6);[127X[104X
[4X[28XM(11)[128X[104X
[4X[25Xgap>[125X [27Xr:=RepresentativesPerfectSubgroups(m11);;[127X[104X
[4X[25Xgap>[125X [27XList(r,Size);[127X[104X
[4X[28X[ 60, 60, 360, 660, 7920, 1 ][128X[104X
[4X[25Xgap>[125X [27XList(r,StructureDescription);[127X[104X
[4X[28X[ "A5", "A5", "A6", "PSL(2,11)", "M11", "1" ][128X[104X
[4X[32X[104X
[1X39.20-11 ConjugacyClassesPerfectSubgroups[101X
[33X[1;0Y[29X[2XConjugacyClassesPerfectSubgroups[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of the conjugacy classes of perfect subgroups of [3XG[103X. (see
[2XRepresentativesPerfectSubgroups[102X ([14X39.20-10[114X).)[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xr := ConjugacyClassesPerfectSubgroups(m11);;[127X[104X
[4X[25Xgap>[125X [27XList(r, x -> StructureDescription(Representative(x)));[127X[104X
[4X[28X[ "A5", "A5", "A6", "PSL(2,11)", "M11", "1" ][128X[104X
[4X[25Xgap>[125X [27XSortedList( List(r,Size) );[127X[104X
[4X[28X[ 1, 1, 11, 12, 66, 132 ][128X[104X
[4X[32X[104X
[1X39.20-12 Zuppos[101X
[33X[1;0Y[29X[2XZuppos[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThe [13XZuppos[113X of a group are the cyclic subgroups of prime power order. (The
name [21XZuppo[121X derives from the German abbreviation for [21Xzyklische Untergruppen
von Primzahlpotenzordnung[121X.) This attribute gives generators of all such
subgroups of a group [3XG[103X. That is all elements of [3XG[103X of prime power order up to
the equivalence that they generate the same cyclic subgroup.[133X
[1X39.20-13 InfoLattice[101X
[33X[1;0Y[29X[2XInfoLattice[102X[32X info class[133X
[33X[0;0Yis the information class used by the cyclic extension methods for subgroup
lattice calculations.[133X
[1X39.21 [33X[0;0YSpecific Methods for Subgroup Lattice Computations[133X[101X
[1X39.21-1 LatticeByCyclicExtension[101X
[33X[1;0Y[29X[2XLatticeByCyclicExtension[102X( [3XG[103X[, [3Xfunc[103X[, [3Xnoperf[103X]] ) [32X function[133X
[33X[0;0Ycomputes the lattice of [3XG[103X using the cyclic extension algorithm. If the
function [3Xfunc[103X is given, the algorithm will discard all subgroups not
fulfilling [3Xfunc[103X (and will also not extend them), returning a partial
lattice. This can be useful to compute only subgroups with certain
properties. Note however that this will [13Xnot[113X necessarily yield all subgroups
that fulfill [3Xfunc[103X, but the subgroups whose subgroups are used for the
construction must also fulfill [3Xfunc[103X as well. (In fact the filter [3Xfunc[103X will
simply discard subgroups in the cyclic extension algorithm. Therefore the
trivial subgroup will always be included.) Also note, that for such a
partial lattice maximality/minimality inclusion relations cannot be
computed. (If [3Xfunc[103X is a list of length 2, its first entry is such a
discarding function, the second a function for discarding zuppos.)[133X
[33X[0;0YThe cyclic extension algorithm requires the perfect subgroups of [3XG[103X. However
[5XGAP[105X cannot analyze the function [3Xfunc[103X for its implication but can only apply
it. If it is known that [3Xfunc[103X implies solvability, the computation of the
perfect subgroups can be avoided by giving a third parameter [3Xnoperf[103X set to
[9Xtrue[109X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=WreathProduct(Group((1,2,3),(1,2)),Group((1,2,3,4)));;[127X[104X
[4X[25Xgap>[125X [27Xl:=LatticeByCyclicExtension(g,function(G)[127X[104X
[4X[25X>[125X [27Xreturn Size(G) in [1,2,3,6];end);[127X[104X
[4X[28X<subgroup lattice of <permutation group of size 5184 with [128X[104X
[4X[28X9 generators>, 47 classes, [128X[104X
[4X[28X2628 subgroups, restricted under further condition l!.func>[128X[104X
[4X[32X[104X
[33X[0;0YThe total number of classes in this example is much bigger, as the following
example shows:[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XLatticeSubgroups(g);[127X[104X
[4X[28X<subgroup lattice of <permutation group of size 5184 with [128X[104X
[4X[28X9 generators>, 566 classes, 27134 subgroups>[128X[104X
[4X[32X[104X
[33X[0;0Y##[133X
[1X39.21-2 InvariantSubgroupsElementaryAbelianGroup[101X
[33X[1;0Y[29X[2XInvariantSubgroupsElementaryAbelianGroup[102X( [3XG[103X, [3Xhoms[103X[, [3Xdims[103X] ) [32X function[133X
[33X[0;0YLet [3XG[103X be an elementary abelian group and [3Xhoms[103X be a set of automorphisms of
[3XG[103X. Then this function computes all subspaces of [3XG[103X which are invariant under
all automorphisms in [3Xhoms[103X. When considering [3XG[103X as a module for the algebra
generated by [3Xhoms[103X, these are all submodules. If [3Xhoms[103X is empty, it computes
all subgroups. If the optional parameter [3Xdims[103X is given, only submodules of
this dimension are computed.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3),(4,5,6),(7,8,9));[127X[104X
[4X[28XGroup([ (1,2,3), (4,5,6), (7,8,9) ])[128X[104X
[4X[25Xgap>[125X [27Xhom:=GroupHomomorphismByImages(g,g,[(1,2,3),(4,5,6),(7,8,9)],[127X[104X
[4X[25X>[125X [27X[(7,8,9),(1,2,3),(4,5,6)]);[127X[104X
[4X[28X[ (1,2,3), (4,5,6), (7,8,9) ] -> [ (7,8,9), (1,2,3), (4,5,6) ][128X[104X
[4X[25Xgap>[125X [27Xu:=InvariantSubgroupsElementaryAbelianGroup(g,[hom]);[127X[104X
[4X[28X[ Group(()), Group([ (1,2,3)(4,5,6)(7,8,9) ]), [128X[104X
[4X[28X Group([ (1,3,2)(7,8,9), (1,3,2)(4,5,6) ]), [128X[104X
[4X[28X Group([ (7,8,9), (4,5,6), (1,2,3) ]) ][128X[104X
[4X[32X[104X
[1X39.21-3 SubgroupsSolvableGroup[101X
[33X[1;0Y[29X[2XSubgroupsSolvableGroup[102X( [3XG[103X[, [3Xopt[103X] ) [32X function[133X
[33X[0;0YThis function (implementing the algorithm published in [Hul99]) computes
subgroups of a solvable group [3XG[103X, using the homomorphism principle. It
returns a list of representatives up to [3XG[103X-conjugacy.[133X
[33X[0;0YThe optional argument [3Xopt[103X is a record, which may be used to suggest
restrictions on the subgroups computed. The following record components of
[3Xopt[103X are recognized and have the following effects. Note that all of the
following restrictions to subgroups with particular properties are only used
to speed up the calculation, but the result might still contain subgroups
(that had to be computed in any case) that do not satisfy the properties. If
this is not desired, the calculation must be followed by an explicit test
for the desired properties (which is not done by default, as it would be a
general slowdown). The function guarantees that representatives of all
subgroups that satisfy the properties are found, i.e. there can be only
false positives.[133X
[8X[10Xactions[110X[8X[108X
[33X[0;6Ymust be a list of automorphisms of [3XG[103X. If given, only groups which are
invariant under all these automorphisms are computed. The algorithm
must know the normalizer in [3XG[103X of the group generated by [10Xactions[110X
(defined formally by embedding in the semidirect product of [3XG[103X with
[3Xactions[103X). This can be given in the component [10Xfuncnorm[110X and will be
computed if this component is not given.[133X
[8X[10Xnormal[110X[8X[108X
[33X[0;6Yif set to [9Xtrue[109X only normal subgroups are guaranteed to be returned
(though some of the returned subgroups might still be not normal).[133X
[8X[10Xconsider[110X[8X[108X
[33X[0;6Ya function to restrict the groups computed. This must be a function of
five parameters, [22XC[122X, [22XA[122X, [22XN[122X, [22XB[122X, [22XM[122X, that are interpreted as follows: The
arguments are subgroups of a factor [22XF[122X of [3XG[103X in the relation [22XF ≥ C > A >
N > B > M[122X. [22XN[122X and [22XM[122X are normal subgroups. [22XC[122X is the full preimage of the
normalizer of [22XA/N[122X in [22XF/N[122X. When computing modulo [22XM[122X and looking for
subgroups [22XU[122X such that [22XU ∩ N = B[122X and [22X⟨ U, N ⟩ = A[122X, this function is
called. If it returns [9Xfalse[109X then all potential groups [22XU[122X (and therefore
all groups later arising from them) are disregarded. This can be used
for example to compute only subgroups of certain sizes.[133X
[33X[0;6Y([13XThis is just a restriction to speed up computations. The function may
still return (invariant) subgroups which don't fulfill this
condition![113X) This parameter is used to permit calculations of some
subgroups if the set of all subgroups would be too large to handle.[133X
[33X[0;6YThe actual groups [22XC[122X, [22XA[122X, [22XN[122X and [22XB[122X which are passed to this function are
not necessarily subgroups of [3XG[103X but might be subgroups of a proper
factor group [22XF = [3XG[103X/H[122X. Therefore the [10Xconsider[110X function may not relate
the parameter groups to [3XG[103X.[133X
[8X[10Xretnorm[110X[8X[108X
[33X[0;6Yif set to [9Xtrue[109X the function not only returns a list [10Xsubs[110X of subgroups
but also a corresponding list [10Xnorms[110X of normalizers in the form [10X[ subs,
norms ][110X.[133X
[8X[10Xseries[110X[8X[108X
[33X[0;6Yis an elementary abelian series of [3XG[103X which will be used for the
computation.[133X
[8X[10Xgroups[110X[8X[108X
[33X[0;6Yis a list of groups to seed the calculation. Only subgroups of these
groups are constructed.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3),(1,2),(4,5,6),(4,5),(7,8,9),(7,8));[127X[104X
[4X[28XGroup([ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8) ])[128X[104X
[4X[25Xgap>[125X [27Xhom:=GroupHomomorphismByImages(g,g,[127X[104X
[4X[25X>[125X [27X[(1,2,3),(1,2),(4,5,6),(4,5),(7,8,9),(7,8)],[127X[104X
[4X[25X>[125X [27X[(4,5,6),(4,5),(7,8,9),(7,8),(1,2,3),(1,2)]);[127X[104X
[4X[28X[ (1,2,3), (1,2), (4,5,6), (4,5), (7,8,9), (7,8) ] -> [128X[104X
[4X[28X[ (4,5,6), (4,5), (7,8,9), (7,8), (1,2,3), (1,2) ][128X[104X
[4X[25Xgap>[125X [27Xl:=SubgroupsSolvableGroup(g,rec(actions:=[hom]));;[127X[104X
[4X[25Xgap>[125X [27XList(l,Size);[127X[104X
[4X[28X[ 1, 3, 9, 27, 54, 2, 6, 18, 108, 4, 216, 8 ][128X[104X
[4X[25Xgap>[125X [27XLength(ConjugacyClassesSubgroups(g)); # to compare[127X[104X
[4X[28X162[128X[104X
[4X[32X[104X
[1X39.21-4 SizeConsiderFunction[101X
[33X[1;0Y[29X[2XSizeConsiderFunction[102X( [3Xsize[103X ) [32X function[133X
[33X[0;0YThis function returns a function [10Xconsider[110X of four arguments that can be used
in [2XSubgroupsSolvableGroup[102X ([14X39.21-3[114X) for the option [10Xconsider[110X to compute
subgroups whose sizes are divisible by [3Xsize[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xl:=SubgroupsSolvableGroup(g,rec(actions:=[hom],[127X[104X
[4X[25X>[125X [27Xconsider:=SizeConsiderFunction(6)));;[127X[104X
[4X[25Xgap>[125X [27XList(l,Size);[127X[104X
[4X[28X[ 1, 3, 9, 27, 54, 6, 18, 108, 216 ][128X[104X
[4X[32X[104X
[33X[0;0YThis example shows that in general the [10Xconsider[110X function does not provide a
perfect filter. It is guaranteed that all subgroups fulfilling the condition
are returned, but not all subgroups returned necessarily fulfill the
condition.[133X
[1X39.21-5 ExactSizeConsiderFunction[101X
[33X[1;0Y[29X[2XExactSizeConsiderFunction[102X( [3Xsize[103X ) [32X function[133X
[33X[0;0YThis function returns a function [10Xconsider[110X of four arguments that can be used
in [2XSubgroupsSolvableGroup[102X ([14X39.21-3[114X) for the option [10Xconsider[110X to compute
subgroups whose sizes are exactly [3Xsize[103X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xl:=SubgroupsSolvableGroup(g,rec(actions:=[hom],[127X[104X
[4X[25X>[125X [27Xconsider:=ExactSizeConsiderFunction(6)));;[127X[104X
[4X[25Xgap>[125X [27XList(l,Size);[127X[104X
[4X[28X[ 1, 3, 9, 27, 54, 6, 108, 216 ][128X[104X
[4X[32X[104X
[33X[0;0YAgain, the [10Xconsider[110X function does not provide a perfect filter. It is
guaranteed that all subgroups fulfilling the condition are returned, but not
all subgroups returned necessarily fulfill the condition.[133X
[1X39.21-6 InfoPcSubgroup[101X
[33X[1;0Y[29X[2XInfoPcSubgroup[102X[32X info class[133X
[33X[0;0YInformation function for the subgroup lattice functions using pcgs.[133X
[1X39.22 [33X[0;0YSpecial Generating Sets[133X[101X
[1X39.22-1 GeneratorsSmallest[101X
[33X[1;0Y[29X[2XGeneratorsSmallest[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a [21Xsmallest[121X generating set for the group [3XG[103X. This is the
lexicographically (using [5XGAP[105Xs order of group elements) smallest list [22Xl[122X of
elements of [3XG[103X such that [22XG = ⟨ l ⟩[122X and [22Xl_i not ∈ ⟨ l_1, ..., l_{i-1} ⟩[122X (in
particular [22Xl_1[122X is not the identity element of the group). The comparison of
two groups via lexicographic comparison of their sorted element lists yields
the same relation as lexicographic comparison of their smallest generating
sets.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=SymmetricGroup(4);;[127X[104X
[4X[25Xgap>[125X [27XGeneratorsSmallest(g);[127X[104X
[4X[28X[ (3,4), (2,3), (1,2) ][128X[104X
[4X[32X[104X
[1X39.22-2 LargestElementGroup[101X
[33X[1;0Y[29X[2XLargestElementGroup[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns the largest element of [3XG[103X with respect to the ordering [10X<[110X of the
elements family.[133X
[1X39.22-3 MinimalGeneratingSet[101X
[33X[1;0Y[29X[2XMinimalGeneratingSet[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a generating set of [3XG[103X of minimal possible length.[133X
[33X[0;0YNote that –apart from special cases– currently there are only efficient
methods known to compute minimal generating sets of finite solvable groups
and of finitely generated nilpotent groups. Hence so far these are the only
cases for which methods are available. The former case is covered by a
method implemented in the [5XGAP[105X library, while the second case requires the
package [5XPolycyclic[105X.[133X
[33X[0;0YIf you do not really need a minimal generating set, but are satisfied with
getting a reasonably small set of generators, you better use
[2XSmallGeneratingSet[102X ([14X39.22-4[114X).[133X
[33X[0;0YInformation about the minimal generating sets of the finite simple groups of
order less than [22X10^6[122X can be found in [MY79]. See also the package [5XAtlasRep[105X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XMinimalGeneratingSet(g);[127X[104X
[4X[28X[ (2,4,3), (1,4,2,3) ][128X[104X
[4X[32X[104X
[1X39.22-4 SmallGeneratingSet[101X
[33X[1;0Y[29X[2XSmallGeneratingSet[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a generating set of [3XG[103X which has few elements. As neither
irredundancy, nor minimal length is proven it runs much faster than
[2XMinimalGeneratingSet[102X ([14X39.22-3[114X). It can be used whenever a short generating
set is desired which not necessarily needs to be optimal.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XSmallGeneratingSet(g);[127X[104X
[4X[28X[ (1,2,3,4), (1,2) ][128X[104X
[4X[32X[104X
[1X39.22-5 IndependentGeneratorsOfAbelianGroup[101X
[33X[1;0Y[29X[2XIndependentGeneratorsOfAbelianGroup[102X( [3XA[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of generators [22Xa_1, a_2, ...[122X of prime power order or infinite
order of the abelian group [3XA[103X such that [3XA[103X is the direct product of the cyclic
groups generated by the [22Xa_i[122X. The list of orders of the returned generators
must match the result of [2XAbelianInvariants[102X ([14X39.16-1[114X) (taking into account
that zero and [2Xinfinity[102X ([14X18.2-1[114X) are identified).[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=AbelianGroup(IsPermGroup,[15,14,22,78]);;[127X[104X
[4X[25Xgap>[125X [27XList(IndependentGeneratorsOfAbelianGroup(g),Order);[127X[104X
[4X[28X[ 2, 2, 2, 3, 3, 5, 7, 11, 13 ][128X[104X
[4X[25Xgap>[125X [27XAbelianInvariants(g);[127X[104X
[4X[28X[ 2, 2, 2, 3, 3, 5, 7, 11, 13 ][128X[104X
[4X[32X[104X
[1X39.22-6 IndependentGeneratorExponents[101X
[33X[1;0Y[29X[2XIndependentGeneratorExponents[102X( [3XG[103X, [3Xg[103X ) [32X operation[133X
[33X[0;0YFor an abelian group [3XG[103X, with [2XIndependentGeneratorsOfAbelianGroup[102X ([14X39.22-5[114X)
value the list [22X[ a_1, ..., a_n ][122X, this operation returns the exponent vector
[22X[ e_1, ..., e_n ][122X to represent [22X[3Xg[103X = ∏_i a_i^{e_i}[122X.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg := AbelianGroup([16,9,625]);;[127X[104X
[4X[25Xgap>[125X [27Xgens := IndependentGeneratorsOfAbelianGroup(g);;[127X[104X
[4X[25Xgap>[125X [27XList(gens, Order);[127X[104X
[4X[28X[ 9, 16, 625 ][128X[104X
[4X[25Xgap>[125X [27XAbelianInvariants(g);[127X[104X
[4X[28X[ 9, 16, 625 ][128X[104X
[4X[25Xgap>[125X [27Xr:=gens[1]^4*gens[2]^12*gens[3]^128;;[127X[104X
[4X[25Xgap>[125X [27XIndependentGeneratorExponents(g,r);[127X[104X
[4X[28X[ 4, 12, 128 ][128X[104X
[4X[32X[104X
[1X39.23 [33X[0;0Y1-Cohomology[133X[101X
[33X[0;0YLet [22XG[122X be a finite group and [22XM[122X an elementary abelian normal [22Xp[122X-subgroup of [22XG[122X.
Then the group of 1-cocycles [22XZ^1( G/M, M )[122X is defined as[133X
[24X[33X[0;6YZ^1(G/M, M) = { γ: G/M → M ∣ ∀ g_1, g_2 ∈ G : γ(g_1 M ⋅ g_2 M ) = γ(g_1 M)^{g_2} ⋅ γ(g_2 M) }[133X[124X
[33X[0;0Yand is a [22XGF(p)[122X-vector space.[133X
[33X[0;0YThe group of 1-coboundaries [22XB^1( G/M, M )[122X is defined as[133X
[24X[33X[0;6YB^1(G/M, M) = { γ : G/M → M ∣ ∃ m ∈ M ∀ g ∈ G : γ(gM) = (m^{-1})^g ⋅ m }[133X[124X
[33X[0;0YIt also is a [22XGF(p)[122X-vector space.[133X
[33X[0;0YLet [22Xα[122X be the isomorphism of [22XM[122X into a row vector space [22Xcal W[122X and [22X(g_1, ...,
g_l)[122X representatives for a generating set of [22XG/M[122X. Then there exists a
monomorphism [22Xβ[122X of [22XZ^1( G/M, M )[122X in the [22Xl[122X-fold direct sum of [22Xcal W[122X, such that
[22Xβ( γ ) = ( α( γ(g_1 M) ),..., α( γ(g_l M) ) )[122X for every [22Xγ ∈ Z^1( G/M, M )[122X.[133X
[1X39.23-1 [33X[0;0YOneCocycles[133X[101X
[33X[1;0Y[29X[2XOneCocycles[102X( [3XG[103X, [3XM[103X ) [32X function[133X
[33X[1;0Y[29X[2XOneCocycles[102X( [3XG[103X, [3Xmpcgs[103X ) [32X function[133X
[33X[1;0Y[29X[2XOneCocycles[102X( [3Xgens[103X, [3XM[103X ) [32X function[133X
[33X[1;0Y[29X[2XOneCocycles[102X( [3Xgens[103X, [3Xmpcgs[103X ) [32X function[133X
[33X[0;0YComputes the group of 1-cocycles [22XZ^1([3XG[103X/[3XM[103X,[3XM[103X)[122X. The normal subgroup [3XM[103X may be
given by a (Modulo)Pcgs [3Xmpcgs[103X. In this case the whole calculation is
performed modulo the normal subgroup defined by
[10XDenominatorOfModuloPcgs([3Xmpcgs[103X[10X)[110X (see [14X45.1[114X). Similarly the group [3XG[103X may instead
be specified by a set of elements [3Xgens[103X that are representatives for a
generating system for the factor group [3XG[103X/[3XM[103X. If this is done the 1-cocycles
are computed with respect to these generators (otherwise the routines try to
select suitable generators themselves). The current version of the code
assumes that [3XG[103X is a permutation group or a pc group.[133X
[1X39.23-2 OneCoboundaries[101X
[33X[1;0Y[29X[2XOneCoboundaries[102X( [3XG[103X, [3XM[103X ) [32X function[133X
[33X[0;0Ycomputes the group of 1-coboundaries. Syntax of input and output otherwise
is the same as with [2XOneCocycles[102X ([14X39.23-1[114X) except that entries that refer to
cocycles are not computed.[133X
[33X[0;0YThe operations [2XOneCocycles[102X ([14X39.23-1[114X) and [2XOneCoboundaries[102X return a record
with (at least) the components:[133X
[8X[10Xgenerators[110X[8X[108X
[33X[0;6YIs a list of representatives for a generating set of [3XG[103X/[3XM[103X. Cocycles are
represented with respect to these generators.[133X
[8X[10XoneCocycles[110X[8X[108X
[33X[0;6YA space of row vectors over GF([22Xp[122X), representing [22XZ^1[122X. The vectors are
represented in dimension [22Xa ⋅ b[122X where [22Xa[122X is the length of [10Xgenerators[110X and
[22Xp^b[122X the size of [3XM[103X.[133X
[8X[10XoneCoboundaries[110X[8X[108X
[33X[0;6YA space of row vectors that represents [22XB^1[122X.[133X
[8X[10XcocycleToList[110X[8X[108X
[33X[0;6Yis a function to convert a cocycle (a row vector in [10XoneCocycles[110X) to a
corresponding list of elements of [3XM[103X.[133X
[8X[10XlistToCocycle[110X[8X[108X
[33X[0;6Yis a function to convert a list of elements of [3XM[103X to a cocycle.[133X
[8X[10XisSplitExtension[110X[8X[108X
[33X[0;6Yindicates whether [3XG[103X splits over [3XM[103X. The following components are only
bound if the extension splits. Note that if [3XM[103X is given by a modulo
pcgs all subgroups are given as subgroups of [3XG[103X by generators
corresponding to [10Xgenerators[110X and thus may not contain the denominator
of the modulo pcgs. In this case taking the closure with this
denominator will give the full preimage of the complement in the
factor group.[133X
[8X[10Xcomplement[110X[8X[108X
[33X[0;6YOne complement to [3XM[103X in [3XG[103X.[133X
[8X[10XcocycleToComplement( cyc )[110X[8X[108X
[33X[0;6Yis a function that takes a cocycle from [10XoneCocycles[110X and returns the
corresponding complement to [3XM[103X in [3XG[103X (with respect to the fixed
complement [10Xcomplement[110X).[133X
[8X[10XcomplementToCocycle([3XU[103X[8X[10X)[110X[8X[108X
[33X[0;6Yis a function that takes a complement and returns the corresponding
cocycle.[133X
[33X[0;0YIf the factor [3XG[103X/[3XM[103X is given by a (modulo) pcgs [3Xgens[103X then special methods are
used that compute a presentation for the factor implicitly from the pcgs.[133X
[33X[0;0YNote that the groups of 1-cocycles and 1-coboundaries are not groups in the
sense of [2XGroup[102X ([14X39.2-1[114X) for [5XGAP[105X but vector spaces.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
[4X[25Xgap>[125X [27Xn:=Group((1,2)(3,4),(1,3)(2,4));;[127X[104X
[4X[25Xgap>[125X [27Xoc:=OneCocycles(g,n);[127X[104X
[4X[28Xrec( cocycleToComplement := function( c ) ... end, [128X[104X
[4X[28X cocycleToList := function( c ) ... end, [128X[104X
[4X[28X complement := Group([ (3,4), (2,4,3) ]), [128X[104X
[4X[28X complementGens := [ (3,4), (2,4,3) ], [128X[104X
[4X[28X complementToCocycle := function( K ) ... end, [128X[104X
[4X[28X factorGens := [ (3,4), (2,4,3) ], generators := [ (3,4), (2,4,3) ], [128X[104X
[4X[28X isSplitExtension := true, listToCocycle := function( L ) ... end, [128X[104X
[4X[28X oneCoboundaries := <vector space over GF(2), with 2 generators>, [128X[104X
[4X[28X oneCocycles := <vector space over GF(2), with 2 generators> )[128X[104X
[4X[25Xgap>[125X [27Xoc.cocycleToList([ 0*Z(2), Z(2)^0, 0*Z(2), Z(2)^0 ]);[127X[104X
[4X[28X[ (1,2)(3,4), (1,2)(3,4) ][128X[104X
[4X[25Xgap>[125X [27Xoc.listToCocycle([(),(1,3)(2,4)]) = Z(2) * [ 0, 0, 1, 0];[127X[104X
[4X[28Xtrue[128X[104X
[4X[25Xgap>[125X [27Xoc.cocycleToComplement([ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ]);[127X[104X
[4X[28XGroup([ (3,4), (1,3,4) ])[128X[104X
[4X[25Xgap>[125X [27Xoc.complementToCocycle(Group((1,2,4),(1,4))) = Z(2) * [ 0, 1, 1, 1 ];[127X[104X
[4X[28Xtrue[128X[104X
[4X[32X[104X
[33X[0;0YThe factor group [22XH^1([3XG[103X/[3XM[103X, [3XM[103X) = Z^1([3XG[103X/[3XM[103X, [3XM[103X) / B^1([3XG[103X/[3XM[103X, [3XM[103X)[122X is called the first
cohomology group. Currently there is no function which explicitly computes
this group. The easiest way to represent it is as a vector space complement
to [22XB^1[122X in [22XZ^1[122X.[133X
[33X[0;0YIf the only purpose of the calculation of [22XH^1[122X is the determination of
complements it might be desirable to stop calculations once it is known that
the extension cannot split. This can be achieved via the more technical
function [2XOCOneCocycles[102X ([14X39.23-3[114X).[133X
[1X39.23-3 OCOneCocycles[101X
[33X[1;0Y[29X[2XOCOneCocycles[102X( [3Xocr[103X, [3XonlySplit[103X ) [32X function[133X
[33X[0;0Yis the more technical function to compute 1-cocycles. It takes a record [3Xocr[103X
as first argument which must contain at least the components [10Xgroup[110X for the
group and [10XmodulePcgs[110X for a (modulo) pcgs of the module. This record will
also be returned with components as described under [2XOneCocycles[102X ([14X39.23-1[114X)
(with the exception of [10XisSplitExtension[110X which is indicated by the existence
of a [10Xcomplement[110X) but components such as [10XoneCoboundaries[110X will only be
computed if not already present.[133X
[33X[0;0YIf [3XonlySplit[103X is [9Xtrue[109X, [2XOCOneCocycles[102X returns [9Xfalse[109X as soon as possible if the
extension does not split.[133X
[1X39.23-4 ComplementClassesRepresentativesEA[101X
[33X[1;0Y[29X[2XComplementClassesRepresentativesEA[102X( [3XG[103X, [3XN[103X ) [32X function[133X
[33X[0;0Ycomputes complement classes to an elementary abelian normal subgroup [3XN[103X via
1-Cohomology. Normally, a user program should call
[2XComplementClassesRepresentatives[102X ([14X39.11-6[114X) instead, which also works for a
solvable (not necessarily elementary abelian) [3XN[103X.[133X
[1X39.23-5 InfoCoh[101X
[33X[1;0Y[29X[2XInfoCoh[102X[32X info class[133X
[33X[0;0YThe info class for the cohomology calculations is [2XInfoCoh[102X.[133X
[1X39.24 [33X[0;0YSchur Covers and Multipliers[133X[101X
[33X[0;0YAdditional attributes and properties of a group can be derived from
computing its Schur cover. For example, if [22XG[122X is a finitely presented group,
the derived subgroup of a Schur cover of [22XG[122X is invariant and isomorphic to
the [2XNonabelianExteriorSquare[102X ([14X39.24-5[114X) value of [22XG[122X, see [BJR87].[133X
[1X39.24-1 EpimorphismSchurCover[101X
[33X[1;0Y[29X[2XEpimorphismSchurCover[102X( [3XG[103X[, [3Xpl[103X] ) [32X attribute[133X
[33X[0;0Yreturns an epimorphism [22Xepi[122X from a group [22XD[122X onto [3XG[103X. The group [22XD[122X is one (of
possibly several) Schur covers of [3XG[103X. The group [22XD[122X can be obtained as the
[2XSource[102X ([14X32.3-8[114X) value of [3Xepi[103X. The kernel of [22Xepi[122X is the Schur multiplier of
[3XG[103X. If [3Xpl[103X is given as a list of primes, only the multiplier part for these
primes is realized. At the moment, [22XD[122X is represented as a finitely presented
group.[133X
[1X39.24-2 SchurCover[101X
[33X[1;0Y[29X[2XSchurCover[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns one (of possibly several) Schur covers of the group [3XG[103X.[133X
[33X[0;0YAt the moment this cover is represented as a finitely presented group and
[2XIsomorphismPermGroup[102X ([14X43.3-1[114X) would be needed to convert it to a permutation
group.[133X
[33X[0;0YIf also the relation to [3XG[103X is needed, [2XEpimorphismSchurCover[102X ([14X39.24-1[114X) should
be used.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=Group((1,2,3,4),(1,2));;[127X[104X
[4X[25Xgap>[125X [27Xepi:=EpimorphismSchurCover(g);[127X[104X
[4X[28X[ f1, f2, f3 ] -> [ (3,4), (2,4,3), (1,3)(2,4) ][128X[104X
[4X[25Xgap>[125X [27XSize(Source(epi));[127X[104X
[4X[28X48[128X[104X
[4X[32X[104X
[33X[0;0YIf the group becomes bigger, Schur Cover calculations might become
unfeasible.[133X
[33X[0;0YThere is another operation, [2XAbelianInvariantsMultiplier[102X ([14X39.24-3[114X), which
only returns the structure of the Schur Multiplier, and which should work
for larger groups as well.[133X
[1X39.24-3 AbelianInvariantsMultiplier[101X
[33X[1;0Y[29X[2XAbelianInvariantsMultiplier[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0Yreturns a list of the abelian invariants of the Schur multiplier of [3XG[103X.[133X
[33X[0;0YAt the moment, this operation will not give any information about how to
extend the multiplier to a Schur Cover.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XAbelianInvariantsMultiplier(g);[127X[104X
[4X[28X[ 2 ][128X[104X
[4X[25Xgap>[125X [27XAbelianInvariantsMultiplier(AlternatingGroup(6));[127X[104X
[4X[28X[ 2, 3 ][128X[104X
[4X[25Xgap>[125X [27XAbelianInvariantsMultiplier(SL(2,3));[127X[104X
[4X[28X[ ][128X[104X
[4X[25Xgap>[125X [27XAbelianInvariantsMultiplier(SL(3,2));[127X[104X
[4X[28X[ 2 ][128X[104X
[4X[25Xgap>[125X [27XAbelianInvariantsMultiplier(PSU(4,2));[127X[104X
[4X[28X[ 2 ][128X[104X
[4X[32X[104X
[33X[0;0Y(Note that the last command from the example will take some time.)[133X
[33X[0;0YThe [5XGAP[105X 4.4.12 manual contained examples for larger groups e.g. [22XM_22[122X.
However, some issues that may very rarely (and not easily reproducibly) lead
to wrong results were discovered in the code capable of handling larger
groups, and in [5XGAP[105X 4.5 it was replaced by a more reliable basic method. To
deal with larger groups, one can use the function [2XSchurMultiplier[102X
([14XSchurMultiplier???[114X) from the [5Xcohomolo[105X package. Also, additional methods for
[2XAbelianInvariantsMultiplier[102X are installed in the [5XPolycyclic[105X package for
pcp-groups.[133X
[1X39.24-4 Epicentre[101X
[33X[1;0Y[29X[2XEpicentre[102X( [3XG[103X ) [32X attribute[133X
[33X[1;0Y[29X[2XExteriorCentre[102X( [3XG[103X ) [32X attribute[133X
[33X[0;0YThere are various ways of describing the epicentre of a group [3XG[103X. It is the
smallest normal subgroup [22XN[122X of [3XG[103X such that [22X[3XG[103X/N[122X is a central quotient of a
group. It is also equal to the Exterior Center of [3XG[103X, see [Ell98].[133X
[1X39.24-5 NonabelianExteriorSquare[101X
[33X[1;0Y[29X[2XNonabelianExteriorSquare[102X( [3XG[103X ) [32X operation[133X
[33X[0;0YComputes the nonabelian exterior square [22X[3XG[103X ∧ [3XG[103X[122X of the group [3XG[103X, which for a
finitely presented group is the derived subgroup of any Schur cover of [3XG[103X
(see [BJR87]).[133X
[1X39.24-6 EpimorphismNonabelianExteriorSquare[101X
[33X[1;0Y[29X[2XEpimorphismNonabelianExteriorSquare[102X( [3XG[103X ) [32X operation[133X
[33X[0;0YComputes the mapping [22X[3XG[103X ∧ [3XG[103X → [3XG[103X[122X. The kernel of this mapping is equal to the
Schur multiplier of [3XG[103X.[133X
[1X39.24-7 IsCentralFactor[101X
[33X[1;0Y[29X[2XIsCentralFactor[102X( [3XG[103X ) [32X property[133X
[33X[0;0YThis function determines if there exists a group [22XH[122X such that [3XG[103X is isomorphic
to the quotient [22XH/Z(H)[122X. A group with this property is called in literature
[13Xcapable[113X. A group being capable is equivalent to the epicentre of [3XG[103X being
trivial, see [BFS79].[133X
[1X39.24-8 [33X[0;0YCovering groups of symmetric groups[133X[101X
[33X[0;0YThe covering groups of symmetric groups were classified in [Sch11]; an
inductive procedure to construct faithful, irreducible representations of
minimal degree over all fields was presented in [Maa10]. Methods for
[2XEpimorphismSchurCover[102X ([14X39.24-1[114X) are provided for natural symmetric groups
which use these representations. For alternating groups, the restriction of
these representations are provided, but they may not be irreducible. In the
case of degree [22X6[122X and [22X7[122X, they are not the full covering groups and so matrix
representations are just stored explicitly for the six-fold covers.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27XEpimorphismSchurCover(SymmetricGroup(15));[127X[104X
[4X[28X[ < immutable compressed matrix 64x64 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 64x64 over GF(9) > ] -> [128X[104X
[4X[28X[ (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), (1,2) ][128X[104X
[4X[25Xgap>[125X [27XEpimorphismSchurCover(AlternatingGroup(15));[127X[104X
[4X[28X[ < immutable compressed matrix 64x64 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 64x64 over GF(9) > ] -> [128X[104X
[4X[28X[ (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15), (13,14,15) ][128X[104X
[4X[25Xgap>[125X [27XSchurCoverOfSymmetricGroup(12);[127X[104X
[4X[28X<matrix group of size 958003200 with 2 generators>[128X[104X
[4X[25Xgap>[125X [27XDoubleCoverOfAlternatingGroup(12);[127X[104X
[4X[28X<matrix group of size 479001600 with 2 generators>[128X[104X
[4X[25Xgap>[125X [27XBasicSpinRepresentationOfSymmetricGroup( 10, 3, -1 );[127X[104X
[4X[28X[ < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) >, [128X[104X
[4X[28X < immutable compressed matrix 16x16 over GF(9) > ][128X[104X
[4X[32X[104X
[1X39.24-9 BasicSpinRepresentationOfSymmetricGroup[101X
[33X[1;0Y[29X[2XBasicSpinRepresentationOfSymmetricGroup[102X( [3Xn[103X, [3Xp[103X, [3Xsign[103X ) [32X function[133X
[33X[0;0YConstructs the image of the Coxeter generators in the basic spin
(projective) representation of the symmetric group of degree [3Xn[103X over a field
of characteristic [22X[3Xp[103X ≥ 0[122X. There are two such representations and [3Xsign[103X
controls which is returned: +1 gives a group where the preimage of an
adjacent transposition [22X(i,i+1)[122X has order 4, -1 gives a group where the
preimage of an adjacent transposition [22X(i,i+1)[122X has order 2. If no [3Xsign[103X is
specified, +1 is used by default. If no [3Xp[103X is specified, 3 is used by
default. (Note that the convention of which cover is labelled as +1 is
inconsistent in the literature.)[133X
[1X39.24-10 SchurCoverOfSymmetricGroup[101X
[33X[1;0Y[29X[2XSchurCoverOfSymmetricGroup[102X( [3Xn[103X, [3Xp[103X, [3Xsign[103X ) [32X operation[133X
[33X[0;0YConstructs a Schur cover of [10XSymmetricGroup([3Xn[103X[10X)[110X as a faithful, irreducible
matrix group in characteristic [3Xp[103X ([22X[3Xp[103X ≠ 2[122X). For [22X[3Xn[103X ≥ 4[122X, there are two such
covers, and [3Xsign[103X determines which is returned: +1 gives a group where the
preimage of an adjacent transposition [22X(i,i+1)[122X has order 4, -1 gives a group
where the preimage of an adjacent transposition [22X(i,i+1)[122X has order 2. If no
[3Xsign[103X is specified, +1 is used by default. If no [3Xp[103X is specified, 3 is used by
default. (Note that the convention of which cover is labelled as +1 is
inconsistent in the literature.) For [22X[3Xn[103X ≤ 3[122X, the symmetric group is its own
Schur cover and [3Xsign[103X is ignored. For [22X[3Xp[103X = 2[122X, there is no faithful,
irreducible representation of the Schur cover unless [22X[3Xn[103X = 1[122X or [22X[3Xn[103X = 3[122X, so [9Xfail[109X
is returned if [22X[3Xp[103X = 2[122X. For [22X[3Xp[103X = 3[122X, [22X[3Xn[103X = 3[122X, the representation is
indecomposable, but reducible. The field of the matrix group is generally
[10XGF([3Xp[103X[10X^2)[110X if [22X[3Xp[103X > 0[122X, and an abelian number field if [22X[3Xp[103X = 0[122X.[133X
[1X39.24-11 DoubleCoverOfAlternatingGroup[101X
[33X[1;0Y[29X[2XDoubleCoverOfAlternatingGroup[102X( [3Xn[103X, [3Xp[103X ) [32X operation[133X
[33X[0;0YConstructs a double cover of [10XAlternatingGroup([3Xn[103X[10X)[110X as a faithful, completely
reducible matrix group in characteristic [3Xp[103X ([22Xp ≠ 2[122X) for [22Xn ≥ 4[122X. For [22Xn ≤ 3[122X, the
alternating group is its own Schur cover, and [9Xfail[109X is returned. For [22Xp = 2[122X,
there is no faithful, completely reducible representation of the double
cover, so [9Xfail[109X is returned. The field of the matrix group is generally
[10XGF(p^2)[110X if [22Xp>0[122X, and an abelian number field if [22Xp=0[122X. If [3Xp[103X is omitted, the
default is 3.[133X
[1X39.25 [33X[0;0YTests for the Availability of Methods[133X[101X
[33X[0;0YThe following filters and operations indicate capabilities of [5XGAP[105X. They can
be used in the method selection or algorithms to check whether it is
feasible to compute certain operations for a given group. In general, they
return [9Xtrue[109X if good algorithms for the given arguments are available in [5XGAP[105X.
An answer [9Xfalse[109X indicates that no method for this group may exist, or that
the existing methods might run into problems.[133X
[33X[0;0YTypical examples when this might happen is with finitely presented groups,
for which many of the methods cannot be guaranteed to succeed in all
situations.[133X
[33X[0;0YThe willingness of [5XGAP[105X to perform certain operations may change, depending
on which further information is known about the arguments. Therefore the
filters used are not implemented as properties but as [21Xother filters[121X
(see [14X13.7[114X and [14X13.8[114X).[133X
[1X39.25-1 CanEasilyTestMembership[101X
[33X[1;0Y[29X[2XCanEasilyTestMembership[102X( [3XG[103X ) [32X filter[133X
[33X[0;0YThis filter indicates whether [5XGAP[105X can test membership of elements in the
group [3XG[103X (via the operation [2X\in[102X ([14X30.6-1[114X)) in reasonable time. It is used by
the method selection to decide whether an algorithm that relies on
membership tests may be used.[133X
[1X39.25-2 CanEasilyComputeWithIndependentGensAbelianGroup[101X
[33X[1;0Y[29X[2XCanEasilyComputeWithIndependentGensAbelianGroup[102X( [3XG[103X ) [32X filter[133X
[33X[0;0YThis filter indicates whether [5XGAP[105X can in reasonable time compute independent
abelian generators of the group [3XG[103X (via [2XIndependentGeneratorsOfAbelianGroup[102X
([14X39.22-5[114X)) and then can decompose arbitrary group elements with respect to
these generators using [2XIndependentGeneratorExponents[102X ([14X39.22-6[114X). It is used
by the method selection to decide whether an algorithm that relies on these
two operations may be used.[133X
[1X39.25-3 CanComputeSize[101X
[33X[1;0Y[29X[2XCanComputeSize[102X( [3Xdom[103X ) [32X filter[133X
[33X[0;0YThis filter indicates that we know that the size of the domain [3Xdom[103X (which
might be [2Xinfinity[102X ([14X18.2-1[114X)) can be computed reasonably easily. It doesn't
imply as quick a computation as [10XHasSize[110X would but its absence does not imply
that the size cannot be computed.[133X
[1X39.25-4 CanComputeSizeAnySubgroup[101X
[33X[1;0Y[29X[2XCanComputeSizeAnySubgroup[102X( [3XG[103X ) [32X filter[133X
[33X[0;0YThis filter indicates whether [5XGAP[105X can easily compute the size of any
subgroup of the group [3XG[103X. (This is for example advantageous if one can test
that a stabilizer index equals the length of the orbit computed so far to
stop early.)[133X
[1X39.25-5 CanComputeIndex[101X
[33X[1;0Y[29X[2XCanComputeIndex[102X( [3XG[103X, [3XH[103X ) [32X operation[133X
[33X[0;0YThis function indicates whether the index [22X[[3XG[103X:[3XH[103X][122X (which might be [2Xinfinity[102X
([14X18.2-1[114X)) can be computed. It assumes that [22X[3XH[103X ≤ [3XG[103X[122X (see [2XCanComputeIsSubset[102X
([14X39.25-6[114X)).[133X
[1X39.25-6 CanComputeIsSubset[101X
[33X[1;0Y[29X[2XCanComputeIsSubset[102X( [3XA[103X, [3XB[103X ) [32X operation[133X
[33X[0;0YThis filter indicates that [5XGAP[105X can test (via [2XIsSubset[102X ([14X30.5-1[114X)) whether [3XB[103X is
a subset of [3XA[103X.[133X
[1X39.25-7 KnowsHowToDecompose[101X
[33X[1;0Y[29X[2XKnowsHowToDecompose[102X( [3XG[103X[, [3Xgens[103X] ) [32X property[133X
[33X[0;0YTests whether the group [3XG[103X can decompose elements in the generators [3Xgens[103X. If
[3Xgens[103X is not given it tests, whether it can decompose in the generators given
in the [2XGeneratorsOfGroup[102X ([14X39.2-4[114X) value of [3XG[103X.[133X
[33X[0;0YThis property can be used for example to check whether a group homomorphism
by images (see [2XGroupHomomorphismByImages[102X ([14X40.1-1[114X)) can be reasonably defined
from this group.[133X
[1X39.26 [33X[0;0YSpecific functions for Normalizer calculation[133X[101X
[1X39.26-1 NormalizerViaRadical[101X
[33X[1;0Y[29X[2XNormalizerViaRadical[102X( [3XG[103X, [3XS[103X ) [32X function[133X
[33X[0;0YThis function implements a particular approach, following the
SolvableRadical paradigm, for calculating the normalizer of a subgroup [3XS[103X in
[3XG[103X. It is at the moment provided only as a separate function, and not as
method for the operation [10XNormalizer[110X, as it can often be slower than other
built-in routines. In certain hard cases (non-solvable groups with
nontrivial radical), however its performance is substantially superior. The
function thus is provided as a non-automated tool for advanced users.[133X
[4X[32X Example [32X[104X
[4X[25Xgap>[125X [27Xg:=TransitiveGroup(30,2030);;[127X[104X
[4X[25Xgap>[125X [27Xs:=SylowSubgroup(g,5);;[127X[104X
[4X[25Xgap>[125X [27XSize(NormalizerViaRadical(g,s));[127X[104X
[4X[28X28800[128X[104X
[4X[32X[104X
[33X[0;0YNote that this example only demonstrates usage, but that in this case in
fact the ordinary [10XNormalizer[110X routine performs faster.[133X