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. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/0.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/3.ter ... 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. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/5.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/8.ter ... 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 | | | | 2 2 | | -yz-2x -yx y -2xz x | | | | 2 | | -2yx+xy xz -x y | | | | 2 2 | | -2y +xz x -xy z | o5 : NCMatrix |
i6 : assignDegrees(M3,{1,0,0,0},{2,2,2,1}) o6 = | x y z 0 | | | | 2 2 | | -yz-2x -yx y -2xz x | | | | 2 | | -2yx+xy xz -x y | | | | 2 2 | | -2y +xz x -xy z | o6 : NCMatrix |
i7 : ker1M3 = rightKernelBergman(M3) --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/10.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/13.ter ... Complete! --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/14.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/17.ter ... Complete! | 2 | o7 = | -z -x y -yz-x | | | | 2 | | y z x y | | | | -x y -z 2yx-xy | | | | 2 2 | | -2y -2x -2yx+2xy -2xyz | o7 : NCMatrix |
i8 : M3*ker1M3 == 0 o8 = true |
i9 : ker2M3 = rightKernelBergman(ker1M3) --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/18.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/21.ter ... Complete! --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/22.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/25.ter ... Complete! --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/26.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/29.ter ... Complete! --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/30.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/33.ter ... Complete! | 2 | o9 = | -y x -xz -xy | | | | 2 2 | | x y -yx+2xy -yz+2x | | | | 2 | | z -xy x -xz | | | | 0 -z -y -x | o9 : NCMatrix |
i10 : ker1M3*ker2M3 == 0 o10 = true |
i11 : ker3M3 = rightKernelBergman(ker2M3) --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/34.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/37.ter ... Complete! --Calling Bergman for NCGB calculation. --running: bergman -i /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/38.init -on-error exit --silent > /var/folders/46/9b86vqxj4hjcngvy7kd7sb140000gn/T/M2-12647-0/41.ter ... Complete! | 2 3 | o11 = | 0 -2yx -2y +2xz -yxz+x | | | | -y -z -x -xy | | | | -z x y xz | | | | x y -z 0 | o11 : NCMatrix |
i12 : ker2M3*ker3M3 == 0 o12 = true |