> < ^ From:

< ^ Subject:

Dear GAP Forum,

Miha'ly Makai wrote

I'm using GAP 3.4.4. In GAP Manual Section 7.65 GroupId, several

predefined group names are given. Some of them (e.g. SL(d,q), GL(d,q) )

can be used to initialize a variable to the required group. Thus,G := SL(2,7);is sensible but

G := PSL(2,7);is not. Where is a list of the group names which can be used to

initialize a variable? What to do if one needs an unavailable group?

> >From the strings in the `names' component of a record returned by

`GroupId', only those of the form `GL(d,q)' and `SL(d,q)' describe

a valid function call that allows one to create a group isomorphic

with the argument of `GroupId'.

For some other names, there are GAP functions to create a group

with this name, but the names of the GAP functions are usually

longer than the given names of the group.

For example, the functions `CyclicGroup', `DihedralGroup',

`SymmetricGroup', `AlternatingGroup' correspond to names of the

form `m', `Dm', `Sm', `Am'.

Direct products (name `KxH') can be formed with `DirectProduct',

groups with names corresponding to explicitly given presentations

(where the name is `D(p,q)', `G(p^2,q)' etc.) can be created as

finitely presented groups with this presentation.

For central, semidirect and subdiret products the name does in general

not identify the group up to isomorphism, so one has to be careful

with these names.

A group of the type `PSL(d,q)' can be constructed as a factor group

of `SL(d,q)' by its centre, for example via

`Operation( GL(d,q), NormedVectors( GF(q)^d ), OnLines )'.

If one deals with groups from the GAP libraries of groups up to

order 100 or of 2-groups up to order 256, there is a uniform way

to access these groups, without using names.

Namely, these groups can be identified up to isomorphism by the

components `catalogue' and `pGroupId', respectively,

of the record `id' returned by `GroupId'.

A `catalogue' component `[ n, k ]' means that an isomorphic group

can be constructed with `SolvableGroup( n, k )',

and if a component `pGroupId' is bound in `id' then an isomorphic

group can be created either with `TwoGroup( id.size, id.pGroupId )'

or with `ThreeGroup( id.size, id.pGroupId )', depending on whether

`id.size' is a power of 2 or 3.

I hope this is of some help.

Thomas

> < [top]