| ## C.5 Gauss-Manin connection Let 702#702 be a complex isolated hypersurface singularity given by a polynomial with algebraic coefficients which we also denote by 267#267. Let 703#703 be the local ring at the origin and 704#704 the Jacobian ideal of 267#267. A Milnor representative of 267#267 defines a differentiable fibre bundle over the punctured disc with fibres of homotopy type of 705#705 17#17-spheres. The 17#17-th cohomology bundle is a flat vector bundle of dimension 17#17 and carries a natural flat connection with covariant derivative 706#706. 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 2#2 form a regular 707#707-module 190#190, the Gauss-Manin connection. By integrating along flat multivalued families of cycles, one can consider fibrewise global holomorphic differential forms as elements of 190#190. This factors through an inclusion of the Brieskorn lattice 708#708 in 190#190. The 240#240-module structure defines the V-filtration 324#324 on 190#190 by 709#709. The Brieskorn lattice defines the Hodge filtration 710#710 on 190#190 by 711#711 which comes from the mixed Hodge structure on the Milnor fibre. Note that 712#712. The induced V-filtration on the Brieskorn lattice determines the singularity spectrum 713#713 by 714#714. The spectrum consists of 705#705 rational numbers 715#715 such that 716#716 are the eigenvalues of the monodromy. These spectral numbers lie in the open interval 717#717, symmetric about the midpoint 718#718. The spectrum is constant under 705#705-constant deformations and has the following semicontinuity property: The number of spectral numbers in an interval 719#719 of all singularities of a small deformation of 267#267 is greater than or equal to that of f in this interval. For semiquasihomogeneous singularities, this also holds for intervals of the form 720#720. Two given isolated singularities 267#267 and 149#149 determine two spectra and from these spectra we get an integer. This integer is the maximal positive integer 282#282 such that the semicontinuity holds for the spectrum of 267#267 and 282#282 times the spectrum of 149#149. These numbers give bounds for the maximal number of isolated singularities of a specific type on a hypersurface 721#721 of degree 171#171: 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 705#705-constant deformation of 722#722, the singularities are bounded by the spectrum of 723#723. Using the library gmssing.lib one can compute the monodromy, the V-fitration on 724#724, and the spectrum. Let us consider as an example 725#725. First, we compute a matrix 13#13 such that 726#726is a monodromy matrix of 267#267 and the Jordan normal form of 13#13:
      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 724#724 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 78#78-basis of the V-filtration on 724#724 in terms of the monomial basis of 727#727in `l[4]` (separated by degree). If the principal part of 267#267 is 78#78-nondegenerate, one can compute the spectrum using the library spectrum.lib. In this case, the V-filtration on 728#728 coincides with the Newton-filtration on 728#728 which allows to compute the spectrum more efficiently. Let us calculate one specific example, the maximal number of triple points of type 729#729 on a surface 730#730of degree seven. This calculation can be done over the rationals. We choose a local ordering on 39#39. 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 267#267 and returns a list with six entries: The Milnor number 731#731, the geometric genus 732#732and 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 733#733has Milnor number 216 and geometrical genus 35. Its spectrum consists of the 16 different rationals 734#734 appearing with multiplicities 1,3,6,10,15,21,25,27,27,25,21,15,10,6,3,1. The singularities of type 729#729 form a 705#705-constant one parameter family given by 735#735.Therefore they have all the same spectrum, which we compute for 736#736.
    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 729#729 on a septic in 737#737. But 738#738is 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 729#729. Note that `spectrumnd(f)` works only if 267#267 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 267#267 has nondegenerate principal part, then the spectrum may be computed much faster using `spectrumnd(f,1)`.

User manual for Singular version 4.4.1, 2025, generated by texi2html.