# Singular

##### 7.7.21.0. polSol
Procedure from library `dmodloc.lib` (see dmodloc_lib).

Usage:
polSol(I[,w,m]); I ideal, w optional intvec, m optional int

Assume:
The basering is the n-th Weyl algebra W over a field of characteristic 0 and for all 1<=i<=n the identity
var(i+n)*var(i)=var(i)*var(i+1)+1 holds, i.e. the sequence of variables is given by x(1),...,x(n),D(1),...,D(n), where D(i) is the differential operator belonging to x(i).
Moreover, assume that I is holonomic.

Return:
ideal, a basis of the polynomial solutions to the given system of linear PDEs with polynomial coefficients, encoded via I

Remarks:
If w is given, w should consist of n strictly negative entries. Otherwise and by default, w is set to -1:n.
In this case, w is used as weight vector for the computation of a b-function.
If m is given, m is assumed to be the minimal integer root of the b-function of I w.r.t. w. Note that this assumption is not checked.
Reference: (OTT), Algorithm 2.4

Note:
If printlevel=1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed.

Example:
 ```LIB "dmodloc.lib"; ring r = 0,(x,y,Dx,Dy),dp; def W = Weyl(); setring W; poly tx,ty = x*Dx, y*Dy; ideal I = // Appel F1 with parameters (2,-3,-2,5) tx*(tx+ty+4)-x*(tx+ty+2)*(tx-3), ty*(tx+ty+4)-y*(tx+ty+2)*(ty-2), (x-y)*Dx*Dy+2*Dx-3*Dy; intvec w = -1,-1; polSol(I,w); ==> _[1]=10*x^3*y^2-30*x^3*y-45*x^2*y^2+24*x^3+144*x^2*y+72*x*y^2-126*x^2-252\ *x*y-42*y^2+252*x+168*y-210 ```