Home Online Manual
Top
Back: dmodideal_lib
Forward: annihilatorMultiFs
FastBack:
FastForward:
Up: dmodideal_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document
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