Goto Chapter: | Top | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bib | Ind

### 6. Useful properties and functions

#### 6.1 Semisimple group algebras of finite groups

##### 6.1-1 IsSemisimpleZeroCharacteristicGroupAlgebra

`> IsSemisimpleZeroCharacteristicGroupAlgebra`( KG ) | ( property )

The input must be a group ring.

Returns `true` if the input KG is a semisimple group algebra (7.2) 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

##### 6.1-2 IsSemisimpleRationalGroupAlgebra

`> IsSemisimpleRationalGroupAlgebra`( KG ) | ( property )

The input must be a group ring.

Returns `true` if KG is a semisimple rational group algebra (7.2) 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

##### 6.1-3 IsSemisimpleANFGroupAlgebra

`> IsSemisimpleANFGroupAlgebra`( KG ) | ( property )

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

##### 6.1-4 IsSemisimpleFiniteGroupAlgebra

`> IsSemisimpleFiniteGroupAlgebra`( KG ) | ( property )

The input must be a group ring.

Returns `true` if KG is a semisimple finite group algebra (7.2), 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

#### 6.2 Operations over group rings elements

##### 6.2-1 Centralizer

`> Centralizer`( G, x ) | ( operation )

Returns: 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 ])

##### 6.2-2 OnPoints

`> OnPoints`( x, g ) | ( operation )

`> \^`( x, g ) | ( operation )

Returns: 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^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 `Centralizer` (6.2-1).

    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

##### 6.2-3 AverageSum

`> AverageSum`( RG, X ) | ( operation )

Returns: 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

#### 6.3 Cyclotomic classes

##### 6.3-1 CyclotomicClasses

`> CyclotomicClasses`( q, n ) | ( operation )

Returns: A partition of [ 0 .. n ].

The input should be formed by two relatively prime positive integers.

Returns the list q-cyclotomic classes (7.17) 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 ] ]

##### 6.3-2 IsCyclotomicClass

`> IsCyclotomicClass`( q, n, C ) | ( operation )

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 (7.17) 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

#### 6.4 Other commands

##### 6.4-1 InfoWedderga

`> InfoWedderga` | ( info class )

`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> ]

##### 6.4-2 WEDDERGABuildManual

`> WEDDERGABuildManual`( ) | ( function )

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.

##### 6.4-3 WEDDERGABuildManualHTML

`> WEDDERGABuildManualHTML`( ) | ( function )

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.

Top of Book | Previous Chapter | Next Chapter

Goto Chapter: | Top | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bib | Ind

generated by GAPDoc2HTML