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