|
5.1.109 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 that some partial
computations have to be finished and may therefore take some time.
See also
betti;
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
→ resolution not minimized yet
→
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
→
|
|