Hodge and Betti Numbers of Weighted Hypersurfaces

The file hodgepack2 gives Maple code for computing the Hodge and Betti numbers of weighted hypersurfaces in projective space.

Examples

  1. Consider a hypersurface of degree 42 in the weighted projective space P( 6,14,21,1 ). Its Hodge numbers are given by WH( [6,14,21,1], 42 ) = [1,10,1]. As in Dolgacev, 3.5.3, this surface is quasi-smooth but has three isolated singularities of types A1, A2, and A6. In a minimal resolution they contribute 1, 2, and 6 independent algebraic classes. Thus the Hodge numbers for the primitive cohomology of the resolution are [1,19,1], in accord with the fact that it is a K3 surface.

  2. Set W := [6,14,21,1]. Then we can compute the Hodge numbers as WH( W, 42 ). The dimension of the moduli space is given by wmoduli( W, 42 ) = 10, consistent with the fact that the nine primitive algebaric classes impose nine independent conditions on moduli

  3. The expression X(2) has value [1,1,1,1]. It is the set of weights for a surface in ordinary projective space. Then WH( X(2), 4 ) computes the primitive Hodge numbers of a quartic surface. The syntax WH( 2, 4 ) also works.

  4. Take the sequence of weights to be W := [1,14,21,6] for variables x, y, z, w. Let F(x,y,z,w) = G(x,y,z) + w^7. where F is homogeneous of degree 42. The resulting hypersurface is a 7-sheeted cyclic cover of P(1,14,21) and so the cohomology decomposes into eigenspaces with respect to the action of the covering transformation. If z = exp( 2\pi i/7) then the Hodge numbers of the z^k-th eigenspace are given by WH( W, 42, k ).

    Note that in general the degree of the cover for WH( W, d, k ) is d/w, where w is the last weight.

  5. The primitive middle Betti number of a hypersurface of degree 42 in P(1,14,21,6) is computed by wb0( [1,14,21,6], 42 ) = 12. Notice this computation refers to a quasismooth hypersurface, not a smooth model. For F(x,y,z,w) = G(x,y,z) + w^7 with weights 1,14,21,6, the dimensions of the eigenspaces are given by wb0( [1,14,21,6], 42, i ). Thus the code for i from 1 to 6 do wb0( [1,14,21,6], 42, i ); od; gives the dimension of all six eigenspaces.

The Maple code below uses the Poincare polynomial, whose coefficients give the dimensions of the Jacobian ring. See Igor Dolfacev's article "Weighted projective varieties" in Group Actions and Vector Fields, Proceedings 1981, Springer Lecture Notes 956 (1982), or Loring Tu's article " Macaulay's theorem and local Torelli for weighted hypersurfaces," Compositio Math. 60: 33-44 (1986). Since the main procedure WH is somewhat long, we also give a simplified version.

Hodgepack2.

