Useful properties and functions
Semisimple group algebras of finite groups
The input must be a group ring.

Returns true if the input KG is a semisimple group algebra () over a field of characteristic zero (that is if G is finite), and false otherwise.
gap> CG:=GroupRing( GaussianRationals, DihedralGroup(16) );; gap> IsSemisimpleZeroCharacteristicGroupAlgebra( CG ); true gap> FG:=GroupRing( GF(2), SymmetricGroup(3) );; gap> IsSemisimpleZeroCharacteristicGroupAlgebra( FG ); false gap> f := FreeGroup("a"); <free group on the generators [ a ]> gap> Qf:=GroupRing(Rationals,f); <algebra-with-one over Rationals, with 2 generators> gap> IsSemisimpleZeroCharacteristicGroupAlgebra(Qf); false
The input must be a group ring.

Returns true if KG is a semisimple rational group algebra () and false otherwise.
gap> QG:=GroupRing( Rationals, SymmetricGroup(4) );; gap> IsSemisimpleRationalGroupAlgebra( QG ); true gap> CG:=GroupRing( GaussianRationals, DihedralGroup(16) );; gap> IsSemisimpleRationalGroupAlgebra( CG ); false gap> FG:=GroupRing( GF(2), SymmetricGroup(3) );; gap> IsSemisimpleRationalGroupAlgebra( FG ); false
The input must be a group ring.

Returns true if KG is the group algebra of a finite group over a subfield of a cyclotomic extension of the rationals and false otherwise.
gap> IsSemisimpleANFGroupAlgebra( GroupRing( NF(5,[4]) , CyclicGroup(28) ) ); true gap> IsSemisimpleANFGroupAlgebra( GroupRing( GF(11) , CyclicGroup(28) ) ); false
The input must be a group ring.

Returns true if KG is a semisimple finite group algebra (), that is a group algebra of a finite group G over a field K of order coprime with the order of G, and false otherwisse.
gap> FG:=GroupRing( GF(5), SymmetricGroup(3) );; gap> IsSemisimpleFiniteGroupAlgebra( FG ); true gap> KG:=GroupRing( GF(2), SymmetricGroup(3) );; gap> IsSemisimpleFiniteGroupAlgebra( KG ); false gap> QG:=GroupRing( Rationals, SymmetricGroup(4) );; gap> IsSemisimpleFiniteGroupAlgebra( QG ); false
Operations over group rings elements
A subgroup of a group G.
The input should be formed by a finite group G and an element x of a group ring FH whose underlying group H contains G as a subgroup.

Returns the centralizer of x in G.

This operation adds a new method to the operation that already exists in &GAP;.
gap> D16 := DihedralGroup(16); <pc group of size 16 with 4 generators> gap> QD16 := GroupRing( Rationals, D16 ); <algebra-with-one over Rationals, with 4 generators> gap> a:=QD16.1;b:=QD16.2; (1)*f1 (1)*f2 gap> e := PrimitiveCentralIdempotentsByStrongSP( QD16)[3];; gap> Centralizer( D16, a); Group([ f1, f4 ]) gap> Centralizer( D16, b); Group([ f2 ]) gap> Centralizer( D16, a+b); Group([ f4 ]) gap> Centralizer( D16, e); Group([ f1, f2 ])
An element of a group ring.
The input should be formed by an element x of a group ring FG and an element g in the underlying group G of FG.

Returns the conjugate x^g = g^{-1} x g of x by g. Usage of x&circum;g produces the same output.

This operation adds the new method to the operation that already exists in &GAP;.

The following example is a continuation of the example from the description of .

gap> List(D16,x->a^x=a); [ true, true, false, false, true, false, false, true, false, false, false, false, false, false, false, false ] gap> List(D16,x->e^x=e); [ true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ] gap> ForAll(D16,x->a^x=a); false gap> ForAll(D16,x->e^x=e); true
An element of a group ring.
The input must be composed of a group ring RG and a finite subset X of the underlying group G of RG. The order of X must be invertible in the coefficient ring R of RG.

