We refer to [Eic08] for background on the algorithms used in this chapter. Throughout the chapter, we assume that F is a finite field.
Let T be a nilpotent table over F. The following function can be used to determine the automorphism group of the algebra described by T. The automorphism group is determined as a subgroup of GL(T.dim, T.fld) given by generators and its order. There is a variation available to determine the automorphism group of a modular group algebra FG, where F is a finite field and G is a p-group.
‣ AutGroupOfTable( T ) | ( function ) |
‣ AutGroupOfRad( FG ) | ( function ) |
In both cases, the automorphism group is described by a record. The matrices in the lists glAutos and agAutos generate together the automorphism group. The matrices in agAutos generate a p-group. The entry size contains the order of the automorphism group.
Let T be a nilpotent table. The following function can be used to determine the canonical form of T if the underlying field of T is finite. The canonical form is a nilpotent table which is unique for the isomorphism type of the algebra defined by T. Again there is a variation available for modular group algebras.
‣ CanonicalFormOfTable( T ) | ( function ) |
‣ CanonicalFormOfRad( FG ) | ( function ) |
The automorphism group of T is determined as a side-product of computing the canonical form. The following functions can be used to return both.
‣ CanoFormWithAutGroupOfTable( T ) | ( function ) |
‣ CanoFormWithAutGroupOfRad( FG ) | ( function ) |
In both cases, these functions return a record with entries cano and auto.
We compute the automorphism group and a canonical form for the modular group algebra of the dihedral group of order 8.
gap> A := GroupRing(GF(2), SmallGroup(8,3));; gap> T := TableByWeightedBasisOfRad(A);; gap> C := CanoFormWithAutGroupOfTable(T);; # check that the canonical form is not equal to T gap> CompareTables(C.cano, T); false # the order of the automorphism group gap> C.auto.size; 512 # the entries of the canonical table as far as they are bounded gap> C.cano.tab; [ [ <a GF2 vector of length 7>, <a GF2 vector of length 7>, [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ], [ <a GF2 vector of length 7>, <a GF2 vector of length 7>, [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ], [ [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ], [ [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ] ], [ [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ] ], [ [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ] ]
generated by GAPDoc2HTML