Posted by: Steven Sam | January 4, 2010

## Hilbert functions and local cohomology

When we count some family of objects, sometimes the counting function is a polynomial, and sometimes it is only a polynomial after we ignore finitely many “bad cases.” There’s a clean way of packaging that together using generating functions. For instance, let f(n) be some function that takes the nonnegative integers to integers. Then the formal power series $\sum_{n \ge 0} f(n) z^n$ is a rational function of the form $Q(z) / (1-z)^{d+1}$ if and only if there exists N and a polynomial g(n) of degree d such that g(n) = f(n) for $n \ge N$. There’s a natural followup question here: how is the polynomial g(n) related to my original counting problem? And is there any meaning to plugging in negative values into g?

1. Hilbert functions and Hilbert polynomials

I’d like to discuss these two questions for Hilbert functions. We’ll let $A = K[x_1, \dots, x_d]$ be the polynomial ring in d variables over some field K, which we think of as a graded ring in the standard way using the total degree. M will denote a finitely generated graded module over A which is generated in degree 1. Relevant definitions can be found here. The Hilbert function of M is defined by $h_M(n) = \dim_K M_n$ where $M_n$ is the nth graded part of M. Then there is a polynomial $P_M$ for which $P_M(n) = h_M(n)$ for all n sufficiently large. This is the Hilbert polynomial of M, and for me it was a little mysterious why there was an error term in the first place. The reasonable answer seemed to be that one can always add extra junk terms to the low degrees of a module without changing its higher degree terms. But there’s a better answer! It involves local cohomology, for which I’ll give the relevant definitions.

First, let’s give a quick proof as to why the Hilbert polynomial exists. Let $H_M(z) = \sum_{n \ge 0} h_M(n) z^n$ for a module M. We’ll show that $H_M(z) = Q(z)/(1-z)^d$ for some polynomial Q. If d=0, then M is a finite dimensional K-vector space, and hence $H_M(z)$ is a polynomial, and we take $Q(z) = H_M(z)$. Otherwise, we proceed by induction. Consider the map $x_d \cdot \colon M \to M$ given by multiplication by the variable $x_d$. Then we have the short exact sequence of modules

(*) $0 \to N \to M \xrightarrow{x_d \cdot} M \to M/x_dM \to 0$.

where N is by definition the kernel of the multiplication. Looking at an individual graded piece, the alternating sum of the dimensions must be 0. However, multiplying by $x_d$ shifted the grading by 1. Hence we conclude that

$\dim N_n - \dim M_n + \dim M_{n+1} - \dim (M/x_dM)_{n+1} = 0$

for all $n \ge 0$. This gives the relation

$H_N(z) - H_M(z) + zH_M(z) - zH_{M/x_dM}(z) = 0$,

which can be rewritten as

$\displaystyle H_M(z) = \frac{H_N(z) - zH_{M/x_dM}(z)}{1-z}$.

But both N and $M/x_dM$ are modules over $K[x_1, \dots, x_{d-1}]$ since $x_d$ acts by 0 on both, so we are done by induction.

Going back to generating functions, we said above that $\sum_{n \ge 0} g(n) z^n$ is a rational function of the form $Q(z) / (1-z)^{d+1}$ if and only if g is a polynomial of degree d for sufficiently large n. If the degree of Q is at most d, then in fact g is a polynomial for all n. But looking at the proof we gave, we can’t hope for something like that to happen (it already fails in the base case!). So let’s examine what these “junk terms” mean. As I said in the beginning it has to do with local cohomology, so let’s do a review of what that is first.

2. Local cohomology

Local cohomology depends on three pieces of data: a Noetherian (some adjustments that I am not familiar with need to be made if we remove this assumption) commutative ring A, an ideal J of A, and a module M of A. Given this, we spit out local cohomology modules ${\rm H}^i_J(M)$ for all $i \ge 0$. Here are two ways to define it. First, we can define the zeroth cohomology module ${\rm H}^0_J(M)$ as the set of all elements of M which are annihilated by some power of J. For those familiar with derived functors, this defines a left exact functor, and the right derived functors are the local cohomology modules. Alternatively, we can write

