> < ^ Date: Wed, 03 Dec 1997 11:53:18 +0100 (MET)
> < ^ From: Frank Luebeck <frank.luebeck@math.rwth-aachen.de >
> < ^ Subject: Re: PermutationCharacter question

Dear Amy,

I'm trying to compute the character for the representation of the action
of a Weyl group on the cosets of a maximal Weyl subgroup. I found
the command
"PermutationCharacter" which seems to do what I want for small groups
but for larger ones gives me the following:

Maybe the CHEVIE package, distributed with GAP-3.4.4, can be helpful
for your kind of problem.

It allows to define quite easily such Weyl groups and Weyl
subgroups. The command 'InductionTable(U,G)' gives you the
decomposition of all irreducible characters of U, induced to G into
irreducible characters of G. You are just interested in the induced
trivial character of U.

The following function 'CoxeterPermutationCharacter' extracts the
information you want. To understand the code in more detail check the
help pages for 'CHEVIE', 'CoxeterGroup', 'ReflectionSubgroup',
'PrintDynkinDiagram', 'PositionId'.

The function 'CoxeterPermutationCharacter' may be also quite efficient
for arbitrary permutation groups W and subgroups U, but I did no
proper tests.

RequirePackage("chevie");
CoxeterPermutationCharacter:=function(W,U)
local cw, cu, it, pos;
cw:=CharTable(W);
cu:=CharTable(U);
it:=InductionTable(U,W);
pos:=PositionId(cu);
return List(it.scalar,a->a[pos])*cw.irreducibles;
end;

# Here is how to use this program.

# This defines a Weyl group of type E_7:
we7:=CoxeterGroup("E",7);

# Now we run through all maximal reflection subgroups:
for i in [1..7] do 
  u:=ReflectionSubgroup(we7,Difference([1..7],[i]));
  PrintDynkinDiagram(u);
  Print(CoxeterPermutationCharacter(we7,u),"\n");
  Print("------------------------------\n\n");
od;

With best regards,
Frank Luebeck


> < [top]