Home Online Manual
Top
Back: homog
Forward: imap
FastBack: Functions and system variables
FastForward: Control structures
Up: Functions
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

5.1.53 hres

Syntax:
hres ( ideal_expression, int_expression )
Type:
resolution
Purpose:
computes a free resolution of an ideal using the Hilbert-driven algorithm.

More precisely, let R be the basering and I be the given ideal. Then hres computes a minimal free resolution of R/I

\begin{displaymath}...\longrightarrow F_2 \buildrel{A_2}\over{\longrightarrow} F...
...}\over{\longrightarrow} R\longrightarrow R/I
\longrightarrow 0.\end{displaymath}

If the int_expression k is not zero then the computation stops after k steps and returns a list of modules $M_i={\tt module} (A_i)$, i=1..k.

list L=hres(I,0); returns a list L of n modules (where n is the number of variables of the basering) such that ${\tt L[i]}=M_i$in the above notation.

Note:
The ideal_expression has to be homogeneous.
Accessing single elements of a resolution may require some partial computations to be finished. Therefore, it may take some time.
Example:
 
  ring r=0,(x,y,z),dp;
  ideal I=xz,yz,x3-y3;
  def L=hres(I,0);
  print(betti(L),"betti");
==>            0     1     2
==> ------------------------
==>     0:     1     -     -
==>     1:     -     2     1
==>     2:     -     1     1
==> ------------------------
==> total:     1     3     2
==> 
  L[2];     // the first syzygy module of r/I
==> _[1]=-x*gen(1)+y*gen(2)
==> _[2]=-x2*gen(2)+y2*gen(1)+z*gen(3)
See betti; ideal; int; lres; minres; module; mres; res; sres.