Home Online Manual
Top
Back: isTame
Forward: hnoether_lib
FastBack: gmssing_lib
FastForward: hnoether_lib
Up: gmspoly_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.6.8.2 goodBasis

Procedure from library gmspoly.lib (see gmspoly_lib).

Usage:
goodBasis(f); poly f

Assume:
f is cohomologically tame in the sense of Sabbah [Sab98,8]

Return:
 
ring R;  basering with new variable s
  ideal b;  [matrix(b)] is a good basis of the Brieskorn lattice
  matrix A;  A(s)=A0+s*A1 and t[matrix(b)]=[matrix(b)](A(s)+s^2*(d/ds))

Remarks:
procedure implements Algorithm 6 in [Sch05]

Example:
 
LIB "gmspoly.lib";
ring R=0,(x,y,z),dp;
poly f=x+y+z+x2y2z2;
def Rs=goodBasis(f);
setring(Rs);
b;
==> b[1]=1
==> b[2]=s2x-3sx2+x3
==> b[3]=5/2x
==> b[4]=10s2x2-25/2sx3+5/2x4
==> b[5]=-25/4sx+25/4x2
print(jet(A,0));
==> 0,0,0,-25/8,0,    
==> 0,0,0,0,    125/8,
==> 1,0,0,0,    0,    
==> 0,1,0,0,    0,    
==> 0,0,1,0,    0     
print(jet(A/var(1),0));
==> 1/2,0,0,  0,0, 
==> 0,  1,0,  0,0, 
==> 0,  0,3/2,0,0, 
==> 0,  0,0,  2,0, 
==> 0,  0,0,  0,5/2
See also: gmssing_lib.