> < ^ Date: Thu, 18 Feb 1993 13:41:57 +0100
> < ^ From: Thomas Breuer <Thomas.Breuer@Math.RWTH-Aachen.DE >
< ^ Subject: Re: Class Multiplication Constants and Character claculation in GAP

Dear Mrs. and Mr. Forum,
in his message of 18 Feb 93 Jacob Hirbawi asks some questions
concerning character tables.

One thing that I wish GAP could do is the direct calculation of character
tables, or better yet a full set of irreducible representation matrices.

In GAP-3.1 both is possible for finite polycyclic groups \$G\$ with the
property that there is an abelian normal subgroup \$N\$ of \$G\$ such that
the factor group \$G/N\$ is supersolvable. The GAP functions in question
are 'MatRepresentationsPGroup' and 'CharTablePGroup'.
The algorithm used is described in

U. Baum. Existenz und effiziente Konstruktion schneller
Fouriertransformationen "uberaufl"osbarer Gruppen.
Dissertation, Rheinische Friedrich Wilhelm Universit"at Bonn, 1991.

(An English version of this was also published in 1992, but at the moment
I don't find where.)

Jacob Hirbawi continues:

I also could not find a routine for calculating class multiplication
constants (or coefficients) from the conjugacy classes of group elements;
this would probably be my starting point in calculating characters;

In GAP-3.2 there will be an implementation of the so-called Dixon-Schneider
method for the computation of character tables of finite groups.
This algorithm in fact does compute class multiplication constants,
and from that the irreducible characters. Alexander Hulpke did this
implementation, and he could compute the tables of some large maximal
subgroups of sporadic simple groups using this program, e.g.,
the 8th maximal subgroup of the Conway group Co1, with structure
\$2^{2+12}:(A_8 x S_3)\$.

To compute the character table of a given group <G> in GAP-3.2 using the
Dixon-Schneider method, one will just call 'CharTable( <G> )'. Also it
will be possible to combine this method with character theoretical tools
that were available already in GAP-3.1.
The algorithm is described in

J.D. Dixon. High speed computations of group characters.
Num. Math. 10, 446-450

and

G.J.A. Schneider. Dixon's Character Table Algorithm Revisited.
J. Symbolic Computation (1990) 9, 601-606.

As for computing the representations of arbitrary groups (i.e., groups
that are not of the type required for 'CharTablePGroup'), we have no
algorithm up to now.

Jacob Hirbawi continues:

oddly enough there is a routine that uses the character tables to get the
class multiplication constants but that's going in the opposite direction
of what I have in mind.

Often it is useful to compute class multiplication constants from character
tables, e.g., if the group is too large for computations. First, the
question whether there is a class C in a group G such that G = CC can be
answered by computing class multiplication constants; for the 26
sporadic simple groups the answer is "yes", this was checked from the
character tables in

J. Neub"user, H. Pahlings, E.Cleuvers. Each sporadic finasig G has a class
C such that CC = G. Abstracts AMS, 6 (34), 1984.

Second, it is often possible to prove that a group is a Galois group over
the Rationals using a theorem of Belyi, Fried, Matzat, and Thompson.
One part is the inspection of class multiplication coefficient, the other
part requires inspection of maximal subgroups of the given group.
Such calculations can be found in

H. Pahlings, Some Sporadic Groups as Galois Groups.
Rend. Sem. Mat. Univ. Padova, Vol. 79 (1988)

and

H. Pahlings, Some Sporadic Groups as Galois Groups II.
Rend. Sem. Mat. Univ. Padova, Vol. 82 (1989).

Jacob Hirbawi continues:

Anyway here are my questions regarding this issue:

(1) Will version 3.2 have any of the above? or should I consider
writing my own routines with my very limitted expertise in
gap?

(2) If any other user has looked at this before, please pass along
any experiences or suggestions.

(3) As an interim solution, is there a way to identify a user defined
group with a group which the character tables recognize:

>For example here's a group of order 48 which the character tables
>should know:

```a := AbstractGenerator("a");
b := AbstractGenerator("b");
c := AbstractGenerator("c");
z := AbstractGenerator("z");
group4a := Group(a,b,c,z);
group4a.relators := [a^2*z^-1,b^3*z^-1,c^4*z^-1,a*b*c*z^-1,z^2];
group4p:=OperationCosetsFpGroup(group4a,Subgroup(group4a,[IdWord]));
```

>How do identify group4p to CharTable. (PS. I happen to know for this
>particular case but in general is this doable?)

(4) When will the next version be released?

As already said, the answer to the first part of (1) is "yes".

Question (3) addresses a more general problem: In GAP-3.1 there was no
very close connection between character tables and groups, dealing with
character tables was mainly talking about groups, not working with groups.
But of course one wants to deal with both the group and its table in many
situations. When the table was computed from the group in GAP, there is
no problem, since the ordering of conjugacy classes in table and group are
the same. But if one has a group, and wants to identify its classes
with the columns of a given library table (e.g., one contained in the
ATLAS of finite groups), this is not supported by GAP. For some series
of groups there are generic character tables in GAP, and the parameters
allow to identify classes and characters. In the future these parameters
will be added to the library tables belonging to such a series.

The answer to (4) is "tomorrow".

The second message of Jacob Hirbawi tells about a problem with library
tables. He writes

While we're on the subject of group characters; there seems to be
a mistake in the characters of 2.S4 . In case anyone is wondering
this all relates to John McKay's recent post on sci.math regarding
the link between the finite dicyclic groups <2,3,3>=SL(2,3),
<2,3,4>=2.S4, <2,3,5>=2.A5 and the exceptional Lie algebras E6,E7,E8.

```gap> CharTable("2.S4");
....
irreducibles :=
[ [ 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, -1, -1, -1, 1, 1 ],
[ 2, 2, 2, 0, 0, 0, -1, -1 ], [ 3, 3, -1, 1, -1, -1, 0, 0 ],
[ 4, -4, 0, 0, 0, 0, 1, -1 ],
[ 2, -2, 0, 0, E(8)+E(8)^3, -E(8)-E(8)^3, -1, 1 ],
[ 2, -2, 0, 0, -E(8)-E(8)^3, E(8)+E(8)^3, -1, 1 ],
[ 3, 3, -1, -1, 1, 1, 0, 0 ] ],
....
```

I could not duplicate John's constructions with the above characters
but using the table below everything seems to fit nicely:

```[ [ 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, -1, -1, -1, 1, 1 ],
[ 2, 2, 2, 0, 0, 0, -1, -1 ], [ 3, 3, -1, 1, -1, -1, 0, 0 ],
[ 4, -4, 0, 0, 0, 0, 1, -1 ],
[ 2, -2, 0, 0, E(8)^3+E(8)^5, -E(8)^3-E(8)^5, -1, 1 ],
[ 2, -2, 0, 0, -E(8)^3-E(8)^5, E(8)^3+E(8)^5, -1, 1 ],
[ 3, 3, -1, -1, 1, 1, 0, 0 ] ],
```

both tables pass the TestCharacterTable tests!

Both lists of irreducible characters belong to character tables of groups
of structure 2.S4, so orthogonality relations are satisfied. The table with
name "2.S4" in the table library is one of them, namely the table of the
involution centralizer in the Mathieu group M11. The other table is that
of an isoclinic group, which can be got in GAP using the following
commmands.

```gap> t:= CharTable( "2.S4" );;
gap> DisplayCharTable( t );
2.S4
```
```2  4  4  3  2   3   3  1  1
3  1  1  .  .   .   .  1  1
```
```   1a 2a 4a 2b  8a  8b 3a 6a
2P 1a 1a 2a 1a  4a  4a 3a 3a
3P 1a 2a 4a 2b  8a  8b 1a 2a
```
```X.1   1  1  1  1   1   1  1  1
X.2   1  1  1 -1  -1  -1  1  1
X.3   2  2  2  .   .   . -1 -1
X.4   3  3 -1  1  -1  -1  .  .
X.5   4 -4  .  .   .   .  1 -1
X.6   2 -2  .  .   A  -A -1  1
X.7   2 -2  .  .  -A   A -1  1
X.8   3  3 -1 -1   1   1  .  .

A = E(8)+E(8)^3
= ER(-2) = i2
gap> iso:= CharTableIsoclinic( t );;
gap> DisplayCharTable( iso );
Isoclinic(2.S4)
```
```2  4  4  3  2   3   3  1  1
3  1  1  .  .   .   .  1  1
```
```   1a 2a 4a 4b  8a  8b 3a 6a
2P 1a 1a 2a 2a  4a  4a 3a 3a
3P 1a 2a 4a 4b  8b  8a 1a 2a
```
```X.1   1  1  1  1   1   1  1  1
X.2   1  1  1 -1  -1  -1  1  1
X.3   2  2  2  .   .   . -1 -1
X.4   3  3 -1  1  -1  -1  .  .
X.5   4 -4  .  .   .   .  1 -1
X.6   2 -2  .  .   A  -A -1  1
X.7   2 -2  .  .  -A   A -1  1
X.8   3  3 -1 -1   1   1  .  .

A = -E(8)+E(8)^3
= -ER(2) = -r2
```

At the moment, the function 'CharTableIsoclinic' does this job only for
tables with underlying group of structure 2.G.2, as in this example.
Note that not only the characters may be different but also the power
maps.

Clearly it is a problem to access tables via names that do not uniquely
determine the group but this is the most convenient way to deal with the
tables that occur in the ATLAS of finite groups which serves as standard
for the table names.

Best wishes
Thomas Breuer
(sam@ernie.math.rwth-aachen.de)

> < [top]