The Maxima computer algebra system has a package called Affine for doing the calculations implicit in Bergman's diamond lemma for rings. It can be viewed as a kind of noncommutative analogue of Buchberger's algorithm to compute Groebner bases, though it's not guaranteed to terminate.

Affine was written by William Schelter, and was written by him to do the calculations in the paper *Graded Algebras of Global dimension 3*, Adv. Math. 66 (1987), by Schelter and Michael Artin. This is the paper that introduced what are now known as Artin-Schelter regular algebras, which is an area of active research in noncomnmutative ring theory. (Lieven LeBruyn has some reminiscences of Schelter, his work, and the role of Affine in that work at his blog.)

I was interested in using Affine to do similar calculations, but the existing documentation is quite poor. Does anyone know how to use it, or can point me to better documentation? I'm just interested in the most basic application: taking a set of generators and relations for a noncommutative algebra for a field, an ordering on variables, and using Affine to compute what relations I have to add to resolve overlap ambiguities.

In particular, I would like to use it to check the calculations in the paper Artin-Schelter regular algebras of dimension five.