# Singular

#### D.15.22.3 Ssyz

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

Usage:
Ssyz(module M)

Return:
ring, containing a Schreyer resolution

Purpose:
computes a Schreyer resolution of M of length 1 (see the library overview)

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 = Ssyz(M); 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) "Only the first syzygy: "; ==> Only the first syzygy: RES; ==> [1]: ==> _[1]=0 ==> [2]: ==> _[1]=z*gen(1) ==> _[2]=y*gen(1) ==> _[3]=x*gen(1) ==> [3]: ==> _[1]=y*gen(2)-z*gen(3) ==> _[2]=x*gen(2)-z*gen(4) ==> _[3]=x*gen(3)-y*gen(4) MRES; // Note gen(i) ==> MRES[1]=0 ==> MRES[2]=z*gen(1) ==> MRES[3]=y*gen(1) ==> MRES[4]=x*gen(1) ==> MRES[5]=y*gen(2)-z*gen(3) ==> MRES[6]=x*gen(2)-z*gen(4) ==> MRES[7]=x*gen(3)-y*gen(4) kill S; setring r; kill M; module M = 0; def S = Ssyz(M); 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) "Only the first syzygy: "; ==> Only the first syzygy: RES; ==> [1]: ==> _[1]=0 ==> [2]: ==> _[1]=0 ==> [3]: ==> _[1]=gen(2) MRES; ==> MRES[1]=0 ==> MRES[2]=0 ==> MRES[3]=gen(2) ```