| ## C.5 Gauss-Manin connection Let be a complex isolated hypersurface singularity given by a polynomial with algebraic coefficients which we also denote by . Let be the local ring at the origin and the Jacobian ideal of . A Milnor representative of defines a differentiable fibre bundle over the punctured disc with fibres of homotopy type of -spheres. The -th cohomology bundle is a flat vector bundle of dimension and carries a natural flat connection with covariant derivative . The monodromy operator is the action of a positively oriented generator of the fundamental group of the punctured disc on the Milnor fibre. Sections in the cohomology bundle of moderate growth at form a regular -module , the Gauss-Manin connection. By integrating along flat multivalued families of cycles, one can consider fibrewise global holomorphic differential forms as elements of . This factors through an inclusion of the Brieskorn lattice in . The -module structure defines the V-filtration on by . The Brieskorn lattice defines the Hodge filtration on by which comes from the mixed Hodge structure on the Milnor fibre. Note that . The induced V-filtration on the Brieskorn lattice determines the singularity spectrum by . The spectrum consists of rational numbers such that are the eigenvalues of the monodromy. These spectral numbers lie in the open interval , symmetric about the midpoint . The spectrum is constant under -constant deformations and has the following semicontinuity property: The number of spectral numbers in an interval of all singularities of a small deformation of is greater than or equal to that of f in this interval. For semiquasihomogeneous singularities, this also holds for intervals of the form . Two given isolated singularities and determine two spectra and from these spectra we get an integer. This integer is the maximal positive integer such that the semicontinuity holds for the spectrum of and times the spectrum of . These numbers give bounds for the maximal number of isolated singularities of a specific type on a hypersurface of degree : such a hypersurface has a smooth hyperplane section, and the complement is a small deformation of a cone over this hyperplane section. The cone itself being a -constant deformation of , the singularities are bounded by the spectrum of . Using the library `gmssing.lib` one can compute the monodromy, the V-fitration on , and the spectrum. Let us consider as an example . First, we compute a matrix such that is a monodromy matrix of and the Jordan normal form of :
      LIB "mondromy.lib";
      ring R=0,(x,y),ds;
      poly f=x5+x2y2+y5;
      matrix M=monodromyB(f);
      print(M);
    ==> 11/10,0,    0,    0,    0,   0,-1/4,0,   0,   0,  0,
    ==> 0,    13/10,0,    0,    0,   0,0,   15/8,0,   0,  0,
    ==> 0,    0,    13/10,0,    0,   0,0,   0,   15/8,0,  0,
    ==> 0,    0,    0,    11/10,-1/4,0,0,   0,   0,   0,  0,
    ==> 0,    0,    0,    0,    9/10,0,0,   0,   0,   0,  0,
    ==> 0,    0,    0,    0,    0,   1,0,   0,   0,   0,  3/5,
    ==> 0,    0,    0,    0,    0,   0,9/10,0,   0,   0,  0,
    ==> 0,    0,    0,    0,    0,   0,0,   7/10,0,   0,  0,
    ==> 0,    0,    0,    0,    0,   0,0,   0,   7/10,0,  0,
    ==> 0,    0,    0,    0,    0,   0,0,   0,   0,   1,  -2/5,
    ==> 0,    0,    0,    0,    0,   0,0,   0,   0,   5/8,0
