How can I use GAP to collect words into a normal form?

80 Views Asked by At

I would like to be able to give GAP some relations and a word, and have it collect that word into a normal form (say with collection from the left).

For instance, I would tell GAP $ [x_{2},x_{1}]=x_{3} $ and then have it collect $ x_{2}x_{1} $ to obtain $x_{1} x_{2} x_{3} $.

The reason I am interested in this is that I have some large pc-presentations that are not consistent (but which I would like to be be consistent). I would like to use GAP to do the word collections in the consistency algorithm (Wamsley/Vaughan-Lee), and then to try to use this to inspect where things go wrong so I can try to tweak my presentations.

Here is a small example:

$ G = \langle x_{1},x_{2},x_{3} | x_{1}^{2}=x_{2}, x_{2}^{2}=x_{3}, x_{3}^{2}=1, [x_{2},x_{1}]=x_{3} \rangle $.

Collecting by hand we can see that: $(x_{1}^{2})x_{1}=x_{2}x_{1}=x_{1}x_{2}x_{3}$ but $x_{1}(x_{1}^{2})=x_{1}x_{2}$ and hence we deduce this is not a consistent presentation, and that $x_{3}=1$.

  • Is it possible to do these computations within GAP, and if so, how?
  • Could you demonstrate how one might do the example above, using GAP.

Thank you

1

There are 1 best solutions below

1
On BEST ANSWER

This functionality is in GAP, but it is not exposed through nice functions. You will want to look at the function GROUP_BY_PCGS_FINITE_ORDERS in lib/pcgs.gi and the functions calles by it. In particular GroupByRws in lib/rwsgrp.gi, as well as the confluence test in lib/rwspcgrp.gi. There is a bit of description in the manual https://www.gap-system.org/Manuals/doc/ref/chap46.html#X8581887880556E0C but it will require some trial and error. It would take me a couple of hours to extract a meaningful example, thus the vague answer.