  | ### 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 53#53 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 92#92, if 53#53 denotes the basering and 13#13 a homogeneous submodule of 90#90 and the argument represents a resolution of 92#92. 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 92#92 (the 0th (resp. 1st) syzygy module of 92#92 is 90#90 (resp. 13#13)).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 considered as a field
      ==> // 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
      ==>

User manual for Singular version 4.4.1, 2025, generated by texi2html.