Let M be a matrix with homogeneous entries in an NCRing. If the degrees of the entries of M satisfy certain consistency conditions, one can define a graded homomorphism of free right modules via left multiplication by M. If isHomogeneous(M) returns true, these conditions have been verified for M and M is a valid input for rightKernelBergman. Otherwise, an error is returned stating that M is not homogeneous. To set the isHomogeneous flag to true, use assignDegrees.
For valid inputs, this method computes the first n homogeneous components of the (right) kernel of the homomorphism determined by M. If n is not specified by the user, the default maximum degree is 10. The method returns a minimal set of generators for the kernel in these degrees.
The results of this command are cached in the input matrix M in M.cache#rightKernel, and the maximum degree used in this computation is in M.cache#rightKernelDegreeLimit.
i1 : B = threeDimSklyanin(QQ,{1,1,-1},{x,y,z})
--Calling Bergman for NCGB calculation.
Complete!
o1 = B
o1 : NCQuotientRing
|
i2 : A = ambient B o2 = A o2 : NCPolynomialRing |
i3 : g = -y^3-x*y*z+y*x*z+x^3
3 3
o3 = -y +yxz-xyz+x
o3 : A
|
i4 : C = A/(ideal B + ncIdeal g) --Calling Bergman for NCGB calculation. Complete! o4 = C o4 : NCQuotientRing |
i5 : M3 = ncMatrix {{x,y,z,0}, {-y*z-2*x^2,-y*x,z*x-x*z,x},{x*y-2*y*x,x*z,-x^2,y}, {-y^2-z*x,x^2,-x*y,z}}
o5 = | x y z 0 |
| -y*z-2*x^2 -y*x y^2-2*x*z x |
| -2*y*x+x*y x*z -x^2 y |
| -2*y^2+x*z x^2 -x*y z |
o5 : NCMatrix
|
i6 : assignDegrees(M3,{1,0,0,0},{2,2,2,1})
o6 = | x y z 0 |
| -y*z-2*x^2 -y*x y^2-2*x*z x |
| -2*y*x+x*y x*z -x^2 y |
| -2*y^2+x*z x^2 -x*y z |
o6 : NCMatrix
|
i7 : ker1M3 = rightKernelBergman(M3)
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
o7 = | -z -x y -y*z-x^2 |
| y z x y^2 |
| -x y -z 2*y*x-x*y |
| -2*y^2 -2*x^2 -2*y*x+2*x*y -2*x*y*z |
o7 : NCMatrix
|
i8 : M3*ker1M3 == 0 o8 = true |
i9 : ker2M3 = rightKernelBergman(ker1M3)
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
o9 = | -y x^2 -x*z -x*y |
| x y^2 -y*x+2*x*y -y*z+2*x^2 |
| z -x*y x^2 -x*z |
| 0 -z -y -x |
o9 : NCMatrix
|
i10 : ker1M3*ker2M3 == 0 o10 = true |
i11 : ker3M3 = rightKernelBergman(ker2M3)
--Calling Bergman for NCGB calculation.
Complete!
--Calling Bergman for NCGB calculation.
Complete!
o11 = | 0 -2*y*x -2*y^2+2*x*z -y*x*z+x^3 |
| -y -z -x -x*y |
| -z x y x*z |
| x y -z 0 |
o11 : NCMatrix
|
i12 : ker2M3*ker3M3 == 0 o12 = true |
The object rightKernelBergman is a method function with options.