Now, we compute the V-fitration on and the spectrum:
      LIB "gmssing.lib";
      ring R=0,(x,y),ds;
      poly f=x5+x2y2+y5;
      list l=vfilt(f);
      print(l[1]); // spectral numbers
    ==> -1/2,
    ==> -3/10,
    ==> -1/10,
    ==> 0,
    ==> 1/10,
    ==> 3/10,
    ==> 1/2
      print(l[2]); // corresponding multiplicities
    ==> 1,
    ==> 2,
    ==> 2,
    ==> 1,
    ==> 2,
    ==> 2,
    ==> 1
      print(l[3]); // vector space of i-th graded part
    ==> [1]:
    ==>    _[1]=gen(11)
    ==> [2]:
    ==>    _[1]=gen(10)
    ==>    _[2]=gen(6)
    ==> [3]:
    ==>    _[1]=gen(9)
    ==>    _[2]=gen(4)
    ==> [4]:
    ==>    _[1]=gen(5)
    ==> [5]:
    ==>    _[1]=gen(3)
    ==>    _[2]=gen(8)
    ==> [6]:
    ==>    _[1]=gen(2)
    ==>    _[2]=gen(7)
    ==> [7]:
    ==>    _[1]=gen(1)
      print(l[4]); // monomial vector space basis of H''/s*H''
    ==> y5,
    ==> y4,
    ==> y3,
    ==> y2,
    ==> xy,
    ==> y,
    ==> x4,
    ==> x3,
    ==> x2,
    ==> x,
    ==> 1
      print(l[5]); // standard basis of Jacobian ideal
    ==> 2x2y+5y4,
    ==> 5x5-5y5,
    ==> 2xy2+5x4,
    ==> 10y6+25x3y4
Here `l[1]` contains the spectral numbers, `l[2]` the corresponding multiplicities, `l[3]` a -basis of the V-filtration on in terms of the monomial basis of in `l[4]` (seperated by degree). If the principal part of is -nondegenerate, one can compute the spectrum using the library `spectrum.lib`. In this case, the V-filtration on coincides with the Newton-filtration on which allows to compute the spectrum more efficiently. Let us calculate one specific example, the maximal number of triple points of type on a surface of degree seven. This calculation can be done over the rationals. We choose a local ordering on . Here we take the negative degree lexicographical ordering, in SINGULAR denoted by `ds`:
    ring r=0,(x,y,z),ds;
    LIB "spectrum.lib";
    poly f=x^7+y^7+z^7;
    list s1=spectrumnd( f );
    s1;
    ==> [1]:
    ==>    _[1]=-4/7
    ==>    _[2]=-3/7
    ==>    _[3]=-2/7
    ==>    _[4]=-1/7
    ==>    _[5]=0
    ==>    _[6]=1/7
    ==>    _[7]=2/7
    ==>    _[8]=3/7
    ==>    _[9]=4/7
    ==>    _[10]=5/7
    ==>    _[11]=6/7
    ==>    _[12]=1
    ==>    _[13]=8/7
    ==>    _[14]=9/7
    ==>    _[15]=10/7
    ==>    _[16]=11/7
    ==> [2]:
    ==>    1,3,6,10,15,21,25,27,27,25,21,15,10,6,3,1
The command `spectrumnd(f)` computes the spectrum of and returns a list with six entries: The Milnor number , the geometric genus and the number of different spectrum numbers. The other three entries are of type `intvec`. They contain the numerators, denominators and multiplicities of the spectrum numbers. So has Milnor number 216 and geometrical genus 35. Its spectrum consists of the 16 different rationals appearing with multiplicities 1,3,6,10,15,21,25,27,27,25,21,15,10,6,3,1. The singularities of type form a -constant one parameter family given by .Therefore they have all the same spectrum, which we compute for .
    poly g=x^3+y^3+z^3;
    list s2=spectrumnd(g);
    s2;
    ==> [1]:
    ==>    8
    ==> [2]:
    ==>    1
    ==> [3]:
    ==>    4
    ==> [4]:
    ==>    1,4,5,2
    ==> [5]:
    ==>    1,3,3,1
    ==> [6]:
    ==>    1,3,3,1
Evaluating semicontinuity is very easy:
    semicont(s1,s2);
    ==> 18
This tells us that there are at most 18 singularities of type on a septic in . But is semiquasihomogeneous (sqh), so we can also apply the stronger form of semicontinuity:
    semicontsqh(s1,s2);
    ==> 17
So in fact a septic has at most 17 triple points of type . Note that `spectrumnd(f)` works only if has a nondegenerate principal part. In fact `spectrumnd` will detect a degenerate principal part in many cases and print out an error message. However if it is known in advance that has nondegenerate principal part, then the spectrum may be computed much faster using `spectrumnd(f,1)`.

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