Returns the element of the group ring RG that is equal to the sum of all elements of X divided by the order of X.

If X is a subgroup of G then the output is an idempotent of RG which is central if and only if X is normal in G.

gap> G:=DihedralGroup(16);; gap> QG:=GroupRing( Rationals, G );; gap> FG:=GroupRing( GF(5), G );; gap> e:=AverageSum( QG, DerivedSubgroup(G) ); (1/4)*<identity> of ...+(1/4)*f3+(1/4)*f4+(1/4)*f3*f4 gap> f:=AverageSum( FG, DerivedSubgroup(G) ); (Z(5)^2)*<identity> of ...+(Z(5)^2)*f3+(Z(5)^2)*f4+(Z(5)^2)*f3*f4 gap> G=Centralizer(G,e); true gap> H:=Subgroup(G,[G.1]); Group([ f1 ]) gap> e:=AverageSum( QG, H ); (1/2)*<identity> of ...+(1/2)*f1 gap> G=Centralizer(G,e); false gap> IsNormal(G,H); false
Cyclotomic classes
A partition of [ 0 .. n ].
The input should be formed by two relatively prime positive integers.

Returns the list q-cyclotomic classes () modulo n.
gap> CyclotomicClasses( 2, 21 ); [ [ 0 ], [ 1, 2, 4, 8, 16, 11 ], [ 3, 6, 12 ], [ 5, 10, 20, 19, 17, 13 ], [ 7, 14 ], [ 9, 18, 15 ] ] gap> CyclotomicClasses( 10, 21 ); [ [ 0 ], [ 1, 10, 16, 13, 4, 19 ], [ 2, 20, 11, 5, 8, 17 ], [ 3, 9, 6, 18, 12, 15 ], [ 7 ], [ 14 ] ]
The input should be formed by two relatively prime positive integers q and n and a sublist C of [ 0 .. n ].

Returns true if C is a q-cyclotomic class () modulo n and false otherwise.
gap> IsCyclotomicClass( 2, 7, [1,2,4] ); true gap> IsCyclotomicClass( 2, 21, [1,2,4] ); false gap> IsCyclotomicClass( 2, 21, [3,6,12] ); true
Other commands
InfoWedderga
is a special Info class for &Wedderga; algorithms. It has 3 levels: 0, 1 (default) and 2. To change info level to k, use command SetInfoLevel(InfoWedderga, k).

In the example below we use this mechanism to see more details about the Wedderburn components each time when we call WedderburnDecomposition.
gap> SetInfoLevel(InfoWedderga, 2); gap> WedderburnDecomposition( GroupRing( CF(5), DihedralGroup( 16 ) ) ); #I Info version : [ [ 1, CF(5) ], [ 1, CF(5) ], [ 1, CF(5) ], [ 1, CF(5) ], [ 2, CF(5) ], [ 1, NF(40,[ 1, 31 ]), 8, [ 2, 7, 0 ] ] ] [ CF(5), CF(5), CF(5), CF(5), ( CF(5)^[ 2, 2 ] ), <crossed product with center NF(40,[ 1, 31 ]) over AsField( NF(40, [ 1, 31 ]), CF(40) ) of a group of size 2> ]
This function is used to build the manual in the following formats: DVI, PDF, PS, HTML and text for online help. We recommend that the user should have a recent and fairly complete &TeX; distribution. Since &Wedderga; is distributed together with its manual, it is not necessary for the user to use this function. Normally it is intended to be used by the developers only. This is the only function of &Wedderga; which requires UNIX/Linux environment.
This fuction is used to build the manual only in HTML format. This does not depend on the availability of the &TeX; installation and works under Windows and MacOS as well. Since &Wedderga; is distributed together with its manual, it is not necessary for the user to use this function. Normally it is intended to be used by the developers only.