next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
NCAlgebra :: rightKernelBergman

rightKernelBergman -- Methods for computing kernels of matrices over noncommutative rings using Bergman

Synopsis

Description

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

See also

Ways to use rightKernelBergman :