> < ^ From:

< ^ Subject:

Dear Derek,

I have been trying to figure out a convenient way to convert a group

presentation into a monoid presentation in GAP (so that inverses can

be regarded as separate generators). The session below demonstrates that

wouldn't it be possible to simply double the number of generators? For

example, one could call the generators "a", "b", ... and "ai", "bi", ...

for the inverses. Or did I missunderstand your question?

gap> f := FreeGroup( "a", "ai" ); Group( a, ai ) gap> f := f / [ f.1^3, f.1*f.2 ]; Group( a, ai ) gap> Size(f); 3

However, GAP will treat f as group and some functions might use inverses

of the generators. So maybe this is not exactly what you need. What

kind of GAP library functions do you have in mind that you want to apply

to this "monoid"?

gap> Add(G.relators,a*a^-1);

GAP will always reduce abstract words, so that a*a^-1 (for an abstract

generator a) will be the identity. At the moment, there is no way short

of defining two abstract generators to persuade GAP not to reduce a*a^-1.

2) The fp-group functions clearly don't like having the empty word as

a relator. One might reasonably call that a bug.

Yes.

best wishes

Frank

> < [top]