|
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.
|