December 24, 1997

   # Poincare polynomial for regular sequence of length 1
   
   pop1 := (d,q) -> simplify(  (1-t^d)/(1-t^q)  ):
   
   # Poincare polynomial for a regular sequence where
   # L = [[d1, w1], [d2, w2], .. ] is a list of 
   # degrees and weights
   
   pop := proc( L )
     local p, i;
     p := 1;
     for i from 1 to nops(L) do
        p := p*pop1(L[i][1],L[i][2]);
     od;
     sort( expand( p ) );
   end:
   
   # jac( W, d ) is the list of degrees and weights for 
   # the regular sequence obtained from a weighted homogeneous
   # form of degree where W is the list of weights
   
   jac := proc( W, d )
      local i, L;
      L := [];
      for i from 1 to nops(W) do
        L := [ op(L), [d-W[i],W[i]] ];
      od;
      L;
   end:
   
   # pj(W,d) = Poincare polynomial for Jacobian ring of poly of degre d
    
   pj := pop@jac:
  
   # wmoduli( W, d ) is the dimension of the moduli space of hypersurfaces
   # of degree d with weights W
   
   wmoduli := (W,d) -> coeff( pj(W,d), t, d ):
   
   # sumlist(L) = sum of the elements of the list L.
   
   sumlist := proc(L)
       local i, s;
       s := 0;
       for i from 1 to nops(L) do
         s := s + L[i];
       od;
       s;
   end:
   
   # WH( W, d ) =     list of Hodge numbers for a hypersurface of degree d with 
   #                  weights W.
   #
   # WH( n, d ) =     list of Hodge numbers for a hypersurface of degree d with
   #                  in P^{n+1} = P(1,1,..,1).
   #
   # WH( W, d, k ) =  same, but for the z^k eigenspace, where z = exp( 2\pi i k / d )
   #                  and where the last variable appears only as a d-th power, and the  
   #                  action of the d-th roots of unity is by multiplication in that variable.
   #
   # WH( n, d, k ) =  same as if W = [ 1, 1, ... 1 ].
   #
   # WH( W, d, m, k ) = Hodge numbers in the z^k eigenspace for the m-sheeted cover of P(W) 
   #                    branched along a hypersurface of degree d.
   #                    As usual n can be substituted for W.
   #
   # All this function does is pick out the appropriate coefficients of the Poincare
   # polynomial. 
   
   WH := proc()
   
      # Local variables:
      # W = list of weights, d = degree
      # nw = new weight for added variable if present
      #    = degree of poly / degree of cover
      # i = eigenvalue, if relevant
      # q+1 = order of pole for rational differential
      # n = dimension of variety
      # POP = Poincare polynomial
      # HL = list of Hodge numbers
      # k = degree in Jacobian ring
      #   = degree of term in Poincare polynomial
      # vdeg = weight of volume form in numerator
   
      local W,d,nw,i,   q, n, POP, HL, k, vdeg, kk;
   
      # process arguments and set local variables
      #########################################################
   
      # process args so either (W,d) or (n,d) is OK.
   
      W := args[1]; d := args[2];
      if type(W,integer) then 
         n := W;
         W := X(n); 
      fi;
      n := nops(W)-2; # n = dimension of variety
   
      # case of 4 args = (W,d,k,i)
      # compute for i-th eigenspace of k-fold cyclic cover:
   
      if nargs = 4 then # correct n, using cyclic cover
         n := n + 1;
         nw := d/args[3];
         i := args[4];
      fi;
   
      # case of 3 args = ([W|n], d, i)
      # compute for ith eigenspace, assume that
      # given hypersurface is cyclic cover of degree d
      # thus that W' = [ op(W), 1 ] is the weight sequence:
   
      if nargs = 3 then # n is correct, cover is of degree d
         nw := W[nops(W)];
         kk := d/nw;
         W := [ W[i] $i=1..nops(W)-1 ];
         i := args[3];
         RETURN( WH(W,d,kk,i) );
      fi;
   
   ###############################################################
   
      # CORE: compute the Hodge numbers from the Poincare polynomial
   
      vdeg := sumlist(W);
      POP := pj(W,d);
      HL := [];
      for q from 0 to n do
         k := (q+1)*d - vdeg;
         if nargs > 2 then # correct degree for eigenspace
             k := k - nw*i; 
         fi;
         HL := [ op(HL), coeff( POP, t, k) ];
      od;
      HL;
   
   end:
   
   # X(n) is the weight sequence [1,..,1] used for a variety
   # of dimension n.  Thus WH(X(2),4) computes the Hodge numbers
   # for a quartic surface.
   
   X := n -> [ 1$'i'=1..n+2 ]:
   
   # wb0( W, d ) =    middle primitive Betti number of weighted hypersurface of degree d
   #
   # wb0( n, d ) =    same, but weights are [1,1,..,1]
   #
   # wb0( W, d, k ) = same, but dimension is that of z^k-th eigenspace
   #
   # wb0( n, d, k ) = same, but weights are [1,1,..,1]
   
   wb0 := proc()
           sumlist( WH( args ) );
         end:


Home | Math Dept | Search | Links | old home page
12/25/97. Last modified by jac at 10:35 on 01/02/1998.