Home Online Manual
Back: bfctBound
Forward: dmodGeneralAssumptionCheck
FastBack: ratgb_lib
FastForward: Examples
Up: dmodloc_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document annRatSyz
Procedure from library dmodloc.lib (see dmodloc_lib).

annRatSyz(f,g[,db,eng]); f, g polynomials, db,eng optional integers

The basering is commutative and over a field of characteristic 0.

ring (a Weyl algebra) containing an ideal `LD', which is (part of) the annihilator of the rational function g/f in the corresponding Weyl algebra

This procedure uses the computation of certain syzygies. One can obtain the full annihilator by computing the Weyl closure of the ideal LD.

Activate the output ring with the setring command. In the output ring, the ideal `LD' (in Groebner basis) is (part of) the annihilator of g/f.
If db>0 is given, operators of order up to db are considered, otherwise, and by default, a minimal holonomic solution is computed.
If eng<>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.

LIB "dmodloc.lib";
// printlevel = 3;
ring r = 0,(x,y),dp;
poly f = 2*x*y; poly g = x^2 - y^3;
def A = annRatSyz(f,g);   // compute a holonomic solution
setring A; A;
==> //   characteristic : 0
==> //   number of vars : 4
==> //        block   1 : ordering dp
==> //                  : names    x y Dx Dy
==> //        block   2 : ordering C
==> //   noncommutative relations:
==> //    Dxx=x*Dx+1
==> //    Dyy=y*Dy+1
==> LD[1]=3*x*Dx+2*y*Dy+1
==> LD[2]=y^4*Dy-x^2*y*Dy+2*y^3+x^2
setring r;
def B = annRatSyz(f,g,5); // compute a solution up to degree 5
setring B;
LD; // this is the full annihilator as we will check below
==> LD[1]=29223*y^2*Dx^2*Dy+2286*x*Dx*Dy^2-11464*y*Dy^3+87669*y*Dx^2+10304*Dy\
==> LD[2]=111*y^3*Dx^2+2760*x^2*Dx^2+1470*x*y*Dx*Dy-296*y^2*Dy^2+4050*x*Dx
==> LD[3]=3*x*Dx+2*y*Dy+1
==> LD[4]=y^3*Dy^2-x^2*Dy^2+6*y^2*Dy+6*y
==> LD[5]=y^4*Dy-x^2*y*Dy+2*y^3+x^2
setring r;
def C = annRat(f,g); setring C;
LD; // the full annihilator
==> LD[1]=3*y^2*Dx^2*Dy+2*x*Dx*Dy^2+9*y*Dx^2+4*Dy^2
==> LD[2]=3*y^3*Dx^2-10*x*y*Dx*Dy-8*y^2*Dy^2+10*x*Dx
==> LD[3]=y^3*Dy^2-x^2*Dy^2-6*x*y*Dx+2*y^2*Dy+4*y
==> LD[4]=3*x*Dx+2*y*Dy+1
==> LD[5]=y^4*Dy-x^2*y*Dy+2*y^3+x^2
ideal BLD = imap(B,LD);
==> _[1]=0
==> _[2]=0
==> _[3]=0
==> _[4]=0
==> _[5]=0
See also: annPoly; annRat.