# [GAP Forum] Use GAP to Compute Hom(G1, G2)?

Alexander Hulpke hulpke at math.colostate.edu
Fri Feb 8 22:37:27 GMT 2008

```Dear GAP Forum,

> I am trying to compute the set of all homomorphisms from a group G1
> [which is the semi-direct product of the integeres Z with the binary
> icosahedral group P (also known as SL(2,5) and the Poincare group)]
> to the group P (the Poincare group again) - Hom(G1, P). This sort of
> problem seems right up GAP's alley.
>
> I have a presentatiion for G1: <z, s, t| s^3(st)^(-2), t^5(st^(-2),
> zs(s^2ts^2t^3z)^(-1), zt(s^5ts^2tz)^(-1)>.

The easiest seems to be to find all quotients of G1 that are
isomorphic to a subgroup of SL(2,5). (There is some redundancy in this
and for bigger cases other methods would be better. However in this
case everything else is far more work for the user.)

gap> f:=FreeGroup("z","s","t");
<free group on the generators [ z, s, t ]>
gap> AssignGeneratorVariables(f);
#I  Assigned the global variables [ z, s, t ]
gap> rels:=[ s^3*t^-1*s^-1*t^-1*s^-1, t^4*s^-1*t^-1*s^-1,
z*s*z^-1*t^-3*s^-2*t^-1*s^-2,
z*t*z^-1*t^-1*s^-2*t^-1*s^-5 ];
[ s^3*t^-1*s^-1*t^-1*s^-1, t^4*s^-1*t^-1*s^-1,
z*s*z^-1*t^-3*s^-2*t^-1*s^-2,
z*t*z^-1*t^-1*s^-2*t^-1*s^-5 ]
gap> G1:=f/rels;
<fp group on the generators [ z, s, t ]>

Careful: This group has no quotient isomorphic to A_5 and thus cannot
have SL(2,5) as quotient. So its probably not the group you want.

Now create SL(2,5) as permutation group (more efficient than matrix
form):

gap> P:=SL(2,5);
SL(2,5)
gap> P:=Image(IsomorphismPermGroup(P));
Group([ (1,2,4,8)(3,6,9,5)(7,12,13,17)(10,14,11,15)(16,20,21,24)
(18,22,19,23),
(1,3,7)(2,5,10)(4,9,13)(6,11,8)(12,16,20)(14,18,22)(15,19,23)
(17,21,24) ])

All subgroups (careful: Only up to conjugacy. We will get
homomorphisms only up to conjugacy as well!)
s:=List(ConjugacyClassesSubgroups(P),Representative);
gap> List(s,Size);
[ 1, 2, 3, 4, 5, 6, 8, 10, 12, 20, 24, 120 ]

Now for each subgroup find the epimorphisms, together they are all
homomorphisms:
gap> q:=List(s,i->GQuotients(G1,i));
[ [ [ z, s, t ] -> [ (), (), () ] ],
[ [ z, s, t ] -> [ (1,4)(2,8)(3,9)(5,6)(7,13)(10,11)(12,17)(14,15)
(16,
21)(18,19)(20,24)(22,23), (), () ] ],
[ [ z, s, t ] -> [ (1,3,7)(2,5,10)(4,9,13)(6,11,8)(12,16,20)
(14,18,22)(15,
19,23)(17,21,24), (), () ] ],
[ [ z, s, t ] -> [ (1,2,4,8)(3,6,9,5)(7,12,13,17)(10,14,11,15)
(16,20,21,
24)(18,22,19,23), (), () ] ],
[ [ z, s, t ] -> [ (3,13,23,21,15)(5,11,20,19,12)(6,10,24,18,17)
(7,22,16,14,
9), (), () ] ],
[ [ z, s, t ] -> [ (1,9,7,4,3,13)(2,6,10,8,5,11)(12,21,20,17,16,24)
(14,19,
22,15,18,23), (), () ] ], [  ],
[ [ z, s, t ] -> [ (1,4)(2,8)(3,7,23,16,15,9,13,22,21,14)
(5,10,20,18,12,6,
11,24,19,17), (), () ] ], [  ], [  ], [  ], [  ] ]
gap> List(q,Length);
[ 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0 ]

Again, this is for the presentation you gave which I think is not the
group you want. In any case these are the commands you need in GAP.

Best,

Alexander Hulpke

-- Colorado State University, Department of Mathematics,
Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA
email: hulpke at math.colostate.edu, Phone: ++1-970-4914288
http://www.math.colostate.edu/~hulpke

```