next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NCAlgebra :: NCRing

NCRing -- Type of a noncommutative ring


All noncommutative rings have this as an ancestor type. It is the parent of the types NCPolynomialRing and NCQuotientRing.

In addition to defining a ring as a quotient of a NCPolynomialRing, some common ways to create NCRings include skewPolynomialRing, endomorphismRing, and oreExtension.

Let's consider a three dimensional Sklyanin algebra. We first define the tensor algebra:

i1 : A = QQ{x,y,z}

o1 = A

o1 : NCPolynomialRing

Then input the defining relations, and put them in an ideal:

i2 : f = y*z + z*y - x^2

o2 = zy+yz-x

o2 : A
i3 : g = x*z + z*x - y^2

o3 = zx-y +xz

o3 : A
i4 : h = z^2 - x*y - y*x

o4 = z -yx-xy

o4 : A
i5 : I=ncIdeal{f,g,h}

                             2      2      2
o5 = Two-sided ideal {zy+yz-x , zx-y +xz, z -yx-xy}

o5 : NCIdeal

Next, define the quotient ring (as well as try a few functions on this new ring). Note that when the quotient ring is defined, a call is made to Bergman to compute the Groebner basis of I (out to a certain degree, should the Groebner basis be infinite).

i6 : B=A/I
--Calling Bergman for NCGB calculation.

o6 = B

o6 : NCQuotientRing
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 an element of B.

i11 : x

o11 = x

o11 : B

If we define a new ring containing x, x is now part of that new ring

i12 : C = skewPolynomialRing(QQ,(-1)_QQ,{x,y,z,w})
--Calling Bergman for NCGB calculation.

o12 = C

o12 : NCQuotientRing
i13 : x

o13 = x

o13 : C

We can 'go back' to B using the command use(NCRing).

i14 : use B

o14 = B

o14 : NCQuotientRing
i15 : x

o15 = x

o15 : B
i16 : use C

o16 = C

o16 : NCQuotientRing

We can also create an Ore extension. First define a NCRingMap with ncMap.

i17 : sigma = ncMap(C,C,{y,z,w,x})

o17 = NCRingMap C <--- C

o17 : NCRingMap

Then call the command oreExtension.

i18 : D = oreExtension(C,sigma,a)
--Calling Bergman for NCGB calculation.

o18 = D

o18 : NCQuotientRing
i19 : generators D

o19 = {x, y, z, w, a}

o19 : List
i20 : numgens D

o20 = 5

See also

Types of NCRing :

Functions and methods returning an object of class NCRing :

Methods that use an object of class NCRing :

For the programmer

The object NCRing is a type, with ancestor classes Ring < Type < MutableHashTable < HashTable < Thing.