Compute the direct product of two characters in GAP.

98 Views Asked by At

I have a silly question. Is it possible to compute the direct product of two characters in GAP? More precisely, if $\chi$ is a character of the group $G$ and $\psi$ is a character of the group $H$, is there a function in GAP to compute the character $\chi\times \psi$ of the direct product $G\times H$, where, of course, $(\chi\times\psi)(g,h) = \chi(g)\psi(h)$ for any $(g,h)\in G\times H$.

I looked at https://www.gap-system.org/Manuals/doc/ref/chap72.html but I didn't found anything useful. Thank you in advance!

1

There are 1 best solutions below

0
On BEST ANSWER

There is no predefined function. What you need to do is to take the epimorphisms from $G\times H$ to $G$, respectively $H$, to compute the (fusion) map for classes. E.g. for two groups and two characters:

gap> a:=AlternatingGroup(4);b:=SymmetricGroup(5);
Alt( [ 1 .. 4 ] )
Sym( [ 1 .. 5 ] )
gap> chi:=Irr(a)[4];
Character( CharacterTable( Alt( [ 1 .. 4 ] ) ), [ 3, -1, 0, 0 ] )
gap> psi:=Irr(b)[3];
Character( CharacterTable( Sym( [ 1 .. 5 ] ) ), [ 5, -1, 1, -1, -1, 1, 0 ] )

gap> d:=DirectProduct(a,b);
Group([ (1,2,3), (2,3,4), (5,6,7,8,9), (5,6) ])
gap> epia:=Projection(d,1);
1st projection of Group([ (1,2,3), (2,3,4), (5,6,7,8,9), (5,6) ])
gap> epib:=Projection(d,2);
2nd projection of Group([ (1,2,3), (2,3,4), (5,6,7,8,9), (5,6) ])

gap> cl:=ConjugacyClasses(d);
[ ()^G, (1,4)(2,3)^G, (2,4,3)^G, (2,3,4)^G, (5,6)^G, (1,4)(2,3)(5,6)^G,
  (2,4,3)(5,6)^G, (2,3,4)(5,6)^G, (5,6)(7,8)^G, (1,4)(2,3)(5,6)(7,8)^G,
...
gap> fusa:=List(cl,x->PositionProperty(ConjugacyClasses(a),
> y->ImagesRepresentative(epia,Representative(x)) in y));
[ 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1,
  2, 3, 4 ]
gap> fusb:=List(cl,x->PositionProperty(ConjugacyClasses(b),
> y->ImagesRepresentative(epib,Representative(x)) in y));
[ 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7,
  7, 7, 7 ]

Using the fusion maps you can inflate the characters to characters of the product, and then form their product.

gap> chiinf:=chi{fusa};
[ 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0,
  0, 3, -1, 0, 0 ]
gap> chiinf:=ClassFunction(d,chi{fusa});
ClassFunction( CharacterTable( Group([ (1,2,3), (2,3,4), (5,6,7,8,9), (5,6)
]) ),
[ 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0, 0, 3, -1, 0,
  0, 3, -1, 0, 0 ] )
gap> psiinf:=ClassFunction(d,psi{fusb});
ClassFunction( CharacterTable( Group([ (1,2,3), (2,3,4), (5,6,7,8,9), (5,6)
]) ),
[ 5, 5, 5, 5, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1,
  1, 1, 1, 0, 0, 0, 0 ] )
gap> prod:=chiinf*psiinf;
ClassFunction( CharacterTable( Group([ (1,2,3), (2,3,4), (5,6,7,8,9), (5,6)
]) ),
[ 15, -5, 0, 0, -3, 1, 0, 0, 3, -1, 0, 0, -3, 1, 0, 0, -3, 1, 0, 0, 3, -1,
  0, 0, 0, 0, 0, 0 ] )

If you have only tables, no groups, you similarly need to obtain the fusion maps, e.g. from how you arrange the classes for the direct product.