Dear GAP-Forum,
Thierry Dana-Picard asked a question about computing decomposition matrices.
While trying to compute the decomposition matrix with a modular
character table, I got a "surprising" answer:
Here is the gap session (the group is A7, the prime is 5; but I got the same
kind of answer for other primes/other groups):gap> a7m5:=CharTable("A7mod5"); CharTable( "A7mod5" )(some input and output omitted)
gap> reg5:=CharTableRegular(a7,5);
CharTable( "Regular(A7,5)" )
gap> chars5:=Restricted(a7,reg5,a7.irreducibles);(some output omitted)
gap> Decomposition(a7m5.irreducibles,chars5,"nonnegative");
[ [ 1, 0, 0, 0, 0, 0, 0, 0 ], false, false, false, false, false, false,
false, false ]So what happens?
And what can be done in order to get the decomposition matrix?
When dealing with Brauer tables of the GAP table library, one has to be
careful to use also the corresponding ordinary library tables.
So probably the reason for the strange behaviour is the table of A7.
There are at least two possibilities to get a character table with name "A7".
The first is to call 'CharTable( "A7" )', which yields the table as it is
given in the ATLAS of Finite Groups.
The second is to call 'CharTable( "Alternating", 7 )', which yields a table
that is constructed from a generic character table, and for that the
succession of rows and columns differs from that of the ATLAS table.
In both cases, the fusion of conjugacy classes from the 5-regular table to
the table of A7 is used to restrict the characters.
In the example above, apparently the succession of classes in the 5-regular
table does not agree with that in the Brauer table.
With the correct table of A7, the example above looks like this.
(Note that it is not necessary to construct a 5-regular table.)
gap> a7:= CharTable( "A7" ); CharTable( "A7" ) gap> a7mod5:= CharTable( "A7mod5" ); CharTable( "A7mod5" ) gap> chars5:= Restricted( a7, a7mod5, a7.irreducibles );; gap> Decomposition( a7mod5.irreducibles, chars5, "nonnegative" ); [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 1, 1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 1, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]
Using the generic table leads to the reported behaviour also when we
restrict directly to the 5-modular table, because both ordinary tables
have the name "A7".
gap> a7generic:= CharTable( "Alternating", 7 );
CharTable( "A7" )
gap> chars5:= Restricted( a7generic, a7mod5, a7generic.irreducibles );;
gap> Decomposition( a7mod5.irreducibles, chars5, "nonnegative" );
[ [ 1, 0, 0, 0, 0, 0, 0, 0 ], false, false, false, false, false, false,
false, false ]
One more comment on the relation between ordinary and Brauer tables.
GAP constructs a Brauer library table using the underlying ordinary table
and the decomposition matrices, and the Brauer table stores this table
in the component 'ordinary'.
So if one has already the Brauer table, one does not need to call 'CharTable'
to get the corresponding ordinary table.
gap> a7mod5:= CharTable( "A7mod5" ); CharTable( "A7mod5" ); gap> a7mod5.ordinary; CharTable( "A7" )
I hope this helps
Thomas Breuer