I have finitely presented nilpotent p-groups with exponenta 5 G = $\langle x1, x2, x3, x4: [x1, x2] = 1, [x3, x4] = 1, [x1, x4] = [x3, x2], [x2, x4] = [x1, x3]^{-2}] \rangle$ and H = $\langle x1, x2, x3, x4: [x1, x2] = 1, [x3, x4] = 1, [x1, x4] = [x3, x2], [x2, x4] = [x1, x3]^{-3}] \rangle$ of order $5^{6}$ and I want to find explicit isomorphism between them. I tried using polycyclic group presentation and it gives isomorphism, but it rewrites generators and relations in power-commutator presentation. I need to know image of generators [x1, x2, x3, x4] of group G. I tried using IsomorphismGroups(G, H)
, but it works too slow.
My code in GAP:
F := FreeGroup("x1", "x2", "x3", "x4");;
r1 := LeftNormedComm([F.1, F.2]);;
r2 := LeftNormedComm([F.3, F.4]);;
r3 := LeftNormedComm([F.1, F.4])*LeftNormedComm([F.2, F.3]);;
r4 := LeftNormedComm([F.2, F.4])*LeftNormedComm([F.1, F.3])^(-2);;
r4_ := LeftNormedComm([F.2, F.4])*LeftNormedComm([F.1, F.3])^(-3);;
r5 := F.1^5;;
r6 := F.2^5;;
r7 := F.3^5;;
r8 := F.4^5;;
r9 := LeftNormedComm([F.1, F.3, F.1]);;
r10 := LeftNormedComm([F.1, F.3, F.2]);;
r11 := LeftNormedComm([F.1, F.3, F.3]);;
r12 := LeftNormedComm([F.1, F.3, F.4]);;
r13 := LeftNormedComm([F.1, F.4, F.1]);;
r14 := LeftNormedComm([F.1, F.4, F.2]);;
r15 := LeftNormedComm([F.1, F.4, F.3]);;
r16 := LeftNormedComm([F.1, F.4, F.4]);;
G := F/[r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16];;
H := F/[r1, r2, r3, r4_, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16];;
Best Answer
First, working with groups as finitely presented groups is usually the slowest way for calculations. For $p$-groups a polycyclic presentation is often more effective. You can use the operation
IsomorphismPcGroup
, or (in the case of $p$-groupsEpimorphismPGroup
, to keep track of elements:Secondly, $p$-group isomorphism, in particular for the given orders, is hard. The most effective way of doing it is probably by using the standard presentation routine from the
anupq
package.This can be done using the function below, that will be added to the next GAP release.
With this we can calculate an isomorphism, and if desired pull back to the original group:
You might prefer your elements shortened if possible. This can be done by first forcing reduction for H, before taking the product of maps:
The new function: