I'd be interested in doing some computations in quantum groups $ U_q(\mathfrak g)$ that are conceptually simple (``is this element 0"?, and $\mathfrak g = sl_5$), but are somewhat lengthy to do by hand. Is there software available that can do this? (I.e. take an element of the quantum group and reduce it to a PBW basis.) I've done some Googling and asked a couple people who I thought might know, but haven't found an answer. (In particular, the QuantumGroups package by Scott Morrison on KnotAtlas doesn't seem to do reductions to a PBW basis.)

$\begingroup$ I can send you a partial Mathematica notebook that does PBW. $\endgroup$– AHusainApr 21, 2016 at 19:36

$\begingroup$ I am not sure, but I thought that Singular can do computations in quantum groups. $\endgroup$– Peter KravchukApr 22, 2016 at 19:37
2 Answers
There is the package QuaGroup by de Graaf for both GAP and Magma: see QuaGroup. I've used it in both systems and found it to be extremely helpful. Since there's a GAP package, you also have the option of using it inside Sage.
You will potentially want to be careful about exactly which PBW basis you and the computer are working with, of course.

$\begingroup$ Thanks, this was exactly what I was hoping for, and was very helpful! $\endgroup$ May 11, 2016 at 14:46
One very effective tool for automated computation in the positive or negative half of a quantum group is the shuffle algebra realization; see Leclerc's paper (and the references therein) for some of the mathematical details. I don't know of a specific implementation of it off the top of my head, though I'm sure one exists (maybe someone else knows of one) and it isn't too hard to implement yourself. However, since multiplication is based on shuffling words, computation time gets quite long if you consider products with lots of elements. (For instance, the notatalloptimized implementation I wrote for myself starts taking minutes with monomials of 7 or so elements.)

2$\begingroup$ Ha. I almost gave this answer with a link to your website. $\endgroup$ Apr 21, 2016 at 21:05

$\begingroup$ Thanks, this is a very interesting paper that I hadn't seen before! I accepted the other answer because it had a reference for code that was already written, but this was helpful too. $\endgroup$ May 11, 2016 at 14:47