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

## Description

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

If the arguments for janetBasis are 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]; 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 {x, y}, 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 {x, y}, set {y}, set {y}, set {y}, set ----------------------------------------------------------------------- {x, y}} o10 : List
 i11 : R = QQ[x,y,z]; i12 : I = 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 = || -y ||{z, y, x}| || x || | || 0 || | +------+---------+ || -z ||{z, y, x}| || 0 || | || x || | +------+---------+ || 0 ||{z, y} | || -z || | || y || | +------+---------+ o14 : InvolutiveBasis

• 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(ChainComplex,ZZ)"
• "janetBasis(GroebnerBasis)"
• "janetBasis(Ideal)"
• "janetBasis(Matrix)"
• janetBasis(Module) (missing documentation)

## For the programmer

The object janetBasis is .