##### 7.5.4.0. annfsBMI

Procedure from library `dmod.lib` (see dmod_lib).

Usage:
  annfsBMI(F [,eng,met,us]); F an ideal, eng, met, us optional ints

Return:
  ring

Purpose:
  compute two kinds of Bernstein-Sato ideals, associated to
  f = F[1]*..*F[P], with the multivariate algorithm by Briancon and Maisonobe.

Note:
  activate the output ring with the `setring` command. In this ring,
  - the ideal LD is the annihilator of F[1]^s_1*..*F[P]^s_p,
  - the list or ideal BS is a Bernstein-Sato ideal of a polynomial f = F[1]*..*F[P].
  If eng <>0, `std` is used for Groebner basis computations,
  otherwise, and by default `slimgb` is used.
  If met <0, the B-Sigma ideal (cf. Castro and Ucha,
  'On the computation of Bernstein-Sato ideals', 2005) is computed.
  If 0 < met < P, then the ideal B_P (cf. the paper) is computed.
  Otherwise, and by default, the ideal B (cf. the paper) is computed.
  If us<>0, then syzygies-driven method is used.
  If the output ideal happens to be principal, the list of factors
  with their multiplicities is returned instead of the ideal.
  If printlevel=1, progress debug messages will be printed,
  if printlevel>=2, all the debug messages will be printed.

Example:

    LIB "dmod.lib";
    ring r = 0,(x,y),Dp;
    ideal F = x,y,x+y;
    printlevel = 0;
    // *1* let us compute the B ideal
    def A = annfsBMI(F);    setring A;
    LD; // annihilator
    ==> LD[1]=x*Dx+y*Dy-s(1)-s(2)-s(3)
    ==> LD[2]=x*y*Dy+y^2*Dy-x*s(2)-y*s(2)-y*s(3)
    ==> LD[3]=y^2*Dx*Dy-y^2*Dy^2+y*Dy*s(1)-y*Dx*s(2)+2*y*Dy*s(2)-y*Dx*s(3)+y*Dy*s\
       (3)-s(1)*s(2)-s(2)^2-s(2)*s(3)-s(2)
    BS; // Bernstein-Sato ideal
    ==> [1]:
    ==>    _[1]=s(1)+1
    ==>    _[2]=s(2)+1
    ==>    _[3]=s(3)+1
    ==>    _[4]=s(1)+s(2)+s(3)+2
    ==>    _[5]=s(1)+s(2)+s(3)+3
    ==>    _[6]=s(1)+s(2)+s(3)+4
    ==> [2]:
    ==>    1,1,1,1,1,1
    // *2* now, let us compute B-Sigma ideal
    setring r;
    def Sigma = annfsBMI(F,0,-1); setring Sigma;
    print(matrix(lead(LD))); // compact form of leading
    ==> x*Dx,x*y*Dy,y^2*Dx*Dy
    //  monomials from the annihilator
    BS; // Bernstein-Sato B-Sigma ideal: it is principal,
    ==> [1]:
    ==>    _[1]=s(1)+s(2)+s(3)+2
    ==> [2]:
    ==>    1
    // so factors and multiplicities are returned
    // *3* and now, let us compute B-i ideal
    setring r;
    def Bi = annfsBMI(F,0,3); // that is F[3]=x+y is taken
    setring Bi;
    print(matrix(lead(LD)));   // compact form of leading
    ==> x*Dx,x*y*Dy,y^2*Dx*Dy
    //  monomials from the annihilator
    BS; // the B_3 ideal: it is principal, so factors
    ==> [1]:
    ==>    _[1]=s(3)+1
    ==>    _[2]=s(1)+s(2)+s(3)+2
    ==> [2]:
    ==>    1,1
    // and multiplicities are returned

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