# [GAP Forum] Encode Homomorphism Between Groups

Alexander Hulpke hulpke at me.com
Tue Jan 26 05:24:42 GMT 2010

Dear Forum,

> The semidirect product group G is Q |x S, where Q = Z, the integers
> (i.e., the free group on 1 generator), P = SL(2,5), and S = P_1*P_2*P_3
> (three copies of P). (I have successfully coded the groups into GAP.)
>
> Now, the matrices A = [[0 1][4 0]] and B = [[0 1][4 1]] (row vectors) in
> SL(2,5) have the property that \Xi(A) is not equal to B or B^{-1} for
> any \Xi \in Aut(P). (This result can be proven using the Jordan normal
> forms of A and B, or verified directly using Maple, e.g., and the fact
> that Aut(P) is isomorphic to PGL(2,5).)
>
> Let A_2 be the copy of A in P_2 and A_3 be the copy of A in P_3, and
> similarly for B_@ and B_3.
>
> An automorphism \phi of S can be defined by setting \phi(X_1) =
> (A_1A_2)^{-1}X_1(A_1A_2) for X_! in P_1 and \phi(X_2) = X_2 and
> \phi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3.
>
> Similarly, an automorphism \psi of S can be defined by setting \psi(X_1)
> = (B_1B_2)^{-1}X_1(B_1B_2) for X_! in P_1 and \psi(X_2) = X_2 and
> \psi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3.
>
> Now, I wish to create a homomorphism \Phi: Q -> Aut(S) by sending
> \Phi(q) = \phi^q (\phi composed with itself q times) and \Psi: Q -> S by
> sending \Psi(q) = \psi^q (\psi composed with itself q times).

This is (see below) not yet a full solution, but it might help you further:

Firstly, as you get the FP group anyhow from a routine, the cost of using *your* generators A and B is neglegible. (This holds for SL(2,5), clearly for other groups there can be a substantial benefit for some generators).

f:=GF(5);
A:=[[0,1],[4,0]]*One(f);
B:=[[0,1],[4,1]]*One(f);
SL25:=Group(A,B);
# ensure p fgenerators correspond to A,B
fphom:=IsomorphismFpGroupByGenerators(SL25,[A,B]);
SLfp:=Image(fphom);
S:=FreeProduct(SLfp,SLfp,SLfp);

Now the generators of S are simply A1,B1 etc. This makes creating phi and psi easy.

gens:=GeneratorsOfGroup(S);
# now gens[1,2] are the first copy etc.
A1:=gens[1];
B1:=gens[2];
A2:=gens[3];
B2:=gens[4];
phi:=GroupHomomorphismByImagesNC(S,S,gens,
[(A1*A2)^-1*gens[1]*A1*A2,
(A1*A2)^-1*gens[2]*A1*A2,
gens[3],gens[4],gens[5],gens[6]]);
SetIsBijective(phi,true);
psi:=GroupHomomorphismByImagesNC(S,S,gens,
[(B1*B2)^-1*gens[1]*B1*B2,
(B1*B2)^-1*gens[2]*B1*B2,
gens[3],gens[4],gens[5],gens[6]]);
SetIsBijective(psi,true);

Here I'm using GroupHomomorphismByImagesNC' simply to have the system trust me that this is really a homomorphism. (Otherwise it would have to check whether the generator images fulfill the relators, which would force it into solving the word problem for S, something that is not yet implemented. Similarly I'm telling the system that both maps really *are* automorphisms.

Constructing the homomorphisms from Q now is easy:
Q:=FreeGroup(1);
phihom:=GroupHomomorphismByImages(Q,Group(phi),[Q.1],[phi]);
psihom:=GroupHomomorphismByImages(Q,Group(psi),[Q.1],[psi]);

Well, now for the bad news: There currently is no method for SemidirectProduct' for fp groups. This is not a fundamental obstacle, so far just nobody wanted to construct them. Indeed, it is rather easy to write down a presentation by taking presentations for Q and S and simply adding the appropriate conjugation relations. Let me know if you need help with this.

Best wishes,

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