kbsemi example which works in 4.11 but enters infinite loop in 4.12
The following code worked in 4.11, but seems to enter an infinite loop in 4.12.
The first commit where this is broken is 65ca9e6d84ec67612b90d40cc82f09063d82ab8f, which was written by @hulpke . I realise that relations over free monoids can always enter an infinite loop in the worst case, but thought it was worth reporting.
F := FreeMonoid("x", "y", "z");
generators := GeneratorsOfMonoid(F);
x := generators[1];
y := generators[2];
z := generators[3];
e := Identity(F);
relations:= [[x^2237, e], [y^2237, e], [z^2237, e],[x^28,y^19*z^9],[y^13,x^13*z^17],[z^42,x^8*y^17],[x*y, y*x], [x*z, z*x], [y*z, z*y]];
G := F/relations;
generators := GeneratorsOfMonoid(G);
x := generators[1];
y := generators[2];
z := generators[3];
e := Identity(G);
elements := Elements(G);
Are you sure it is an infinite loop? The commit just changes lookup, so my guess is that for so large exponents (2237) the new version of lookup used becomes slow.
(Note that the different lookup provides a huge speedup to standard cases of groups)
If someone can determine that indeed it will not terminate let me know and I'll have a look.
Just to confirm that this is not a bug but slower performance on this example (because of the huge exponents). Part is that the older code was kernel while the newer one is only library. Part is the question on how to execute a collection process efficiently.