# Singular

### 5.1.56 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

If the int_expression k is not zero then the computation stops after k steps and returns a list of modules , 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 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; fres; ideal; int; lres; minres; module; mres; res; sres.