next | previous | forward | backward | up | top | index | toc | Macaulay2 website
NCAlgebra :: NCPolynomialRing / NCIdeal

NCPolynomialRing / NCIdeal -- Construct a NCQuotientRing



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

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
i6 : B = A/I
--Calling Bergman for NCGB calculation.

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

Ways to use this method: