# janetResolution -- construct a free resolution for a given ideal or module using Janet bases

## Synopsis

• Usage:
C = janetResolution M
• Inputs:
• Outputs:
• C, , a (non-minimal) free resolution of (the module generated by) M

## Description

The computed Janet basis for each homological degree can be extracted with janetBasis.

The sets of multiplicative variables can also be extracted from the Janet basis in each homological degree with multVar.

Note that janetResolution can be combined with resolution: when providing the option 'Strategy => Involutive' to resolution, janetResolution constructs the resolution.

 i1 : R = QQ[x,y,z]; i2 : M = matrix {{x,y,z}}; 1 3 o2 : Matrix R <--- R i3 : C = janetResolution M 1 3 3 1 o3 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o3 : ChainComplex i4 : janetBasis(C, 2) +------+---------+ o4 = || -y ||{z, y, x}| || x || | || 0 || | +------+---------+ || -z ||{z, y, x}| || 0 || | || x || | +------+---------+ || 0 ||{z, y} | || -z || | || y || | +------+---------+ o4 : InvolutiveBasis i5 : multVar(C, 2) o5 = {set {x, y, z}, set {x, y, z}, set {y, z}} o5 : List
 i6 : R = QQ[x,y,z]; i7 : I = ideal(x,y,z); o7 : Ideal of R i8 : res(I, Strategy => Involutive) 1 3 3 1 o8 = R <-- R <-- R <-- R <-- 0 0 1 2 3 4 o8 : ChainComplex

• janetBasis -- compute Janet basis for an ideal or a submodule of a free module
• multVar -- extract the sets of multiplicative variables for each generator (in several contexts)
• invSyzygies -- compute involutive basis of syzygies

## Ways to use janetResolution :

• "janetResolution(Ideal)"
• "janetResolution(InvolutiveBasis)"
• "janetResolution(Matrix)"
• "janetResolution(Module)"

## For the programmer

The object janetResolution is .