# Singular          ##### 7.5.20.0. Dlocalization
Procedure from library `dmodloc.lib` (see dmodloc_lib).

Usage:
Dlocalization(I,f[,k,e]); I ideal, f poly, k,e optional ints

Assume:
The basering is the n-th Weyl algebra 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).
Further, assume that f does not contain any D(i) and that I is holonomic on K^n\V(f).

Return:
ideal or list, computes an ideal J such that D/J is isomorphic to D/I localized at f as D-modules.
If k<>0, a list consisting of J and an integer m is returned, such that f^m represents the natural map from D/I to D/J. Otherwise (and by default), only the ideal J is returned.

Remarks:
It is known that a localization at f of a holonomic D-module is again a holonomic D-module.
Reference: (OTW)

Note:
If e<>0, `std` is used for Groebner basis computations, otherwise (and by default) `slimgb` is used.
If printlevel=1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed.

Example:
 ```LIB "dmodloc.lib"; // (OTW), Example 8 ring r = 0,(x,y,z,Dx,Dy,Dz),dp; def W = Weyl(); setring W; poly f = x^3-y^2*z^2; ideal I = f^2*Dx+3*x^2, f^2*Dy-2*y*z^2, f^2*Dz-2*y^2*z; // I annihilates exp(1/f) ideal J = Dlocalization(I,f); J; ==> J=y*Dy-z*Dz ==> J=2*y*z^2*Dx+3*x^2*Dy ==> J=2*y^2*z*Dx+3*x^2*Dz ==> J=2*z^3*Dx*Dz+3*x^2*Dy^2+2*z^2*Dx ==> J=3*y^2*z^3*Dz-2*x^4*Dx-6*x^3*z*Dz+12*y^2*z^2-12*x^3-6 ==> J=4*x^4*Dx^2+12*x^3*z*Dx*Dz+9*x^2*z^2*Dz^2+40*x^3*Dx+63*x^2*z*Dz+72*x^\ 2+12*Dx ==> J=3*y*z^4*Dz^2-2*x^4*Dx*Dy-6*x^3*z*Dy*Dz+21*y*z^3*Dz-12*x^3*Dy+24*y*z^\ 2-6*Dy ==> J=3*z^5*Dz^3-2*x^4*Dx*Dy^2-6*x^3*z*Dy^2*Dz+30*z^4*Dz^2-12*x^3*Dy^2+66*\ z^3*Dz+24*z^2-6*Dy^2 Dlocalization(I,f,1); // The natural map D/I -> D/J is given by 1/f^2 ==> : ==> _=y*Dy-z*Dz ==> _=2*y*z^2*Dx+3*x^2*Dy ==> _=2*y^2*z*Dx+3*x^2*Dz ==> _=2*z^3*Dx*Dz+3*x^2*Dy^2+2*z^2*Dx ==> _=3*y^2*z^3*Dz-2*x^4*Dx-6*x^3*z*Dz+12*y^2*z^2-12*x^3-6 ==> _=4*x^4*Dx^2+12*x^3*z*Dx*Dz+9*x^2*z^2*Dz^2+40*x^3*Dx+63*x^2*z*Dz+72\ *x^2+12*Dx ==> _=3*y*z^4*Dz^2-2*x^4*Dx*Dy-6*x^3*z*Dy*Dz+21*y*z^3*Dz-12*x^3*Dy+24*y\ *z^2-6*Dy ==> _=3*z^5*Dz^3-2*x^4*Dx*Dy^2-6*x^3*z*Dy^2*Dz+30*z^4*Dz^2-12*x^3*Dy^2+\ 66*z^3*Dz+24*z^2-6*Dy^2 ==> : ==> 2 ``` 