> < ^ Date: Mon, 03 Mar 1997 09:17:57 +0100
> < ^ From: Richard Rossmanith <richard@maxp03.mathe.uni-jena.de >
> < ^ Subject: Re: GAP question

Dear Bill, dear Gap Forum,

I had the same problem, and probably also other people. What I usually do (and
probably what is more or less the natural thing to do here) is to convert the
group into a isomorphic permutation group with "OperationCosetsFpGroup", and
then define two mutually inverse isomorphisms phi, psi between my original group
g and the permutation group p.

I would solve your example this way:

gap> f:=FreeGroup("x");
Group( x )
gap> x:=f.1;
gap> g:=f/[x^2];
Group( x )
gap> x:=g.1;
gap> p:=OperationCosetsFpGroup(g,TrivialSubgroup(g));
Group( (1,2) )
gap> phi:=GroupHomomorphismByImages(g,p,g.generators,p.generators);
GroupHomomorphismByImages( Group( x ), Group( (1,2) ), [ x ], [ (1,2) ] )
gap> psi:=GroupHomomorphismByImages(p,g,p.generators,g.generators);
GroupHomomorphismByImages( Group( (1,2) ), Group( x ), [ (1,2) ], [ x ] )
gap> IsIsomorphism(phi); IsIsomorphism(psi);
gap> ((x*x*x*x*x*x*x)^phi)^psi;

(This is a strange, but at least canonical GAP says "x".)

Note that this approach does unfortunately not always (but almost) work. Namely
it does not work when one of the generators of g becomes trivial by the
relations you gave. Then this element would be mapped onto the empty permutation
under phi, so GAP seems to throw it out of the set of generators of p. (It
obviously is not needed to generate p. But the generating sets of g and p are
not "compatible" anymore, so you have a harder time defining phi and psi.)

Maybe there's a better way, in this case I would be interested, too.




> < [top]