NCRing -- Type of a noncommutative ring

Description

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 2 o2 = zy+yz-x o2 : A i3 : g = x*z + z*x - y^2 2 o3 = zx-y +xz o3 : A i4 : h = z^2 - x*y - y*x 2 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. Complete! 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. Complete! 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. Complete! o18 = D o18 : NCQuotientRing i19 : generators D o19 = {x, y, z, w, a} o19 : List i20 : numgens D o20 = 5

Methods that use an object of class NCRing :

• basis(ZZ,NCRing) -- Returns a basis of an NCRing in a particular degree.
• "centralElements(NCRing,ZZ)" -- see centralElements -- Finds central elements in a given degree
• coefficientRing(NCRing) -- Returns the base ring of an NCRing
• "envelopingAlgebra(NCRing,Symbol)" -- see envelopingAlgebra -- Create the enveloping algebra
• "freeProduct(NCRing,NCRing)" -- see freeProduct -- Define the free product of two algebras
• generators(NCRing) -- The list of algebra generators of an NCRing
• hilbertSeries(NCRing) -- Computes the Hilbert series of an NCRing
• isCommutative(NCRing) -- Returns whether an NCRing is commutative
• "isExterior(NCRing)" -- see isCommutative(NCRing) -- Returns whether an NCRing is commutative
• "isHomogeneous(NCRing)" -- see isHomogeneous(NCIdeal) -- Determines whether the input defines a homogeneous object
• "ncMap(NCRing,NCRing,List)" -- see ncMap -- Make a map to or from an NCRing
• "ncMap(NCRing,Ring,List)" -- see ncMap -- Make a map to or from an NCRing
• "ncMap(Ring,NCRing,List)" -- see ncMap -- Make a map to or from an NCRing
• "ncMatrix(NCRing,List,List)" -- see ncMatrix -- Create an NCMatrix
• numgens(NCRing) -- The number of algebra generators of an NCRing
• "oppositeRing(NCRing)" -- see oppositeRing -- Creates the opposite ring of a noncommutative ring
• "oreExtension(NCRing,NCRingMap,NCRingElement)" -- see oreExtension -- Creates an Ore extension of a noncommutative ring
• "oreExtension(NCRing,NCRingMap,NCRingMap,NCRingElement)" -- see oreExtension -- Creates an Ore extension of a noncommutative ring
• "oreExtension(NCRing,NCRingMap,NCRingMap,Symbol)" -- see oreExtension -- Creates an Ore extension of a noncommutative ring
• "oreExtension(NCRing,NCRingMap,Symbol)" -- see oreExtension -- Creates an Ore extension of a noncommutative ring
• "oreIdeal(NCRing,NCRingMap,NCRingElement)" -- see oreIdeal -- Creates the defining ideal of an Ore extension of a noncommutative ring
• "oreIdeal(NCRing,NCRingMap,NCRingMap,NCRingElement)" -- see oreIdeal -- Creates the defining ideal of an Ore extension of a noncommutative ring
• "oreIdeal(NCRing,NCRingMap,NCRingMap,Symbol)" -- see oreIdeal -- Creates the defining ideal of an Ore extension of a noncommutative ring
• "oreIdeal(NCRing,NCRingMap,Symbol)" -- see oreIdeal -- Creates the defining ideal of an Ore extension of a noncommutative ring
• "NCRing ** NCRing" -- see qTensorProduct -- Define the (q-)commuting tensor product
• "qTensorProduct(NCRing,NCRing,QQ)" -- see qTensorProduct -- Define the (q-)commuting tensor product
• "qTensorProduct(NCRing,NCRing,RingElement)" -- see qTensorProduct -- Define the (q-)commuting tensor product
• "qTensorProduct(NCRing,NCRing,ZZ)" -- see qTensorProduct -- Define the (q-)commuting tensor product
• "setWeights(NCRing,List)" -- see setWeights -- Set a nonstandard grading for a NCRing.
• "toM2Ring(NCRing)" -- see toM2Ring -- Compute the abelianization of an NCRing and returns a Ring.
• use(NCRing) -- Brings the variables of a particular NCRing in scope

For the programmer

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