# Singular

#### D.2.12.2 Sres

Procedure from library `schreyer.lib` (see schreyer_lib).

Usage:
Sres(module M, int len)

Return:
ring, containing a Schreyer resolution

Purpose:
computes a Schreyer resolution of M of length at most len (see the library overview)

Note:
If given len is zero then nvars(basering) + 1 is used instead.

Example:
 ```LIB "schreyer.lib"; ring r; module M = maxideal(1); M; ==> M[1]=x*gen(1) ==> M[2]=y*gen(1) ==> M[3]=z*gen(1) def S = Sres(M, 0); setring S; S; ==> // characteristic : 32003 ==> // number of vars : 3 ==> // block 1 : ordering IS(0) ==> // block 2 : ordering dp ==> // : names x y z ==> // block 3 : ordering C ==> // block 4 : ordering IS(1) RES; ==> [1]: ==> _[1]=0 ==> [2]: ==> _[1]=z*gen(1) ==> _[2]=y*gen(1) ==> _[3]=x*gen(1) ==> [3]: ==> _[1]=z*gen(3)-y*gen(2) ==> _[2]=z*gen(4)-x*gen(2) ==> _[3]=y*gen(4)-x*gen(3) ==> [4]: ==> _[1]=z*gen(7)-y*gen(6)+x*gen(5) ==> [5]: ==> _[1]=0 MRES; ==> MRES[1]=0 ==> MRES[2]=z*gen(1) ==> MRES[3]=y*gen(1) ==> MRES[4]=x*gen(1) ==> MRES[5]=z*gen(3)-y*gen(2) ==> MRES[6]=z*gen(4)-x*gen(2) ==> MRES[7]=y*gen(4)-x*gen(3) ==> MRES[8]=z*gen(7)-y*gen(6)+x*gen(5) ==> MRES[9]=0 kill S; setring r; kill M; def A = nc_algebra(-1,0); setring A; ideal Q = var(1)^2, var(2)^2, var(3)^2; qring SCA = twostd(Q); basering; ==> // characteristic : 32003 ==> // number of vars : 3 ==> // block 1 : ordering dp ==> // : names x y z ==> // block 2 : ordering C ==> // noncommutative relations: ==> // yx=-xy ==> // zx=-xz ==> // zy=-yz ==> // quotient ring from ideal ==> _[1]=z2 ==> _[2]=y2 ==> _[3]=x2 module M = maxideal(1); def S = Sres(M, 2); setring S; S; ==> // characteristic : 32003 ==> // number of vars : 3 ==> // block 1 : ordering IS(0) ==> // block 2 : ordering dp ==> // : names x y z ==> // block 3 : ordering C ==> // block 4 : ordering IS(1) ==> // noncommutative relations: ==> // yx=-xy ==> // zx=-xz ==> // zy=-yz ==> // quotient ring from ideal ==> _[1]=z2 ==> _[2]=y2 ==> _[3]=x2 RES; ==> [1]: ==> _[1]=0 ==> [2]: ==> _[1]=z*gen(1) ==> _[2]=y*gen(1) ==> _[3]=x*gen(1) ==> [3]: ==> _[1]=z*gen(2) ==> _[2]=z*gen(3)+y*gen(2) ==> _[3]=z*gen(4)+x*gen(2) ==> _[4]=y*gen(3) ==> _[5]=y*gen(4)+x*gen(3) ==> _[6]=x*gen(4) ==> [4]: ==> _[1]=z*gen(5) ==> _[2]=z*gen(6)+y*gen(5) ==> _[3]=z*gen(7)+x*gen(5) ==> _[4]=y*gen(6)+z*gen(8) ==> _[5]=z*gen(9)+y*gen(7)+x*gen(6) ==> _[6]=x*gen(7)+z*gen(10) ==> _[7]=y*gen(8) ==> _[8]=y*gen(9)+x*gen(8) ==> _[9]=x*gen(9)+y*gen(10) ==> _[10]=x*gen(10) MRES; ==> MRES[1]=0 ==> MRES[2]=z*gen(1) ==> MRES[3]=y*gen(1) ==> MRES[4]=x*gen(1) ==> MRES[5]=z*gen(2) ==> MRES[6]=z*gen(3)+y*gen(2) ==> MRES[7]=z*gen(4)+x*gen(2) ==> MRES[8]=y*gen(3) ==> MRES[9]=y*gen(4)+x*gen(3) ==> MRES[10]=x*gen(4) ==> MRES[11]=z*gen(5) ==> MRES[12]=z*gen(6)+y*gen(5) ==> MRES[13]=z*gen(7)+x*gen(5) ==> MRES[14]=y*gen(6)+z*gen(8) ==> MRES[15]=z*gen(9)+y*gen(7)+x*gen(6) ==> MRES[16]=x*gen(7)+z*gen(10) ==> MRES[17]=y*gen(8) ==> MRES[18]=y*gen(9)+x*gen(8) ==> MRES[19]=x*gen(9)+y*gen(10) ==> MRES[20]=x*gen(10) ```