# NCPolynomialRing / NCIdeal -- Construct a NCQuotientRing

## Description

This is one way to create a quotient of the tensor algebra modulo some relations.

At this point, one cannot define quotients of quotients.

If the base ring is QQ or a finite field of order p, then Bergman is called to compute a Groebner basis.

If not, then one has a couple of options. The first is to take the defining ideal of the algebra, and provide a Groebner Basis by calling ncGroebnerBasis with the InstallGB flag set to true. Of course, if this generating set is not a Groebner basis, then you will get incorrect results upon calls to functions like basis(ZZ,NCRing).

The alternative is to use the built in commands skewPolynomialRing and oreExtension which has the same effect as above occurring behind the scenes. Just be careful using these commands to create your ring if your base ring is not a field Bergman can work with, as the generating sets created may not be a Groebner basis for the defining ideal (this is more often a problem for oreExtension than skewPolynomialRing).

 i1 : A = QQ{x,y,z} o1 = A o1 : NCPolynomialRing 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 i6 : B = A/I --Calling Bergman for NCGB calculation. Complete! o6 = B o6 : NCQuotientRing i7 : z^2 o7 = yx+xy o7 : B i8 : R = toField(QQ[a]/ideal(a^4+a^3+a^2+a+1)) o8 = R o8 : PolynomialRing i9 : C = skewPolynomialRing(R,a,{x,y,z}) o9 = C o9 : NCQuotientRing i10 : y*x 3 2 o10 = (- a - a - a - 1)xy o10 : C