# Singular          ### 7.5.2 bfun_lib

Library:
bfun.lib
Purpose:
Algorithms for b-functions and Bernstein-Sato polynomial
Authors:
Daniel Andres, daniel.andres@math.rwth-aachen.de
Viktor Levandovskyy, levandov@math.rwth-aachen.de

Overview:
Given a polynomial ring R = K[x_1,...,x_n] and a polynomial F in R, one is interested in the global b-function (also known as Bernstein-Sato polynomial) b(s) in K[s], defined to be the non-zero monic polynomial of minimal degree, satisfying a functional identity L * F^{s+1} = b(s) F^s, for some operator L in D[s] (* stands for the action of differential operator)
By D one denotes the n-th Weyl algebra
K<x_1,...,x_n,d_1,...,d_n | d_j x_j = x_j d_j +1>.
One is interested in the following data:
- Bernstein-Sato polynomial b(s) in K[s],
- the list of its roots, which are known to be rational
- the multiplicities of the roots.

There is a constructive definition of a b-function of a holonomic ideal I in D (that is, an ideal I in a Weyl algebra D, such that D/I is holonomic module) with respect to the given weight vector w: For a polynomial p in D, its initial form w.r.t. (-w,w) is defined as the sum of all terms of p which have maximal weighted total degree where the weight of x_i is -w_i and the weight of d_i is w_i. Let J be the initial ideal of I w.r.t. (-w,w), i.e. the K-vector space generated by all initial forms w.r.t (-w,w) of elements of I. Put s = w_1 x_1 d_1 + ... + w_n x_n d_n. Then the monic generator b_w(s) of the intersection of J with the PID K[s] is called the b-function of I w.r.t. w. Unlike Bernstein-Sato polynomial, general b-function with respect to arbitrary weights need not have rational roots at all. However, b-function of a holonomic ideal is known to be non-zero as well.

References:
[SST] Saito, Sturmfels, Takayama: Groebner Deformations of Hypergeometric Differential Equations (2000),
Noro: An Efficient Modular Algorithm for Computing the Global b-function, (2002).

Procedures:

 7.5.2.0. bfct compute the BS polynomial of f with linear reductions 7.5.2.0. bfctSyz compute the BS polynomial of f with syzygy-solver 7.5.2.0. bfctAnn compute the BS polynomial of f via Ann f^s + f 7.5.2.0. bfctOneGB compute the BS polynomial of f by just one GB computation 7.5.2.0. bfctIdeal compute the b-function of ideal w.r.t. weight 7.5.2.0. pIntersect intersection of ideal with subalgebra K[f] for a polynomial f 7.5.2.0. pIntersectSyz intersection of ideal with subalgebra K[f] with syz-solver 7.5.2.0. linReduce reduce a polynomial by linear reductions w.r.t. ideal 7.5.2.0. linReduceIdeal interreduce generators of ideal by linear reductions 7.5.2.0. linSyzSolve compute a linear dependency of elements of ideal I 7.5.2.0. allPositive checks whether all entries of an intvec are positive 7.5.2.0. scalarProd computes the standard scalar product of two intvecs 7.5.2.0. vec2poly constructs an univariate polynomial with given coefficients 