Noncommutative computational package

I am wondering if there is a program which can do simple operations over noncommutative rings, like expand products and substitute one expression for another.

To clarify, consider the following situation. I have two reductions $ab\mapsto 1$ and $ca\mapsto c-1$. If I consider the monomial $cab$ I can reduce it in two ways: $cab=c(ab)=c$ or $cab=(ca)b=(c-1)b=cb-b$. I can combine these computations to arrive at a third reduction $cb\mapsto b+c$.

I'm in a situation where I have upwards of twelve reduction rules, and it gets very complicated doing the reductions. I find myself making small errors. Thus, the need for a machine to do these computations for me.

To make this more precise, is there a program where I can first input a number of reductions, and then second have it work on a monomial and spit out a reduced form?

-
Partly related MO mathoverflow.net/questions/85400/… Symbolic computations with differential operators (universal envelopings i.e. non-commutative variables) ? –  Alexander Chervov Sep 26 '12 at 10:24

You may be satisfied by some noncommutative Gröbner basis programs: I know of the standalone Bergman and the GAP package GBNP.

-
+1. "Bergman" is a very helpful program. –  Vladimir Dotsenko Feb 9 '13 at 22:46

There is this non-commutative algebra package for Mathematica that is quite extensive

It can handle the symbolic computations in the question, among many other things.

-

Magma can certainly deal with that. Not sure about other packages; Singular has been approaching a non-commutative extension for years, but I'm not sure of its status.

-
The singular nc extension is called Plural (of course); it deals only with special classes of noncommutative algebras called G-algebras singular.uni-kl.de/Manual/latest/sing_445.htm#SEC485 –  m_t Sep 27 '12 at 7:47
(The page deals with homogeneous relations, but you can add a new variable $t$, homogenise the relations you want using it, and the add relations saying that $t$ commutes with $a$, $b$ and $c$. Doing this with your relations gives what seems to be infinitely many elements in the (lexicographic) Groebner basis)