[GAP Forum] Help to compare Character values
Jack Schmidt
jack at ms.uky.edu
Wed Nov 25 20:15:38 GMT 2009
On 2009-11-17, at 11:32, pooja singla wrote:
> Dear Forum members,
> I am new to this forum and have not used Gap yet. I need your help in
> answering the following question:
>
> I am looking at representations of the following groups;
>
> A = GL_2(Z/p^Z) and B = GL_2(F_p[t]/t^2) , where p is a prime.
>
> By some abstract theory, I know that these groups have same number of
> conjugacy classes and irreducible representations. Is it possible to check
> by using Gap that whether these groups have same character tables or not? if
> answer is negative for which p? For p =2 magma gives positive answer to
> this question.
>
>
> Regards,
> Pooja.
GAP allows you to construct A as GL(2,Integers mod p^2), but for B it is easier to think of F_p[t]/(t^2) as a 2x2 matrix algebra over F_p generated by t=[0,1;0,0]. Both A and B surject onto GL(2,p) and the kernel is easy to describe. This allows you to write functions to construct very similar generating sets for A and B. I include those functions at the bottom.
For p=2 and p=3 the groups A and B not only have isomorphic character tables, but are actually isomorphic. For p=5, the groups do not have isomorphic character tables.
This can be checked for p=2,3 in a few seconds:
gap> A2:=ImagesSource(IsomorphismPermGroup(gl2p2(2)));;
gap> B2:=ImagesSource(IsomorphismPermGroup(gl2pt(2)));;
gap> fail <> IsomorphismGroups(A2,B2); # are they isomorphic?
true
gap> A3:=ImagesSource(IsomorphismPermGroup(gl2p2(3)));;
gap> B3:=ImagesSource(IsomorphismPermGroup(gl2pt(3)));;
gap> fail <> IsomorphismGroups(A3,B3); # are they isomorphic?
true
The test for p=5 takes significantly longer, but:
gap> A5:=ImagesSource(IsomorphismPermGroup(gl2p2(5)));;
gap> B5:=ImagesSource(IsomorphismPermGroup(gl2pt(5)));;
gap> fail <> IsomorphismGroups(A5,B5); # are they isomorphic? (30 minutes)
false
gap> fail <> TransformingPermutationsCharacterTables(CharacterTable(A5),CharacterTable(B5)); # do they have the same character table? (3 hours)
false
These use the auxiliary functions gl2p2 and gl2pt to construct the groups as matrix groups. The second group B is constructed as a subgroup of GL(4,p).
gl2p2 := function( p )
local bmat, t, gens;
bmat := a -> [ [ ZmodnZObj( a[1], p^2 ), ZmodnZObj( a[2], p^2 ) ], [ ZmodnZObj( a[3], p^2 ), ZmodnZObj( a[4], p^2 ) ] ];
t := p;
gens := List( GeneratorsOfGroup( GL(2,p) ), mat -> bmat( IntVecFFE( Flat( mat ) ) ) );
Add( gens, bmat( [ t^0 + t, 0*t, 0*t, t^0 ] ) );
Add( gens, bmat( [ t^0, 0*t, 0*t, t^0 + t ] ) );
Add( gens, bmat( [ t^0, 1*t, 0*t, t^0 ] ) );
Add( gens, bmat( [ t^0, 0*t, 1*t, t^0 ] ) );
return Group( gens );
end;
gl2pt := function( p )
local bmat, t, gens;
bmat := function( a )
local x;
x := List([1..4],i->List([1..4],j->0));
x{[1..2]}{[1..2]} := a[1];
x{[1..2]}{[3..4]} := a[2];
x{[3..4]}{[1..2]} := a[3];
x{[3..4]}{[3..4]} := a[4];
return x*One(GF(p));
end;
t := [[0,1],[0,0]];
gens := List( GeneratorsOfGroup( GL(2,p) ), mat -> bmat( List( Flat( mat ), e -> e*t^0 ) ) );
Add( gens, bmat( [ t^0 + t, 0*t, 0*t, t^0 ] ) );
Add( gens, bmat( [ t^0, 0*t, 0*t, t^0 + t ] ) );
Add( gens, bmat( [ t^0, 1*t, 0*t, t^0 ] ) );
Add( gens, bmat( [ t^0, 0*t, 1*t, t^0 ] ) );
return Group( gens );
end;
One could also have defined gl2p2 as "p -> GL(2,Integers mod p^2)", but perhaps it is easier to understand the gl2pt function in context.
More information about the Forum
mailing list