##### 7.5.6.0. annfsLogIdeal

Procedure from library `dmodideal.lib` (see dmodideal_lib).

Usage:
  annfsLogIdeal(F); F an ideal

Return:
  ring

Purpose:
  compute the logarithmic annihilator of F[1]^s(1)*...*F[P]^s(P)

Assume:
  basering is a commutative polynomial ring in characteristic 0

Note:
  activate the output ring with the `setring` command. In this ring, annfsLog is the logarithmic annihilator of F^s (no Groebner basis). If printlevel=1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed.

Example:

    LIB "dmodideal.lib";
    ring R = 0,(x,y),dp;
    ideal F = x^3+y^4+x*y^3, x;
    def S1 = annfsLogIdeal(F);
    setring S1;
    annfsLog;
    ==> annfsLog[1]=-9*s(1)*x-12*s(1)*y-3*s(2)*x-4*s(2)*y+3*x^2*Dx+4*x*y*Dx+2*x*y\
       *Dy+3*y^2*Dy
    ==> annfsLog[2]=-36*s(1)*y^2-192*s(1)*y-9*s(2)*y^2-64*s(2)*y+9*x*y^2*Dx+9*y^3\
       *Dy+64*x*y*Dx+3*x^2*Dy-4*x*y*Dy+48*y^2*Dy
    setring R; // now compare with the full annihilator
    def S = annihilatorMultiFs(F);
    setring S;
    annFs;
    ==> annFs[1]=-3*x^2*Dx-4*x*y*Dx-2*x*y*Dy-3*y^2*Dy+9*x*s(1)+12*y*s(1)+3*x*s(2)\
       +4*y*s(2)
    ==> annFs[2]=-9*x*y^2*Dx-9*y^3*Dy-64*x*y*Dx-3*x^2*Dy+4*x*y*Dy-48*y^2*Dy+36*y^\
       2*s(1)+9*y^2*s(2)+192*y*s(1)+64*y*s(2)
    ==> annFs[3]=-3*x^2*y^2*Dx-4*x*y^3*Dx+x*y^3*Dy+3*x^3*Dy+3*x*y^2*s(2)+4*y^3*s(\
       2)
    ==> annFs[4]=-144*x^2*y*Dx^2-84*x*y^2*Dx^2-141*x*y^2*Dx*Dy-81*y^3*Dy^2-768*x^\
       2*Dx^2-256*x*y*Dx^2+84*x^2*Dx*Dy-1008*x*y*Dx*Dy-192*y^2*Dx*Dy-51*x^2*Dy^2\
       +64*x*y*Dy^2-336*y^2*Dy^2+36*x*y*Dx*s(2)+84*y^2*Dx*s(2)-27*y^2*Dy*s(2)-70\
       2*x*y*Dx-84*y^2*Dx-555*y^2*Dy+768*y*Dx*s(1)-384*y*Dy*s(1)+1296*y*s(1)^2+2\
       56*y*Dx*s(2)-128*y*Dy*s(2)+756*y*s(1)*s(2)+108*y*s(2)^2-3712*x*Dx-256*y*D\
       x+244*x*Dy-2528*y*Dy+1980*y*s(1)+6912*s(1)^2+558*y*s(2)+4608*s(1)*s(2)+76\
       8*s(2)^2+8832*s(1)+2944*s(2)
    lead(groebner(imap(S1,annfsLog)));
    ==> _[1]=3*x^2*Dx
    ==> _[2]=9*x*y^2*Dx
    ==> _[3]=x*y^3*Dy
    ==> _[4]=27*y^4*Dx*Dy
    lead(groebner(annFs)); // and we see the difference
    ==> _[1]=3*x^2*Dx
    ==> _[2]=9*x*y^2*Dx
    ==> _[3]=3*y^3*Dx*Dy
    ==> _[4]=x*y^3*Dy

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