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

Usage:
charInfo(I); I an ideal

Return:
ring (commut.) containing ideals 'charVar','singLoc' and list 'primDec'

Purpose:
computes characteristic variety of I (in the sense of D-module theory),
its singular locus and primary decomposition

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:
In the output ring, which is commutative:
- the ideal 'charVar' is the characteristic variety char(I),
- the ideal 'SingLoc' is the singular locus of char(I),
- the list 'primDec' is the primary decomposition of char(I).

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 = charInfo(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;        // characteristic variety
==> 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
singLoc;        // singular locus
==> singLoc[1]=y*Dy
==> singLoc[2]=y*Dx
==> singLoc[3]=2*x*Dx-3*y*Dy
==> singLoc[4]=9*x*Dy^2-2*Dx^2
==> singLoc[5]=3*x^2*Dy-y*Dx
==> singLoc[6]=Dx^3
==> singLoc[7]=x^3-y^2
primDec;        // primary decomposition
==> [1]:
==>    [1]:
==>       _[1]=Dy
==>       _[2]=Dx
==>    [2]:
==>       _[1]=Dy
==>       _[2]=Dx
==> [2]:
==>    [1]:
==>       _[1]=27*y*Dy^3+8*Dx^3
==>       _[2]=9*x*Dy^2-4*Dx^2
==>       _[3]=2*x*Dx+3*y*Dy
==>       _[4]=3*x^2*Dy+2*y*Dx
==>       _[5]=x^3-y^2
==>    [2]:
==>       _[1]=27*y*Dy^3+8*Dx^3
==>       _[2]=9*x*Dy^2-4*Dx^2
==>       _[3]=2*x*Dx+3*y*Dy
==>       _[4]=3*x^2*Dy+2*y*Dx
==>       _[5]=x^3-y^2
==> [3]:
==>    [1]:
==>       _[1]=y
==>       _[2]=x
==>    [2]:
==>       _[1]=y
==>       _[2]=x