# Identity in a quotient Group

Hello everyone, I have the following groups

F3.<a1,b1,a2,b2,a3,b3> = FreeGroup()
H3 = F3.quotient([a1*b1/a1/b1*a2*b2/a2/b2*a3*b3/a3/b3])


Then I inject the variables to $H3$

H3.inject_variables()


Now when every element that I write have parent $H3$, but when I write the word a1*b1/a1/b1*a2*b2/a2/b2*a3*b3/a3/b3 this does not return the identity of $H3$, although if I put

a1*b1/a1/b1*a2*b2/a2/b2*a3*b3/a3/b3 == H3.one()


this is true. Does anyone know why this happen and how can I get sage to reduce this word to identity of $H3$?

edit retag close merge delete

2

See https://www.gap-system.org/Manuals/do... for underlying algorithms. There is no reducition algorithm that computes normal forms (or equality even!) in arbitrary finitely presented groups, so even the equality test is computed on a best-effort basis. It's not bringing your element in a standard form by default because the system doesn't have an algorithm to do so reliably. Gap might have some functionality, but it looks like this hasn't been exposed on the sage wrapper.

( 2019-01-09 05:21:36 +0100 )edit

Sort by » oldest newest most voted

You can compute a rewriting system by: rewrite = H3.rewriting_system()

Then rewrite.reduce(a1*b1/a1/b1*a2*b2/a2/b2*a3*b3/a3/b3) gives you 1 as expected. But the rewriting system is not confluent by default, and it only has the one rule: a1*b1*a1^-1*b1^-1*a2*b2*a2^-1*b2^-1*a3*b3*a3^-1*b3^-1 ---> 1.

In general, it is not possible to guarantee that the Knuth-Bendix procedure will terminate to produce a confluent rewriting system. This is why the system cannot automatically reduce arbitrary expressions. In fact, it seems that Knuth-Bendix fails to terminate on your example. See the make_confluent() documentation for more information.

more