# Singular

### 7.3.18 nres (plural)

`Syntax:`
`nres (` ideal_expression`,` int_expression `)`
`nres (` module_expression`,` int_expression `)`
`Type:`
resolution
`Purpose:`
computes a free resolution of an ideal or module which is minimized from the second module on (by the Groebner basis method).
`Note: Assigning a resolution to a list is the best choice of usage. The resolution may be minimized by using the`
command `minres`. Use the command `betti` to compute Betti numbers.
`Example:`
 ```LIB "ncalg.lib"; def A = makeUsl2(); setring A; // this algebra is U(sl_2) option(redSB); option(redTail); ideal i = e,f,h; i = std(i); resolution F=nres(i,0); F; ==> 1 3 3 1 ==> A <-- A <-- A <-- A ==> ==> 0 1 2 3 ==> resolution not minimized yet ==> list l = F; l; ==> [1]: ==> _[1]=h ==> _[2]=f ==> _[3]=e ==> [2]: ==> _[1]=f*gen(1)-h*gen(2)-2*gen(2) ==> _[2]=e*gen(1)-h*gen(3)+2*gen(3) ==> _[3]=e*gen(2)-f*gen(3)-gen(1) ==> [3]: ==> _[1]=e*gen(1)-f*gen(2)+h*gen(3) // see the exactness at this point: size(ideal(transpose(l[2])*transpose(l[1]))); ==> 0 // see the exactness at this point: size(ideal(transpose(l[3])*transpose(l[2]))); ==> 0 print(betti(l), "betti"); ==> 0 1 2 3 ==> ------------------------------ ==> 0: 1 - 3 1 ==> ------------------------------ ==> total: 1 0 3 1 ==> print(betti(minres(l)), "betti"); ==> 0 1 2 3 ==> ------------------------------ ==> 0: 1 - - - ==> 1: - - 2 1 ==> ------------------------------ ==> total: 1 0 2 1 ==> ```
See ideal (plural); minres (plural); module (plural); mres (plural).