##### 7.5.14.0. dmodActionRat

Procedure from library `dmodloc.lib` (see dmodloc_lib).

Usage:
  dmodActionRat(id,w); id ideal or poly, f vector

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).
  Further, assume that w has exactly two components, second one not 0, and that w does not contain any D(i).

Return:
  same type as id, the result of the natural D-module action of id on the rational function w[1]/w[2]

Example:

    LIB "dmodloc.lib";
    ring r = 0,(x,y),dp;
    poly f = 2*x;  poly g = y;
    def A = annRat(f,g); setring A;
    poly f = imap(r,f); poly g = imap(r,g);
    vector v = [f,g]; // represents f/g
    // x and y act by multiplication
    dmodActionRat(x,v);
    ==> _[1]=2*x^2*gen(1)+y*gen(2)
    dmodActionRat(y,v);
    ==> _[1]=2*x*gen(1)+gen(2)
    // Dx and Dy act by partial derivation
    dmodActionRat(Dx,v);
    ==> _[1]=y*gen(2)+2*gen(1)
    dmodActionRat(Dy,v);
    ==> _[1]=y^2*gen(2)-2*x*gen(1)
    dmodActionRat(x*Dx+y*Dy,v);
    ==> _[1]=gen(2)
    setring r;
    f = 2*x*y; g = x^2 - y^3;
    def B = annRat(f,g); setring B;
    poly f = imap(r,f); poly g = imap(r,g);
    vector v = [f,g];
    dmodActionRat(LD,v); // hence LD is indeed the annihilator of f/g
    ==> _[1]=gen(2)
    ==> _[2]=gen(2)
    ==> _[3]=gen(2)
    ==> _[4]=gen(2)
    ==> _[5]=gen(2)

User manual for Singular version 4.4.1, 2025, generated by texi2html.