> < ^ From:

< ^ Subject:

Leonard Soicher asked the following question.

I build up a (GAP) presentation P for a finitely presented group G,

by adding generators and relators as necessary to a presentation

which initially has no generators and no relators. While doing so

I store certain words (in a list w) in the generators of the

presentation P constructed so far. No generator of P is deleted

in the process of constructing P. When P is completely constructed,

G:=FpGroupPresentation(P). Now, my question is, how do I obtain the

natural G-images of the words in w?

Internally each presentation keeps a free group of countable infinite rank

and uses the first <n> free generators of this group as presentation

generators, the relators are represented as words in these generators.

`GeneratorsOfPresentation' will always return a list of the currently used

(i.e. the first <n>) generators of the presentation.

Words in these generators are just ordinary words, so one can use

`MappedWord' to map any word in these generators homomorphically into

another group by giving images of the free generators.

Here is an example.

(Probably such an example should be added to the GAP Reference Manual.)

gap> P:= PresentationFpGroup( FreeGroup( 0 ) ); <presentation with 0 gens and 0 rels of total length 0> gap> AddGenerator( P ); #I now the presentation has 1 generators, the new generator is _x1 gap> AddRelator( P, gens[1]^2 ); gap> AddGenerator( P ); #I now the presentation has 2 generators, the new generator is _x2 gap> gens:= GeneratorsOfPresentation( P ); [ _x1, _x2 ] gap> word:= gens[1]*gens[2]; _x1*_x2 gap> AddRelator( P, gens[2]^3 ); gap> AddRelator( P, ( gens[1] * gens[2] )^3 ); gap> g:= FpGroupPresentation( P ); <fp group on the generators [ _x1, _x2 ]> gap> img:= MappedWord( word, gens, GeneratorsOfGroup( g ) ); _x1*_x2 gap> ggens:= GeneratorsOfGroup( g ); [ _x1, _x2 ] gap> ggens = gens; false gap> img in g; true

Thomas Breuer and Alexander Hulpke

> < [top]