Maintenance Issues for the GAP Character Table Library
THOMAS BREUER
Lehrstuhl D für Mathematik
RWTH, 52056 Aachen, Germany
November 24th, 2006
This note collects examples of computations that arose
in the context of maintaining the GAP Character Table Library.
Contents
1 Disproving Possible Character Tables
1.1 A Perfect Pseudo Character Table (November 2006)
1 Disproving Possible Character Tables
I do not know a necessary and sufficient criterion for checking
whether a given matrix together with a list of power maps
describes the character table of a finite group.
Examples of pseudo character tables
(tables which satisfy certain necessary conditions
but for which actually no group exists) have been given in [Gag86].
Another such example is described in
another collection of examples.
The tables in the GAP Character Table Library satisfy the usual tests.
However,
there are table candidates for which these tests are not good enough.
1.1 A Perfect Pseudo Character Table (November 2006)
(This example arose from a discussion with Jack Schmidt.)
Up to version 1.1.3 of the GAP Character Table Library,
the table with identifier "P41/G1/L1/V4/ext2" was not correct.
The problem occurs already in the microfiches
that are attached to [HP89].
In the following, we show that this table is not the character table
of a finite group,
using the GAP library of perfect groups.
Currently we do not know how to prove this inconsistency
alone from the table.
We start with the construction of the inconsistent table;
apart from a little editing,
the following input equals the data formerly stored
in the file data/ctoholpl.tbl of the GAP Character Table Library.
gap> tbl:= rec(
> Identifier:= "P41/G1/L1/V4/ext2",
> InfoText:= Concatenation( [
> "origin: Hanrath library,\n",
> "structure is 2^7.L2(8),\n",
> "characters sorted with permutation (12,14,15,13)(19,20)" ] ),
> UnderlyingCharacteristic:= 0,
> SizesCentralizers:= [64512,1024,1024,64512,64,64,64,64,128,128,64,64,128,
> 128,18,18,14,14,14,14,14,14,18,18,18,18,18,18],
> ComputedPowerMaps:= [,[1,1,1,1,2,3,3,2,3,2,2,1,3,2,16,16,20,20,22,22,18,
> 18,26,26,27,27,23,23],[1,2,3,4,5,6,7,8,9,10,11,12,13,14,4,1,21,22,17,
> 18,19,20,16,15,15,16,16,15],,,,[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,
> 4,1,4,1,4,1,26,25,28,27,23,24]],
> Irr:= 0,
> AutomorphismsOfTable:= Group( [(23,26,27)(24,25,28),(9,13)(10,14),
> (17,19,21)(18,20,22)] ),
> ConstructionInfoCharacterTable:= ["ConstructClifford",[[[1,2,3,4,5,6,7,8,
> 9],[1,7,8,3,9,2],[1,4,5,6,2],[1,2,2,2,2,2,2,2]],[["L2(8)"],["Dihedral",
> 18],["Dihedral",14],["2^3"]],[[[1,2,3,4],[1,1,1,1],["elab",4,25]],[[1,
> 2,3,4,4,4,4,4,4,4],[2,6,5,2,3,4,5,6,7,8],["elab",10,17]],[[1,2],[3,4],[
> [1,1],[-1,1]]],[[1,3],[4,2],[[1,1],[-1,1]]],[[1,3],[5,3],[[1,1],[-1,1]]
> ],[[1,3],[6,4],[[1,1],[-1,1]]],[[1,2],[7,2],[[1,1],[1,-1]]],[[1,2],[8,
> 3],[[1,1],[-1,1]]],[[1,2],[9,5],[[1,1],[1,-1]]]]]],
> );;
gap> ConstructClifford( tbl, tbl.ConstructionInfoCharacterTable[2] );
gap> ConvertToLibraryCharacterTableNC( tbl );;
Suppose that there is a group G, say, with this table.
Then G is perfect since the table has only one linear character.
gap> Length( LinearCharacters( tbl ) );
1
gap> IsPerfectCharacterTable( tbl );
true
The table satisfies the orthogonality relations,
the structure constants are nonnegative integers,
and symmetrizations of the irreducibles decompose
into the irreducibles, with nonnegative integral coefficients.
gap> IsInternallyConsistent( tbl );
true
gap> irr:= Irr( tbl );;
gap> test:= Concatenation( List( [ 2 .. 7 ],
> n -> Symmetrizations( tbl, irr, n ) ) );;
gap> Append( test, Set( Tensored( irr, irr ) ) );
gap> fail in Decomposition( irr, test, "nonnegative" );
false
gap> if ForAny( Tuples( [ 1 .. NrConjugacyClasses( tbl ) ], 3 ),
> t -> not ClassMultiplicationCoefficient( tbl, t[1], t[2], t[3] )
> in NonnegativeIntegers ) then
> Error( "contradiction" );
> fi;
The GAP Library of Perfect Groups contains representatives of the
four isomorphism types of perfect groups of order |G| = 64 512.
gap> n:= Size( tbl );
64512
gap> NumberPerfectGroups( n );
4
gap> grps:= List( [ 1 .. 4 ], i -> PerfectGroup( IsPermGroup, n, i ) );
[ L2(8) 2^6 E 2^1, L2(8) N 2^6 E 2^1 I, L2(8) N 2^6 E 2^1 II,
L2(8) N 2^6 E 2^1 III ]
If we believe that the classification of perfect groups of order |G|
is correct then all we have to do is to show that none of the
character tables of these four groups is equivalent to the given table.
gap> tbls:= List( grps, CharacterTable );;
gap> List( tbls, x -> TransformingPermutationsCharacterTables( x, tbl ) );
[ fail, fail, fail, fail ]
In fact, already the matrices of irreducible characters of the four groups
do not fit to the given table.
gap> List( tbls, t -> TransformingPermutations( Irr( t ), Irr( tbl ) ) );
[ fail, fail, fail, fail ]
Let us look closer at the tables in question.
Each character table of a perfect group of order 64 512
has exactly one irreducible character of degree 63 that takes exactly
the values −1, 0, 7, and 63;
moreover, the value 7 occurs in exactly two classes.
gap> testchars:= List( tbls,
> t -> Filtered( Irr( t ),
> x -> x[1] = 63 and Set( x ) = [ -1, 0, 7, 63 ] ) );;
gap> List( testchars, Length );
[ 1, 1, 1, 1 ]
gap> List( testchars, l -> Number( l[1], x -> x = 7 ) );
[ 2, 2, 2, 2 ]
(Another way to state this is that in each of the four tables t in
question,
there are ten preimage classes of the involution class in the simple
factor group L2(8),
there are eight preimage classes of this class in the factor group
26.L2(8),
and that the unique class in which an irreducible degree 63 character
of this factor group takes the value 7 splits in t.)
In the erroneous table, however,
there is only one class with the value 7 in this character.
gap> testchars:= List( [ tbl ],
> t -> Filtered( Irr( t ),
> x -> x[1] = 63 and Set( x ) = [ -1, 0, 7, 63 ] ) );;
gap> List( testchars, Length );
[ 1 ]
gap> List( testchars, l -> Number( l[1], x -> x = 7 ) );
[ 1 ]
This property can be checked easily for the displayed table stored
in fiche 2, row 4, column 7 of [HP89],
with the name 6L1<>Z^7<>L2(8); V4; MOD 2,
and it turns out that this table is not correct.
Note that these microfiches contain two tables of order 64 512,
and there were three tables in the GAP Character Table Library
that contain origin: Hanrath library in their InfoText
value.
Besides the incorrect table, these library tables are
the character tables of the groups
PerfectGroup( 64512, 1 ) and PerfectGroup( 64512, 3 ),
respectively.
(The matrices of irreducible characters of these tables are equivalent.)
gap> Filtered( [ 1 .. 4 ], i ->
> TransformingPermutationsCharacterTables( tbls[i],
> CharacterTable( "P41/G1/L1/V1/ext2" ) ) <> fail );
[ 1 ]
gap> Filtered( [ 1 .. 4 ], i ->
> TransformingPermutationsCharacterTables( tbls[i],
> CharacterTable( "P41/G1/L1/V2/ext2" ) ) <> fail );
[ 3 ]
gap> TransformingPermutations( Irr( tbls[1] ), Irr( tbls[3] ) ) <> fail;
true
Since version 1.2 of the GAP Character Table Library,
the character table with the Identifier value
"P41/G1/L1/V4/ext2" corresponds to the group
PerfectGroup( 64512, 4 ).
The choice of this group was somewhat arbitrary since the vector system
V4 seems to be not defined in [HP89];
anyhow, this group and the remaining perfect group,
PerfectGroup( 64512, 2 ),
have equivalent matrices of irreducibles.
gap> Filtered( [ 1 .. 4 ], i ->
> TransformingPermutationsCharacterTables( tbls[i],
> CharacterTable( "P41/G1/L1/V4/ext2" ) ) <> fail );
[ 4 ]
gap> TransformingPermutations( Irr( tbls[2] ), Irr( tbls[4] ) ) <> fail;
true
References
- [Bre]
-
T. Breuer, Using table automorphisms for constructing character tables in
GAP, http://www.math.rwth-aachen.de/
~Thomas.Breuer/
ctbllib/doc/
ctblcons.pdf.
- [Gag86]
-
S. M. Gagola, Jr., Formal character tables, Michigan Math. J.
33 (1986), no. 1, 3-10. MR 817904 (86k:20010)
- [HP89]
-
D. F. Holt and W. Plesken, Perfect groups, Oxford Mathematical
Monographs, The Clarendon Press Oxford University Press, New York, 1989, With
an appendix by W. Hanrath, Oxford Science Publications. MR 1025760
(91c:20029)
File translated from
TEX
by
TTH,
version 3.59.
On 30 May 2012, 15:44.