GroupId( G )
For certain small groups the function returns a record which will identify the isomorphism type of G with respect to certain classifications. This record contains the components described below.
The function will work for all groups of order at most 100 or whose order is
a product of at most three primes. Moreover if the ANU pq is installed and
loaded (see RequirePackage and ANU pq Package) you can also use GroupId
to identify groups of order 128, 256, 243 and 729. In this case a standard
presentation for G is computed (see StandardPresentation) and the
returned record will only contain the components size, pGroupId,
and possibly abelianInvariants. For 2- or 3-groups of order at
most 100 GroupId will return the pGroupId
identifier even if the ANU pq is not installed.
catalogue:
a pair [o,n] where o is the
size of G and n is the catalogue number of G
following the catalogue of groups of order at most 100. See
The Solvable Groups Library for further details. This catalogue uses the
Neubueser list for groups of order at most 100, excluding groups of orders 64
and 96 (see Neu67). It uses the lists developed by HS64 and Lau82 for orders 64
and 96 respectively.medskip
Note that there are minor
discrepancies between n and the number in Neu67 for abelian groups
and groups of type D(p,q)xr. However, a solvable group G
is isomorphic to SolvableGroup(o, n), i.e., GroupId(SolvableGroup(o,n)).catalogue
will be [o,n].medskip
If G is a
2- or 3-group of order at most 100, its number in the appropriate p-group
library is also returned. Note that, for such groups, the number n
usually differs from the p-group identifier returned in pGroupId
(see below).
3primes:
if G is non-abelian and its size is a
product of at most three primes then 3primes holds an identifier
for G. The following isomorphisms are returned in 3primes:
["A",p] = A(p^3), ["B",p] = B(p^3),
["D",p,q,r] = D(p,q)xr,
["D",p,q]
= D(p,q), ["G",p,q] = G(p^2,q), ["G",p,q,r,s]
= G(p,q,r,s),
["H",p,q] = H(p^2,q),
["H",p,q,r] = H(p,q,r), ["K",p,q] =
K(p,q^2),
["L",p,q,s] = L(p,q^2,s),
["M",p,q] = M(p,q^2), ["N",p,q] =
N(p,q^2)
(see names below for a definition of
A ... N).
pGroupId:
if G is a 2- or 3-group, this will be
the number of G in the list of 2-groups of order at most 256,
prepared by Newman and O'Brien, or 3-groups of order at most 729, prepared by
O'Brien and Rhodes. In particular, for an integer n and for o
a power of 2 at most 256, GroupId(TwoGroup(o,n)).pGroupId is
always n (and similarly for 3-groups). See The 2-Groups Library and
The 3-Groups Library for details about the libraries of 2- and 3-groups. Note
that if G is a 2- or 3-group of order at most 100 its pGroupId
usually differs from its GAP solvable library number
returned in catalogue.
abelianInvariants:
if G is abelian, this is a
list of abelian invariants.
names:
a list of names of G. For non-abelian
groups of order 96 this name is that used in the Laue catalogue (see Lau82).
For the other groups the following symbols are used. Note that this list of
names is neither complete, i.e., most of the groups of order 64 do not have a
name even if they are of one of the types described below, nor does it
uniquely determine the group up to isomorphism in some cases. medskip
m is the cyclic group of order m,
Dm
is the dihedral group of order m,
Qm is the
quaternion group of order m,
QDm is the quasi-dihedral
group of order m,
Sm is the symmetric group on
m points,
Am is the alternating group on m
points,
SL(d,q) is the special linear group,
GL(d,q)
is the general linear group,
PSL(d,q) is the projective
special linear group,
K^n is the direct power of m
copies of K,
K$H is a wreath product of K
and H,
K:H is a split extension of K by
H,
K.H is a non-split extension of K and
H,
K+H is a subdirect product with identified
factor groups of K and H,
KYH is a
central amalgamated product of the groups K and H,
KxH is the direct product of K and H, smallskip
A(p^3) is langleA, B, C ; A^p = B^p = C^p =
[A,B] = [A,C] = 1, [B,C] = A rangle, smallskip
B(p^3) is langleA, B, C ; B^p = C^p = A, A^p
= [A,B] = [A,C] = 1, [B,C] = A rangle, smallskip
D(p,q) is langleA, B ; A^q = B^p = 1, A^B =
A^x rangle such that p|q-1, x neq1
mod q, and x^p = 1 mod q, smallskip
G(p^2,q) is langleA, B, C ; A^p = B^q = 1,
C^p = A, [A,B] = [A,C] = 1, B^C = B^x rangle such that
p|q-1, x neq1 mod q, and x^p
= 1 mod q, smallskip
G(p,q,r,s)
is langleA, B, C ; A^r = B^q = C^p = [A,B] = 1, A^C = A^x,
B^C = B^((y^s)) rangle such that p|q-1, p|r-1,
x minimal with x neq1 mod r and
x^p = 1 mod r, y minimal with y neq1
mod q and y^p = 1 mod q, and 0 < s < p,smallskip
H(p^2,q) is langleA, B ; A^q = B^((p^2)) =
1, A^B = A^x rangle such that p^2|q-1, x^p
neq1 mod q, and x^((p^2)) = 1 mod
q, smallskip
H(p,q,r) is langleA,
B ; A^r = B^(pq) = 1, A^B = A^x rangle such that pq|r-1,
x^p neq1 mod r, x^q neq1
mod r, and x^(pq) = 1 mod r, smallskip
K(p,q^2) is langleA, B, C ; A^q = B^q = C^p
= [A,B] = 1, A^C = A^x, B^C = B^x rangle such that p|q-1,
x neq1 mod q, and x^p = 1 mod
q, smallskip
L(p,q^2,s) is langleA,
B, C ; A^q = B^q = C^p = [A,B] = 1, A^C = A^x, B^C = B^((x^s)) rangle
such that p|q-1, x neq1 mod q,
x^p = 1 mod q, and 1 < s < p, note that L(q,p^2,s)
cong L(q,p^2,t) iff s t = 1
mod p, smallskip
M(p,q^2) is langleA,
B ; A^((q^2)) = B^p = 1, A^B = A^x rangle such that
p|q-1, x neq1 mod q^2, and x^p
= 1 mod q^2, smallskip
N(p,q^2)
is langleA, B, C ; A^q = B^q = C^p = [A,B] = 1, A^C = A^(-1)B,
B^C = A^(-1)B^(x^q+x-1) rangle such that 2 < p,
p|q+1, x is an element of order p mod q^2,
smallskip
^ has the strongest, x
the weakest binding.
gap> q8 := SolvableGroup( 8, 5 );;
gap> s4 := SymmetricGroup(4);;
gap> d8 := SylowSubgroup( s4, 2 );;
gap> GroupId(q8);
rec(
catalogue := [ 8, 5 ],
names := [ "Q8" ],
size := 8,
pGroupId := 4 )
gap> GroupId(d8);
rec(
catalogue := [ 8, 4 ],
names := [ "D8" ],
size := 8,
pGroupId := 3 )
gap> GroupId(s4);
rec(
catalogue := [ 24, 15 ],
names := [ "S4" ],
size := 24 )
gap> GroupId(DirectProduct(d8,d8));
rec(
catalogue := [ 64, 154 ],
names := [ "D8xD8" ],
size := 64,
pGroupId := 226 )
gap> GroupId(DirectProduct(q8,d8));
rec(
catalogue := [ 64, 155 ],
names := [ "D8xQ8" ],
size := 64,
pGroupId := 230 )
gap> GroupId( WreathProduct( CyclicGroup(2), CyclicGroup(4) ) );
rec(
catalogue := [ 64, 250 ],
names := [ ],
size := 64,
pGroupId := 32 )
gap> f := FreeGroup("c","b","a");; a:=f.3;;b:=f.2;;c:=f.1;;
gap> r := [ c^5, b^31, a^31, Comm(b,c)/b^7, Comm(a,c)/a, Comm(a,b) ];;
gap> g := AgGroupFpGroup( f / r );
Group( c, b, a )
gap> GroupId(g);
rec(
3primes := [ "L", 5, 31, 2 ],
names := [ "L(5,31^2,2)" ],
size := 4805 )
gap> RequirePackage("anupq");
gap> g := TwoGroup(256,4);
Group( a1, a2, a3, a4, a5, a6, a7, a8 )
gap> GroupId(g);
rec(
size := 256,
pGroupId := 4 )
gap> g := TwoGroup(256,232);
Group( a1, a2, a3, a4, a5, a6, a7, a8 )
gap> GroupId(g);
rec(
size := 256,
pGroupId := 232 )