Singular

Home Online Manual
Top
Back: dmodAction
Forward: simplifyRat
FastBack: ratgb_lib
FastForward: Examples
Up: dmodloc_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document
7.7.21.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)