<gap-forum@samson.math.rwth-aachen.de>
Stephan Rosebrock <rosebro@math.uni-frankfurt.de> writes:
I don't have much experience in GAP, but I would be intersted in a
function that tests, if there is a homomorphism of a group, given as a
finite presentation, into a given symmetric or alternating group.
I don't have much experience myself but I would like to offer a few
suggestions since the problem of calculating Hom(G,H) for arbitrary
groups G,H is a fundementally important one. First since there is
always a trivial hom from any group to another; I will assume that the
search is for a nontrivial one or perhaps for a monic one; since Stephan
used "into a given ..." instead of "to a given ..." I will assume that
the latter case is the one of interest.
At any rate in the case of the symmetric group there is a systematic way to
find all hom's and a way to extract the monic ones. GAP does have functions
that reduce this problem to a simple combinatorial one : first calculate the
marks of your group using TableOfMarks; then to find all hom's from your group
to the symmetric of degree n you find all possible ways you can add the rows
of the table of marks so the first entry equals n; of this list in the monic
ones n only occurs as the first entry. This is in complete ananlogy of finding
all possible representations (faithful or not) of a given group into GL(n,C)
-- simply replace "table of marks" for "character table" and "degree" for
"dimension". In fact a generic program that takes in a matrix and finds all
possible combination of its rows have n as the first entry and then checks if
n does not occur as another entry will work for both. It would be nice if
someone can write such a program in GAP; in the meantime for low degrees
(or dimenions) calculations by HAND( v3.2 or above ;-) ) are not too difficult:
Here's an example with a group defined by the presentation :
a := AbstractGenerator("a"); b := AbstractGenerator("b"); c := AbstractGenerator("c"); z := AbstractGenerator("z"); AbsGroup1 := Group(a,b,c,z); AbsGroup1.relators := [a^2*z^-1,b^3*z^-1,c^3*z^-1,a*b*c*z^-1,z^2];
The table of marks and character tables are then :
Group1 := OperationCosetsFpGroup(g1,Subgroup(AbsGroup1,[IdWord]));
Marks1 := MatTom( TableOfMarks( Group1 ) );
Charachters1 := CharTable( Group1 ).irreducibles;Marks1; [ [ 24, 0, 0, 0, 0, 0, 0 ], [ 12, 12, 0, 0, 0, 0, 0 ], [ 8, 0, 2, 0, 0, 0, 0 ], [ 6, 6, 0, 2, 0, 0, 0 ], [ 4, 4, 1, 0, 1, 0, 0 ], [ 3, 3, 0, 3, 0, 3, 0 ], [ 1, 1, 1, 1, 1, 1, 1 ] ]
All hom's from the group to Symmetric(8) for example correspond to
[ 8, 0, 2, 0, 0, 0, 0 ], M[3] [ 8, 8, 2, 4, 2, 2, 2 ], M[4] + 2 M[7] [ 8, 8, 2, 0, 2, 0, 0 ], 2 M[5] [ 8, 8, 2, 4, 2, 4, 1 ], M[5] + M[6] + M[7] [ 8, 8, 5, 4, 5, 4, 4 ], M[5] + 4 M[7] [ 8, 8, 2, 8, 2, 6, 8 ], 2 M[6] + 2 M[7] [ 8, 8, 5, 8, 5, 8, 5 ], M[6] + 5 M[7] [ 8, 8, 8, 8, 8, 8, 8 ], 8 M[7]
so there are 8 inequivalent hom's; only the first is monic.
Chracters1; [ [ 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, E(3)^2, E(3), 1, E(3)^2, E(3) ], [ 1, 1, E(3), E(3)^2, 1, E(3), E(3)^2 ], [ 2, 0, 1, 1, -2, -1, -1 ], [ 2, 0, E(3), E(3)^2, -2, -E(3), -E(3)^2 ], [ 2, 0, E(3)^2, E(3), -2, -E(3)^2, -E(3) ], [ 3, -1, 0, 0, 3, 0, 0 ] ]
(I was going to do a similar calculations with the character table of the
group for comparison but there are too many possibilities even for GL(3,C)
-- oh well, I should have picked a simpler group!)
Hope this helps.
Jacob Hirbawi
JcbHrb@CERF.net