This chapter contains all the main methods and functions of this package. Throughout, let F be a prime field. First, we note that there is an info class
InfoModIsom
which takes values 0 or 1. With value 1 it prints various informations about the computation of canonical forms and automorphism groups.
All algebras in this package are described by structure constants tables. In the case of this package, these are 3-dimensional arrays and thus elements of Fn timesn timesn. The functions converting between such tables and algebras are the following.
AlgebraByTable(T) M
returns the algebra defined by the table T.
TableByBasis(A, b) M
returns the table of A with respect to the basis b.
Let A be an associative algebra over a prime field defined by a structure constants table in GAP.
IsNilpotentAlgebra(A) P
returns true if the algebra A is nilpotent and false otherwise.
PowerSeries(A) A
returns the power series of A.
PowerBasis(A) A
returns a basis of A exhibiting the power series provided that A is nilpotent.
TableByPowerBasis(A) A
returns a structure constants table for A with respect to the basis computed by PowerBasis.
CanonicalForm(A) A
returns a canonical form for A. This is a table T which is unique for the isomorphism type of A.
AutomorphismGroup(A) A
returns the automorphism group of A as a subgroup of GL(dim(A),F).
The modular group algebra FG of a finite p-group G is not nilpotent, as it contains a unit. However, the augementation ideal A of FG is nilpotent and this is used in all computations with FG in this package.
ModularGroupAlgebra(G) A
returns the modular group algebra FG for G.
AugmentationIdeal(FG) A
returns the augmentation ideal of the group algebra FG.
TableByPowerSeriesOfAug(FG) A
returns a structure constants table for the augmentation ideal of FG
with respect to a power basis of this augmentation ideal. Note that this
method is usually significantly faster than TableByPowerSeries(I)
where
I is the augmentation ideal of FG, as the power series of the
augmentation ideal of a modular group algebra can be determined from the
Jennings series of G.
CanoFormOfAugIdeal(FG) F
returns the canonical form of the augmentation ideal of FG using the
TableByPowerSeriesOfAug(FG)
.
AutomorphismGroupOfAugIdeal(FG) F
returns the automorphism group of the augmentation ideal of FG using
the TableByPowerSeriesOfAug(FG)
.
CanonicalForm(FG) A
returns a canonical form for FG. This is a table T which is unique
for the isomorphism type of FG as algebra over F. This function is
based on CanoFormOfAugIdeal(FG)
.
AutomorphismGroup(FG) A
returns the automorphism group of FG as a subgroup of the general
linear group of dimension dim(FG) over F. This function is based
on AutomorphismGroupOfAugIdeal(FG)
.
A major application of the methods in this package has been the checking of the modular isomorphism problems for the groups of order dividing 28 and 36. This section contains the functions used for this purpose.
BinsByGT( p, n ) F
returns a partion of the list [1..NumberSmallGroups(pn)] into sublists so that the modular group algebras of two groups SmallGroup(pn, i) and SmallGroup(pn, j) can not be isomorphic if i and j are in different lists. The function BinsByGT uses various group theoretic invariants to split the groups of order pn in bins.
CheckBin( p, n, k, bin ) F
For i inbin let Gi denote SmallGroup(pn, i) and let Ai be the augementation ideal of F Gi. This function computes and compares the canonical forms of the algebras Ai / Aij for i in bin and increasing j in{1, ..., k+1}.
At each level j it splits the current bins into sub-bins according to the different canonical forms of Ai/Aij. Bins of length 1 are then discarded.
The function returns if no further bins are available or if j=k+1 is reached. In the later case the function returns the remaining bins.
We compute the automorphism group and a canonical form for the modular group algebra of the dihedral group of order 8 with three different methods.
Method 1 and 2 just consider the augmentation ideal of the group algebra, with method 2 being faster for this purpose, since it uses the Jennings series of the considered group to determine a table through the power series of the augementation ideal.
Method 3 considers the full group algebra. The underlying functions are based on Method 2.
# take the dihedral group of order 8 and its modular group algebra gap> G := SmallGroup(8, 3); <pc group of size 8 with 3 generators> gap> A := ModularGroupAlgebra(G); <algebra-with-one over GF(2), with 3 generators> # compute the automorphism group and a canonical form of its # augmentation ideal -- Method 1 gap> I := AugmentationIdeal(A); <two-sided ideal in <algebra-with-one of dimension 8 over GF(2)>, (3 generators)> gap> gap> CanonicalForm(I); [ <an immutable 7x7 matrix over GF2>, <an immutable 7x7 matrix over GF2>, <an immutable 7x7 matrix over GF2>, <an immutable 7x7 matrix over GF2>, <an immutable 7x7 matrix over GF2>, <an immutable 7x7 matrix over GF2>, <an immutable 7x7 matrix over GF2> ] gap> AutomorphismGroup(I); <matrix group of size 512 with 9 generators> # compute the automorphism group and a canonical form of its # augmentation ideal -- Method 2 gap> CanoFormOfAugIdeal(A); [ <a 7x7 matrix over GF2>, <a 7x7 matrix over GF2>, <a 7x7 matrix over GF2>, <a 7x7 matrix over GF2>, <a 7x7 matrix over GF2>, <a 7x7 matrix over GF2>, <a 7x7 matrix over GF2> ] gap> AutomorphismGroupOfAugIdeal(A); <matrix group of size 512 with 9 generators> # compute the automorphism group and a canonical form of the # full group algebra -- Method 3 gap> CanonicalForm(A); [ <an immutable 8x8 matrix over GF2>, <an immutable 8x8 matrix over GF2>, <an immutable 8x8 matrix over GF2>, <an immutable 8x8 matrix over GF2>, <an immutable 8x8 matrix over GF2>, <an immutable 8x8 matrix over GF2>, <an immutable 8x8 matrix over GF2>, <an immutable 8x8 matrix over GF2> ] gap> AutomorphismGroup(A); <matrix group of size 512 with 8 generators>
We show how to check the modular isomorphism problem for the groups of order 64. We first use BinsByGT to determine bins and we then check the first of the resulting bins with CheckBin. The fact that CheckBin ends with an empty list of bins shows that all groups are splitted.
gap> bins := BinsByGT(2,6); refine by abelian invariants of group (Sehgal/Ward) 13 bins with 256 groups refine by abelian invariants of center (Sehgal/Ward) 30 bins with 237 groups refine by lower central series (Sandling) 32 bins with 127 groups refine by jennings series (Passi+Sehgal/Ritter+Sehgal) 36 bins with 123 groups refine by conjugacy classes (Roggenkamp/Wursthorn) 16 bins with 36 groups refine by elem-ab subgroups (Quillen) start bin 1 of 16 start bin 2 of 16 start bin 3 of 16 start bin 4 of 16 start bin 5 of 16 start bin 6 of 16 start bin 7 of 16 start bin 8 of 16 start bin 9 of 16 start bin 10 of 16 start bin 11 of 16 start bin 12 of 16 start bin 13 of 16 start bin 14 of 16 start bin 15 of 16 start bin 16 of 16 9 bins with 21 groups [ [ 13, 14 ], [ 18, 19 ], [ 20, 22 ], [ 97, 101 ], [ 108, 110 ], [ 155, 157, 159 ], [ 156, 158, 160 ], [ 173, 176 ], [ 179, 180, 181 ] ] gap> CheckBin(2,6,bins[1]); compute tables through power series determined table for 1 determined table for 2 refine bin weights yields bins [ [ 1, 2 ] ] layer 1 yields bins [ [ 1, 2 ] ] layer 2 yields bins [ [ 1, 2 ] ] layer 3 yields bins [ [ 1, 2 ] ] layer 4 yields bins [ ]
Example manual