
7.5.4.0. checkFactor
Procedure from library dmod.lib (see dmod_lib).
 Usage:
 checkFactor(I,f,qs [,eng]); I an ideal, f a poly, qs a poly, eng an optional int
 Assume:
 checkFactor is called from the basering, created by Sannfslike proc,
that is, from the Weyl algebra in x1,..,xN,d1,..,dN tensored with K[s].
The ideal I is the annihilator of f^s in D[s], that is the ideal, computed
by Sannfslike procedure (usually called LD there).
Moreover, f is a polynomial in K[x1,..,xN] and qs is a polynomial in K[s].
 Return:
 int, 1 if qs is a factor of the global Bernstein polynomial of f and 0 otherwise
 Purpose:
 check whether a univariate polynomial qs is a factor of the
BernsteinSato polynomial of f without explicit knowledge of the latter.
 Note:
 If eng <>0,
std is used for Groebner basis computations,
otherwise (and by default) slimgb is used.
 Display:
 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;
poly F = x^4+y^5+x*y^4;
printlevel = 0;
def A = Sannfs(F);
setring A;
poly F = imap(r,F);
checkFactor(LD,F,20*s+31); // 31/20 is not a root of bs
==> 0
checkFactor(LD,F,20*s+11); // 11/20 is a root of bs
==> 1
checkFactor(LD,F,(20*s+11)^2); // the multiplicity of 11/20 is 1
==> 0

