Home Online Manual
Back: deRhamCohomIdeal
Forward: charInfo
FastBack: dmod_lib
FastForward: dmodvar_lib
Up: dmodapp_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document charVariety
Procedure from library dmodapp.lib (see dmodapp_lib).

charVariety(I [,eng]); I an ideal, eng an optional int

ring (commutative) containing an ideal 'charVar'

computes an ideal whose zero set is the characteristic variety of I in
the sense of D-module theory

The basering is the n-th Weyl algebra over a field of characteristic 0
and for all 1<=i<=n the identity var(i+n)*var(i)=var(i)*var(i+1)+1
holds, i.e. the sequence of variables is given by
x(1),...,x(n),D(1),...,D(n), where D(i) is the differential operator
belonging to x(i).

The output ring is commutative. It contains an ideal 'charVar'.
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.

LIB "dmodapp.lib";
ring r = 0,(x,y),Dp;
poly F = x3-y2;
printlevel = 0;
def A  = annfs(F);
setring A;      // Weyl algebra
LD;             // the annihilator of F
==> LD[1]=2*x*Dx+3*y*Dy+6
==> LD[2]=3*x^2*Dy+2*y*Dx
==> LD[3]=9*x*y*Dy^2-4*y*Dx^2+15*x*Dy
==> LD[4]=27*y^2*Dy^3+8*y*Dx^3+135*y*Dy^2+105*Dy
def CA = charVariety(LD);
setring CA; CA; // commutative ring
==> //   characteristic : 0
==> //   number of vars : 4
==> //        block   1 : ordering dp
==> //                  : names    x y Dx Dy
==> //        block   2 : ordering C
==> charVar[1]=2*x*Dx+3*y*Dy
==> charVar[2]=3*x^2*Dy+2*y*Dx
==> charVar[3]=9*x*y*Dy^2-4*y*Dx^2
==> charVar[4]=27*y^2*Dy^3+8*y*Dx^3
dim(std(charVar));   // hence I is holonomic
==> 2
See also: charInfo.