Macaulay2 » Documentation
Packages » InvolutiveBases :: janetBasis
next | previous | forward | backward | up | index | toc

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

- Usage:
    `J = janetBasis M or J = janetBasis(C,n)`
- Inputs:
  - M, an instance of the type InvolutiveBasis
  - M, an ideal
  - M, a Gröbner basis
  - C, a complex
  - n, an integer
- Outputs:
  - J, an instance of the type InvolutiveBasis

## Description

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

If the arguments for janetBasis are a complex and an integer, where C is the result of either janetResolution or freeResolution 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];

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

    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];

    i7 : M = matrix {{x*y-y^3, x*y^2, x*y-x}, {x, y^2, 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];

    i12 : I = ideal(x,y,z);

    o12 : Ideal of R

    i13 : C = freeResolution(I, Strategy => Involutive)

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

          0      1      2      3      4

    o13 : Complex

    i14 : janetBasis(C, 2)

          +------+---------+
    o14 = || -y ||{z, y, x}|
          ||  x ||         |
          ||  0 ||         |
          +------+---------+
          || -z ||{z, y, x}|
          ||  0 ||         |
          ||  x ||         |
          +------+---------+
          ||  0 ||{z, y}   |
          || -z ||         |
          ||  y ||         |
          +------+---------+

    o14 : InvolutiveBasis

## See also

- janetMultVar -- return table of multiplicative variables for given module elements as determined by Janet division
- pommaretMultVar -- return table of multiplicative variables for given module elements as determined by Pommaret division
- isPommaretBasis -- check whether or not a given Janet basis is also a Pommaret basis
- invReduce -- compute normal form modulo involutive basis by involutive reduction
- invSyzygies -- compute involutive basis of syzygies
- janetResolution -- construct a free resolution for a given ideal or module using Janet bases

## Ways to use janetBasis:

- `janetBasis(Complex,ZZ)`
- `janetBasis(GroebnerBasis)`
- `janetBasis(Ideal)`
- `janetBasis(Matrix)`
- janetBasis(Module) (missing documentation)

## For the programmer

The object janetBasis is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/InvolutiveBases.m2:905:0.