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

Usage:
dmodAction(id,f[,v]); id ideal or poly, f poly, v optional intvec

Assume:
If v is not given, 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).
Otherwise, v is assumed to specify positions of variables, which form a Weyl algebra as a subalgebra of the basering:
If size(v) equals 2*n, then bracket(var(v[i]),var(v[j])) must equal 1 if and only if j equals i+n, and 0 otherwise, for all 1<=i,j<=n.
Further, assume that f does not contain any D(i).

Return:
same type as id, the result of the natural D-module action of id on f

Note:
The assumptions made are not checked.

Example:
 ```LIB "dmodloc.lib"; ring r = 0,(x,y,z),dp; poly f = x^2*z - y^3; def A = annPoly(f); setring A; poly f = imap(r,f); dmodAction(LD,f); ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 ==> _=0 poly P = y*Dy+3*z*Dz-3; dmodAction(P,f); ==> 0 dmodAction(P,f); ==> -3*y^3 ```

### Misc 