| ##### 7.7.5.0. charVariety Procedure from library `dmodapp.lib` (see dmodapp_lib). Usage: charVariety(I [,eng]); I an ideal, eng an optional int Return: ring (commutative) containing an ideal 'charVar' Purpose: computes an ideal whose zero set is the characteristic variety of I in the sense of D-module theory Assume: 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). Note: 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. 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),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;
    ==> 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.

User manual for Singular version 4-0-2, 2015, generated by texi2html.