Open markuspf opened 5 years ago
Currently when creating pregroup presentations one has to awkwardly give pregroup words as lists of elements:
pg := SmallPregroup(4,2); <pregroup with 4 elements in table rep> gap> pgp := NewPregroupPresentation(pg, [[pg[2],pg[3]],[pg[3],pg[2],pg[2]]]); <pregroup presentation with 3 generators and 2 relators> gap> IsHyperbolic(pgp, 1/6); [ fail, [ [ 2, 0, 0, 0 ], [ 5, 1, 1, 1/3 ], [ 4, 1, 1, 1/3 ], [ 3, 2, 2, 2/3 ], [ 1, 2, 2, 2/3 ], [ 2, 2, 2, 2/3 ] ], [ 5, 1, 1, 1/3 ] ]
Probably pregroup words should be implemented as objects.
I’m not quite sure what implementing them as objects would do, but I agree that the current words are awkward
Colva Roney-Dougal Professor of Pure Mathematics Director of the Centre for Interdisciplinary Research in Computational Algebra Editor of London Mathematical Society Lecture Notes Series Editor of Proceedings A of the Royal Society of Edinburgh Director of Undergraduate Mathematics Admissions
The University of St Andrews is a charity registered in Scotland : No SC013532
I basically want to implement "words over pregroups", hence enabling behaviour similar to handling free groups (following for illustration)
gap> pg := SmallPregroup(4,2);;
gap> x := pg[2];; y := pg[3];;
gap> w := x^5 * y * x^-1;
<pregroup word>
It's not hard to do, I just don't want to get distracted from writing documentation and doing the first go at submitting the package before I go on with word problem solver or polish.
Currently when creating pregroup presentations one has to awkwardly give pregroup words as lists of elements:
Probably pregroup words should be implemented as objects.