| ##### 7.5.14.0. annRatSyz Procedure from library `dmodloc.lib` (see dmodloc_lib). Usage: annRatSyz(f,g[,db,eng]); f, g polynomials, db,eng optional integers Assume: The basering is commutative and over a field of characteristic 0. Return: 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 Remarks: This procedure uses the computation of certain syzygies. One can obtain the full annihilator by computing the Weyl closure of the ideal LD. Note: 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. Example:
    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;
    ==> // coefficients: QQ considered as a field
    ==> // 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;
    ==> 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]=3597*y^2*Dx^2*Dy-866*x*Dx*Dy^2-2176*y*Dy^3+10791*y*Dx^2-644*Dy^2
    ==> 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);
    NF(LD,std(BLD));
    ==> _[1]=0
    ==> _[2]=0
    ==> _[3]=0
    ==> _[4]=0
    ==> _[5]=0
See also: annPoly; annRat.

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