I am wondering whether there is any software package that can compute Groebner bases for noncommutative algebras defined over the field of rational functions $\mathbb{Q}(q)$.

I have tried the GAP package GBNP but I can't seem to even construct $\mathbb{Q}(q)$ in it, much less define an algebra over it.

I have also tried the Mathematica package NCGB released by UC San Diego, but it suggests that I specialize to a rational value of $q$, which is not what I want to do.

Free software is preferred, but I am also interested in finding out if there is proprietary software that can do the job. Does Magma do this?


I think Magma is fairly general in base rings. Following their example:

> Q<q> := FunctionField(Rationals());
> F<x,y,z> := FreeAlgebra(Q,3);
> B := [x^2-q*y*z,q^2*x*y-y*z,y*x*q-z^2,q*y^3-x*z];
> I := ideal<F | B>;
> GroebnerBasis(I);

I am not sure exactly what functionality you want, but if it can handle the basis operations, then Groebner should be possible (though may be slow).

  • $\begingroup$ Previous question on this: mathoverflow.net/questions/108095/… $\endgroup$ – Conder Feb 25 '14 at 23:05
  • $\begingroup$ I've seen that other question, but it didn't address the question of which base fields are allowed. $\endgroup$ – MTS Feb 25 '14 at 23:22

FriCAS (fricas.sf.net) can compute Groebner bases for noncommutative polynomial rings of solvable type defined over large class of base rings. Currently FriCAS provides Ore algebras, but Groebner basis code can accept user domains as long as they stick to provided interface.

Defining general Ore algebras is somewhat bulky, so I gve example for differential operators:

Pdo := PartialDifferentialOperator(Polynomial(Integer), Symbol)
xx := D(x)$Pdo + y*D(z)$Pdo
yy := D(y)$Pdo - x*D(z)$Pdo
L := xx*xx + yy*yy
gPak := NGroebnerPackage(Polynomial(Integer),  IndexedExponents(Symbol), Symbol, Pdo)
groebner([L, xx])$gPak

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.