A noncommutative ring is a Ring of subclass FreeAlgebra or FreeAlgebraQuotient.
In addition to defining a ring as a quotient of a FreeAlgebra, some common ways to create noncommutative rings include skewPolynomialRing and oreExtension.
Let's consider a three dimensional Sklyanin algebra. We first define the free algebra on the variables x,y,z:
i1 : A = QQ<|x,y,z|> o1 = A o1 : FreeAlgebra |
Then input the defining relations, and put them in an ideal:
i2 : f = y*z + z*y - x^2 2 o2 = - x + y*z + z*y o2 : A |
i3 : g = x*z + z*x - y^2 2 o3 = x*z - y + z*x o3 : A |
i4 : h = z^2 - x*y - y*x 2 o4 = - x*y - y*x + z o4 : A |
i5 : I = ideal{f,g,h} 2 2 2 o5 = ideal (- x + y*z + z*y, x*z - y + z*x, - x*y - y*x + z ) o5 : Ideal of A |
Next, we will define the quotient ring (as well as try a few functions on this new ring). Note that when the quotient ring is defined, Macaulay2 computes the Groebner basis of I (out to a certain degree, should the Groebner basis be infinite).
i6 : B=A/I o6 = B o6 : FreeAlgebraQuotient |
i7 : generators B o7 = {x, y, z} o7 : List |
i8 : numgens B o8 = 3 |
i9 : isCommutative B o9 = false |
i10 : coefficientRing B o10 = QQ o10 : Ring |
As we can see, $x$ is now an element of the quotient $B$.
i11 : x o11 = x o11 : B |
If we define a new ring containing x, x is now part of that new ring. For example, we can use the following command to define the (-1)-skew polynomial ring on the variables x,y,z,w:
i12 : C = skewPolynomialRing(QQ,(-1)_QQ,{x,y,z,w}) o12 = C o12 : FreeAlgebraQuotient |
i13 : x o13 = x o13 : C |
We can 'go back' to B using the command use(Ring).
i14 : use B o14 = B o14 : FreeAlgebraQuotient |
i15 : x o15 = x o15 : B |
i16 : use C o16 = C o16 : FreeAlgebraQuotient |
i17 : sigma = map(C,C,{y,z,w,x}) o17 = map (C, C, {y, z, w, x}) o17 : RingMap C <--- C |
Then call the command oreExtension.
i18 : D = oreExtension(C,sigma,a) o18 = D o18 : FreeAlgebraQuotient |
i19 : generators D o19 = {x, y, z, w, a} o19 : List |
i20 : numgens D o20 = 5 |