Home Online Manual
Top
Back: schreyer_lib
Forward: Sres
FastBack:
FastForward:
Up: schreyer_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.2.12.1 s_res

Procedure from library schreyer.lib (see schreyer_lib).

Usage:
s_res(ideal/module M, int len)

Return:
resolution object over basering

Purpose:
compute a non-minimal Schreyer free resolution of M of length at most len via the LiftTree algorithm described in [BMSS].

Note:
If given len is zero then nvars(basering) + 1 is used instead.
This functions is not related to the helpers from this library. This procedure works in only in commutative case.
One can switch on computation protocol and statistic (depending on the build) by setting the prot option.

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)
s_res(M, 0); // Koszul complex
==>  1      3      3      1      
==> R <--  R <--  R <--  R
==> 
==> 0      1      2      3      
==> resolution not minimized yet
==> 
list rs = _; // get syzygies
print(betti(rs, 0), "betti"); // non-minimal betties
==>            0     1     2     3
==> ------------------------------
==>     0:     1     3     3     1
==> ------------------------------
==> total:     1     3     3     1
==> 
print(minres(rs));
==> [1]:
==>    _[1]=x*gen(1)
==>    _[2]=y*gen(1)
==>    _[3]=z*gen(1)
==> [2]:
==>    _[1]=x*gen(2)-y*gen(1)
==>    _[2]=x*gen(3)-z*gen(1)
==>    _[3]=y*gen(3)-z*gen(2)
==> [3]:
==>    _[1]=x*gen(3)-y*gen(2)+z*gen(1)
==> [4]:
==>    _[1]=0
print(betti(rs, 1), "betti"); //minimal betties
==>            0     1     2     3
==> ------------------------------
==>     0:     1     3     3     1
==> ------------------------------
==> total:     1     3     3     1
==> 
See also: Sres; lres; sres.