| ### 5.1.134 res Procedure from library `standard.lib` (see standard_lib). `Syntax:` `res (` ideal_expression`,` int_expression `[,` any_expression `])` `res (` module_expression`,` int_expression `[,` any_expression `])` `Type:` resolution `Purpose:` computes a (possibly minimal) free resolution of an ideal or module using a heuristically chosen method. The second (int) argument (say `k`) specifies the length of the resolution. If it is not positive then `k` is assumed to be the number of variables of the basering. If a third argument is given, the returned resolution is minimized. Depending on the input, the returned resolution is computed using the following methods: quotient rings: `nres` (classical method using syzygies) , see nres. homogeneous ideals and k=0: `lres` (La'Scala's method), see lres. not minimized resolution and (homogeneous input with k not 0, or local rings): `sres` (Schreyer's method), see sres. all other inputs: `mres` (classical method), see mres. `Note:` Accessing single elements of a resolution may require some partial computations to be finished and may therefore take some time. See also betti; fres; hres; ideal; lres; minres; module; mres; nres; resolution; sres. Example:
      ring r=0,(x,y,z),dp;
    ideal i=xz,yz,x3-y3;
    def l=res(i,0); // homogeneous ideal: uses lres
    l;
    ==>  1      3      2
    ==> r <--  r <--  r
    ==>
    ==> 0      1      2
    ==>
    print(betti(l), "betti"); // input to betti may be of type resolution
    ==>            0     1     2
    ==> ------------------------
    ==>     0:     1     -     -
    ==>     1:     -     2     1
    ==>     2:     -     1     1
    ==> ------------------------
    ==> total:     1     3     2
    ==>
    l[2];         // element access may take some time
    ==> _[1]=-x*gen(1)+y*gen(2)
    ==> _[2]=-x2*gen(2)+y2*gen(1)+z*gen(3)
    i=i,x+1;
    l=res(i,0);   // inhomogeneous ideal: uses mres
    l;
    ==>  1      3      3      1
    ==> r <--  r <--  r <--  r
    ==>
    ==> 0      1      2      3
    ==> resolution not minimized yet
    ==>
    ring rs=0,(x,y,z),ds;
    ideal i=imap(r,i);
    def l=res(i,0); // local ring not minimized: uses sres
    l;
    ==>   1       1
    ==> rs <--  rs
    ==>
    ==> 0       1
    ==> resolution not minimized yet
    ==>
    res(i,0,0);     // local ring and minimized: uses mres
    ==>   1       1
    ==> rs <--  rs
    ==>
    ==> 0       1
    ==>

User manual for Singular version 4.4.1, 2025, generated by texi2html.