${\rm H}^0_J(M) = \varinjlim {\rm Hom}_A(A/J^d, M)$,

and using that filtered direct limits commute with taking derived functors, we get

${\rm H}^i_J(M) = \varinjlim {\rm Ext}^i_A(A/J^d, M)$.

There is a second way to define local cohomology using a Cech complex. Let $(x_1, \dots, x_n)$ denote a set of generators of J. For a subset S of {1,…,n}, let $x_S = \prod_{s \in S} x_s$. Also, let $M[x_S^{-1}]$ denote the module M localized at $x_S$. Define differentials

$\displaystyle \bigoplus_{\#S = i} M[x_S^{-1}] \xrightarrow{d} \bigoplus_{\#S = i+1} M[x_S^{-1}]$

by the formula

$\displaystyle d(m_S) = \sum_{t \notin S} (-1)^{o_S(t)} m_{S \cup \{t\}}$,

where $o_S(t)$ is the number of elements in S less than t, and $m_S$ is thought of as an element of the summand $M[x_S^{-1}]$. These maps form a cochain complex, and we can also define local cohomology as its homology, and it does not depend on our choice of generators.

In any event, the punchline is that the local cohomology modules inherit the structure of A-module, and if A is graded and J is homogeneous, then they will also inherit a grading. Furthermore, the second definition implies that they vanish for i sufficiently large.

3. Relating Hilbert functions and local cohomology

Now let’s try to relate the two things we just defined. Take $A = K[x_1, \dots, x_d]$ and $J = (x_1, \dots, x_d)$. Define a new function

$\displaystyle Q(n) = \dim M_n - \sum_{i \ge 0} (-1)^i \dim {\rm H}^i_J(M)_n$.

Also, let $\chi_M(n)$ denote the alternating sum. Note that local cohomology vanishes for i > d, so these quantities are well-defined. We claim that Q is a polynomial in n, and we will do this by the same induction as we did to establish that the Hilbert function is eventually a polynomial. When d=0, we have

$Q(n) = \dim M_n - \dim {\rm H}^0_J(M)_n = 0$,

where the last equality follows from the fact that $M = {\rm H}^0_J(M)$ by definition (every element of M is annihilated by 0). Given any short exact sequence, we get a long exact sequence of local cohomology via standard properties of derived functors. So given $0 \to A \to B \to C \to 0$ where the maps preserve degree, we have $\chi_A(n) - \chi_B(n) + \chi_C(n) = 0$ for all n, and similarly, the same is true for longer exact sequences (which can be seen by cutting them up into short exact sequences). Applying this to (*), we see that

$\chi_N(n) - \chi_M(n) + \chi_M(n+1) - \chi_{M/x_dM}(n+1) = 0$.

We have already shown that a similar relation holds when we replace $\chi$ by the Hilbert function h, so we get

$Q_N(n) - Q_M(n) + Q_M(n+1) - Q_{M/x_dM}(n+1) = 0$,

which we rewrite as

$Q_M(n+1) - Q_M(n) = Q_{M/x_dM}(n+1) - Q_N(n)$,

and the right hand side is a polynomial by induction on d. This implies that $Q_M(n)$ is also a polynomial since we know that its “discrete derivative” is a polynomial (it’s not too bad to show this). So we’re done with the claim.

Finally, we want to say that Q is the Hilbert polynomial. For that, it would be enough to say that $\chi_M(n) = 0$ for sufficiently large n. This is in fact true, but I won’t go into the details, since it would take a while. Actually something stronger is true: one can say that ${\rm H}^i_J(M)_n = 0$ for each i and for n sufficiently large.

So we see two things: the first is that the Hilbert polynomial is not counting the dimensions of the graded pieces of M, it is counting an alternating sum. This does not seem so natural to consider, but it is very easy to work with once we have short exact sequences to play with. The second is that the proof above works for arbitrary n, so we also get an “interpretation” for what is happening with negative values of n.

Readers familiar with sheaf cohomology may notice some similarities. In fact, local cohomology is related to sheaf cohomology, but I’ll defer the reader to Appendix 1 of Eisenbud’s The Geometry of Syzygies for the details.

-Steven