# Singular          ### 7.3.1 betti (plural)

`Syntax:`
`betti (` list_expression `)`
`betti (` resolution_expression `)`
`betti (` list_expression `,` int_expression `)`
`betti (` resolution_expression `,` int_expression `)`
`Type:`
intmat
`Note:`
in the non-commutative case, computing Betti numbers makes sense only if the basering has homogeneous relations. The output of the command can be pretty-printed using `print( , "betti")`, i.e., with "betti" as second argument; see below example.
`Purpose:`
with 1 argument: computes the graded Betti numbers of a minimal resolution of , if denotes the basering and a homogeneous submodule of and the argument represents a resolution of .
The entry d of the intmat at place (i, j) is the minimal number of generators in degree i+j of the j-th syzygy module (= module of relations) of (the 0th (resp. 1st) syzygy module of is (resp. )).The argument is considered to be the result of a `mres` or `nres` command. This implies that a zero is only allowed (and counted) as a generator in the first module.
For the computation `betti` uses only the initial monomials. This could lead to confusing results for a non-homogeneous input.

If the optional second argument is non-zero, the Betti numbers will be minimized.

`Example:`
 ```int i;int N=2; ring r=0,(x(1..N),d(1..N),q(1..N)),Dp; matrix D[3*N][3*N]; for (i=1;i<=N;i++) { D[i,N+i]=q(i)^2; } def W=nc_algebra(1,D); setring W; // this algebra is a kind of homogenized Weyl algebra W; ==> // coefficients: QQ ==> // number of vars : 6 ==> // block 1 : ordering Dp ==> // : names x(1) x(2) d(1) d(2) q(1) q(2) ==> // block 2 : ordering C ==> // noncommutative relations: ==> // d(1)x(1)=x(1)*d(1)+q(1)^2 ==> // d(2)x(2)=x(2)*d(2)+q(2)^2 ideal I = x(1),x(2),d(1),d(2),q(1),q(2); option(redSB); option(redTail); resolution R = mres(I,0); // thus R will be the full length minimal resolution print(betti(R),"betti"); ==> 0 1 2 3 4 5 6 ==> ------------------------------------------------ ==> 0: 1 6 15 20 15 6 1 ==> ------------------------------------------------ ==> total: 1 6 15 20 15 6 1 ==> ```

### Misc 