[ ii v] resol1 r array of poly ii; string v; << vv >> is a string of variables separated by , [ ii v] resol1 r array of poly ii; array of strings v; << vv >> is an array of variable names. [ ii v w] resol1 r array of poly ii; string v; array w; << w >> is a weight vector. ii may be array of array of poly. You can also give a parameter << d >> to specify the truncation depth of the resolution: [ d ii v] resol1, [d ii v w] resol1 resol1 constructs a resolution which is adapted (strict) to a filtration. So, it is not minimal in general. r = [s0, s1, s2 , s3, ...]. s0 is the groebner basis of ii, s1 is the syzygy of s0, s2 is the syzygy of s1, s3 is the syzygy of s2 and so on. s1 s0 mul ==> 0, s2 s1 mul ==>0, ... For details, see math.AG/9805006 cf. sResolution, tparse, s_ring_..., resol0.cp resol1.withZeroMap returns a resolution with zero maps of the both sides of the resolution. cf. resol1.zeroMapL, resol1.zeroMapR, resol1.withZeroMap.aux resol1.syzlist : global variable to keep the raw output of sResolution. Example 1: [ [( x^3-y^2 ) ( 2 x Dx + 3 y Dy + 6 ) ( 2 y Dx + 3 x^2 Dy) ] (x,y) ] resol1 pmat ; Example 2: [ [( x^3-y^2 ) ( 2 x Dx + 3 y Dy + 6 ) ( 2 y Dx + 3 x^2 Dy) ] (x,y) [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] resol1 pmat ; Example 3: [ [[(2 x Dx + 3 y Dy +6) (0)] [(3 x^2 Dy + 2 y Dx) (0)] [(0) (x^2+y^2)] [(0) (x y )] ] (x,y) [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] resol1 pmat ; Example 4: /resol0.verbose 1 def [ [[(x^2+y^2+ x y) (x+y)] [(x y ) ( x^2 + x y^3)] ] (x,y) [[(x) -1 (Dx) 1 (y) -1 (Dy) 1]]] resol1 pmat ;