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:
|
Then input the defining relations, and put them in an ideal:
|
|
|
|
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).
|
|
|
|
|
As we can see, x is an element of B.
|
If we define a new ring containing x, x is now part of that new ring
|
|
We can 'go back' to B using the command use(NCRing).
|
|
|
|
Then call the command oreExtension.
|
|
|