I guess I am inclined to try to build this thing and see who is interested in it. The ticket you linked is very helpful to me.
I'm interested to know more about your plans for Lie groups and Groups of Lie type.
In some sense it seems to me that the objects I'm really working with are Group schemes defined using a certain presentation. If I have a group scheme I can take real points to get a lie group or points over a finite field to get a finite group of Lie type. On the other hand depending on what one wants to do with the Lie group/FGLT, this might have little to nothing to do with how one wants to think about them.
To add to all this: GAP has already implemented some related objects:
(1) Lie algebras
(http://www.gap-system.org/Manuals/doc/ref/chap64.html,
http://www.gap-system.org/Datalib/lie.html,
http://www.science.unitn.it/~degraaf/sla.html)
I recently looked at Computing in Groups of Lie Type by Cohen, Murray and Taylor. The basic approach to representation and calculation which is taken there is essentially the one I had in mind. Plus they've worked a number of details I thought I would have to work out. It appears that this article was written as the algorithms in question were being implemented in Magma. I wonder firstly whether it would be considered "kosher" to reimplement them in Sage, and secondly whether it would be considered desirable.
Naively, it seems to me that the article would not have been written if the algorithms were to be treated as protected intellectual property. And I'd already stumbled across quite a bit of it independently by following my nose. Still I'm fairly new to programming and have not yet learned the ethos around such things.
If I were going forward with this, I think a reasonable first step would be to equip root systems with the ability to compute a few key integral invariants of roots and pairs of roots. Including:(1) the (normalized integral) norm square (always 1 for short roots, 2 or three for long...)
(2) the largest integer k (given roots a and b) such that a+kb is a root.(3) the smallest integer k (given roots a and b) such that a+kb is a root.
(4) integral structure constants of the Chevalley presentation. These are not uniquely determined by the system, but there is a fairly standard way of selecting them-- described for example in Cohen Murray Taylor or a 1988 article of Gilkey and Seitz-- which depends only on the system, and therefore seems to me like a method which should live in class "root system."
Awesome. Thank you!Out of curiosity is there a reason .norm_squared() doesn't just divide by 2 for us?