next | previous | forward | backward | up | top | index | toc | home

janetBasis -- compute Janet basis for an ideal or a submodule of a free module

Synopsis

Description

If the argument for janetBasis is a matrix or an ideal or a Groebner basis, then J is a Janet basis for (the module generated by) M.

If the arguments for janetBasis are a chain complex and an integer, where C is the result of either janetResolution or resolution called with the optional argument 'Strategy => Involutive', then J is the Janet basis extracted from the n-th differential of C.

i1 : R = QQ[x,y]

o1 = R

o1 : PolynomialRing
i2 : I = ideal(x^3,y^2)

             3   2
o2 = ideal (x , y )

o2 : Ideal of R
i3 : J = janetBasis I;
i4 : basisElements J

o4 = | y2 xy2 x3 x2y2 |

             1       4
o4 : Matrix R  <--- R
i5 : multVar J

o5 = {set {y}, set {y}, set {y, x}, set {y}}

o5 : List
i6 : R = QQ[x,y]

o6 = R

o6 : PolynomialRing
i7 : M = matrix {{x*y-y^3, x*y^2, x*y-x}, {x, y^2, x}}

o7 = | -y3+xy xy2 xy-x |
     | x      y2  x    |

             2       3
o7 : Matrix R  <--- R
i8 : J = janetBasis M;
i9 : basisElements J

o9 = | y3-x xy-x x2y-x2 x3 -x      x2 -x2        0         |
     | 0    x    x2     x2 xy-y2+x y3 x2y-xy2+x2 x3+2x2+y2 |

             2       8
o9 : Matrix R  <--- R
i10 : multVar J

o10 = {set {y}, set {y}, set {y}, set {y, x}, set {y}, set {y}, set {y}, set
      -----------------------------------------------------------------------
      {y, x}}

o10 : List
i11 : R = QQ[x,y,z]

o11 = R

o11 : PolynomialRing
i12 : I = ideal(x,y,z)

o12 = ideal (x, y, z)

o12 : Ideal of R
i13 : C = res(I, Strategy => Involutive)

       1      3      3      1
o13 = R  <-- R  <-- R  <-- R  <-- 0
                                   
      0      1      2      3      4

o13 : ChainComplex
i14 : janetBasis(C, 2)

o14 = InvolutiveBasis{0 => {1} | -y -z 0  |                                         }
                           {1} | x  0  -z |
                           {1} | 0  x  y  |
                      1 => {HashTable{x => 1}, HashTable{x => 1}, HashTable{x => 0}}
                                      y => 1             y => 1             y => 1
                                      z => 1             z => 1             z => 1

o14 : InvolutiveBasis

See also

Ways to use janetBasis :