Ken W Smith wrote:
Hi,
I am constructing a database of certain combinatorial subsets of finite groups and I would like to use GAP's Small Group library to provide a standard way of referencing the groups in my list and certain subsets of these groups. But in order to do this, I need code that constructs an explicit isomorphism between a finite group (with a given presentation) and an isomorphic group in the Small Groups library.

I have hundreds of examples like the following. Suppose we have a group, say, G := < x, y, z : x^5 = y^5 = z^4 = [x,y] = z*x*z^-1*x^3 = z*y*z^-1*y^3 >
and a special subset of G, say,
    D = {1, x, x^2, x*y, x*y*z^2, x^-1*y^2*z^3}.
GAP tells me that G is isomorphic to the group [100,11] in the Small Group Library. But now I need an explicit isomorphism from G onto SmallGroup( 100, 11 ) so that I can identify the set D with some subset of Elements( SmallGroup( 100, 11 ) ). Is there a convenient way to do this? (Note that the SmallGroup library views groups of order 100 as having 4 generators ... and I've given a different presentation, using 3 generators.)

    Any help here will be greatly appreciated!

thanks,
Ken

Dear Ken,
You can use the IsomorphismGroups command in GAP to find one isomorphism from G to SmallGroup([100,11]).

gap> F := FreeGroup("x","y","z");
<free group on the generators [ x, y, z ]>

gap> AssignGeneratorVariables(F);
#I  Assigned the global variables [ x, y, z ]

gap> R := [x^5, y^5, y^5, z^4, Comm(x,y), z*x*z^-1*x^3, z*y*z^-1*y^3];
[ x^5, y^5, y^5, z^4, x^-1*y^-1*x*y, z*x*z^-1*x^3, z*y*z^-1*y^3 ]

gap> G := F/R;
<fp group on the generators [ x, y, z ]>

gap> IdGroup(G);
[ 100, 11 ]

gap> H := SmallGroup([100,11]);
<pc group of size 100 with 4 generators>

gap> iso := IsomorphismGroups(G,H);
[ x, y, z ] -> [ f3^2*f4, f4^3, f1*f2*f3^2*f4^2 ]

gap> IsBijective(iso);
true

Regards, Robert F. Morse








_______________________________________________
Forum mailing list
[email protected]
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to