|
7.7.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.
|