# Defining a noncommutative ring

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

We can also create an Ore extension. First define a RingMap with map.

 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