| ##### 7.5.5.0. annPoly Procedure from library `dmodapp.lib` (see dmodapp_lib). Usage: annPoly(f); f a poly Return: ring (a Weyl algebra) containing an ideal 'LD' Purpose: compute the complete annihilator ideal of f in the corresponding Weyl algebra Assume: basering is commutative and over a field of characteristic 0 Note: Activate the output ring with the `setring` command. In the output ring, the ideal 'LD' (in Groebner basis) is the annihilator. Display: If printlevel =1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed. Example:
    LIB "dmodapp.lib";
    ring r = 0,(x,y,z),dp;
    poly f = x^2*z - y^3;
    def A = annPoly(f);
    setring A;    // A is the 3rd Weyl algebra in 6 variables
    LD;           // the Groebner basis of annihilator
    ==> LD[1]=Dz^2
    ==> LD[2]=Dy*Dz
    ==> LD[3]=Dx*Dy
    ==> LD[4]=y*Dy+3*z*Dz-3
    ==> LD[5]=x*Dx-2*z*Dz
    ==> LD[6]=z*Dx*Dz-Dx
    ==> LD[7]=Dy^3+3*Dx^2*Dz
    ==> LD[8]=x*Dy^2+3*y*Dx*Dz
    ==> LD[9]=x^2*Dy+3*y^2*Dz
    ==> LD[10]=Dx^3
    ==> LD[11]=3*y*Dx^2+z*Dy^2
    ==> LD[12]=3*y^2*Dx+2*x*z*Dy
    ==> LD[13]=y^3*Dz-x^2*z*Dz+x^2
    gkdim(LD);    // must be 3 = 6/2, since A/LD is holonomic module
    ==> 3
    NF(Dy^4, LD); // must be 0 since Dy^4 clearly annihilates f
    ==> 0
    poly f = imap(r,f);
    NF(LD*f,std(ideal(Dx,Dy,Dz))); // must be zero if LD indeed annihilates f
    ==> _[1]=0
    ==> _[2]=0
    ==> _[3]=0
    ==> _[4]=0
    ==> _[5]=0
    ==> _[6]=0
    ==> _[7]=0
    ==> _[8]=0
    ==> _[9]=0
    ==> _[10]=0
    ==> _[11]=0
    ==> _[12]=0
    ==> _[13]=0
See also: annRat.

User manual for Singular version 4.4.0, 2024, generated by texi2html.