Hilbert’s Nullstellensatz

7 minute read

Published:

We record a proof of the bijection of algebraic sets and radical ideals, using Hilbert’s Nullstellensatz.

Let’s begin by stating our theorem. We recall the following definitions.

Definition. Fix a field \(k\) and a positive integer \(n\). Given a subset \(S\subseteq k[x_1,\ldots,x_n]\), we define its vanishing set as \[V(S):=\{p\in k^n:f(p)=0\text{ for all }f\in S\}.\] Furthermore, a subset \(Z\) of \(k^n\) is algebraic if and only if \(Z=V(S)\) for some such subset \(S\).

Definition. Fix a field \(k\) and a positive integer \(n\). Given a subset \(S\) of \(k^n\), we let \(I(S)\subseteq k[x_1,\ldots,x_n]\) denote the set of polynomials vanishing on \(S\).

Before stating our main theorem, we provide a remark.

Remark. Of course, if \(f\) and \(g\) vanish on \(S\), then so does any \(k[x_1,\ldots,x_n]\)-linear combination. Thus, \(I(S)\) is an ideal. Furthermore, if some power \(f^n\) vanishes on \(S\), then so does \(f\), so \(I(S)\) is actually a radical ideal. This argument also shows that \(V(S)=V(\langle S\rangle)=V(\operatorname{rad}\langle S\rangle)\), so any algebraic set is actually the vanishing set of a radical ideal.

Theorem. Fix an algebraically closed field \(k\). Then the maps \(V\) and \(I\) provide mutually inverse bijections between the set of algebraic subsets of \(k^n\) and the set of radical ideals of \(k[x_1,\ldots,x_n]\).

Our proof will use Hilbert’s Nullstellensatz, which we go ahead and state now.

Theorem (Hilbert’s Nullstellensatz). Let \(K/k\) be a field extension. If \(K\) is finitely generated as a \(k\)-algebra, then it is finitely generated as a \(k\)-module.

There are many nice proofs of this result, all of which are beyond the scope of what this post is trying to achieve. Instead, let’s record two applications of this. As a note to the reader, we remark that it is worthwhile to keep track of where and how the Nullstellensatz is used below: some of these statements have weakenings that do not require it!

Corollary 1. All maximal ideals of the ring \(k[x_1,\ldots,x_n]\) take the form \[\mathfrak m_p:=(x_1-a_1,\ldots,x_n-a_n)\] for some \(n\)-tuple \(p=(a_1,\ldots,a_n)\) in \(k^n\).

Proof of Corollary 1. Let’s begin by showing that the ideals \(\mathfrak m_p\) are in fact maximal. Well, there is an “evaluation” ring map \[\operatorname{ev}_p\colon k[x_1,\ldots,x_n]\to k\] given by sending \(x_i\mapsto a_i\) for each \(i\). This map is a surjection onto a field, so it will be enough to show that its kernel is \(\mathfrak m_p\). Well, for any polynomial \(f\), then a manipulation of the polynomial shows that \[f(x_1,\ldots,x_n)\equiv f(a_1,\ldots,a_n)\pmod{\mathfrak m_p},\] so \(f\in\mathfrak m_p\) if and only if \(f(p)=0\).

The above argument motivates the rest of our proof. For a maximal ideal \(\mathfrak m\) of \(k[x_1,\ldots,x_n]\), we must find some \(p\in k^n\) for which \(\mathfrak m=\mathfrak m_p\). For this, we should realize the quotient \[\pi\colon k[x_1,\ldots,x_n]\to k[x_1,\ldots,x_n]/\mathfrak m\] as some kind of evalaution map. Well, by Hilbert’s Nullstellensatz, the quotient map \(\pi\) has codomain which is a field which is finitely generated as a \(k\)-algebra, so it must be \(k\). Now, set \(a_i:=\pi(x_i)\) for each \(i\), and then we see that \(\mathfrak m=\ker\pi\) contains \(x_i-a_i\) for each \(i\). Thus, \(\mathfrak m\) contains \(\mathfrak m_p\) where \(p=(a_1,\ldots,a_n)\), so we are done! \(\blacksquare\)

Remark. We take a moment to note that the first part of the argument above has shown that \(f\in\mathfrak m_p\) if and only if \(f(p)=0\). In other words, \(\mathfrak m_p=I(\{p\})\). This does not require the Nullstellensatz!

Corollary 2. Let \(A\) be a ring which is finitely generated over an algebraically closed field \(k\). Then \(A\) is Jacobson: the intersection of all maximal ideals of \(A\) is the nilradical ideal.

Proof of Corollary 2. We begin by showing the backwards inclusion because it is easier. On one hand, any nilpotent \(f\) has \(f^n=0\) for some \(n\), so \(f^n\) is contained in every ideal, so \(f\) is contained in every prime ideal. Thus, \(f\) is certainly contained in every maximal ideal, so we see that the nilradical is contained in the intersection of all maximal ideals.

The forwards inclusion requires Hilbert’s Nullstellensatz. Given some element \(f\in A\) which is not nilpotent, we must find a maximal ideal \(\mathfrak m\) which fails to contain \(f\). A promising start is to recall that the proper ideals of \(A\) avoiding \(f\) are in bijection with the proper ideals of the localization \(A[f^{-1}]\) by sending ideals \(I\subseteq A[f^{-1}]\) to \(A\cap f\), though we will not technically use this fact. Thus, we let \(\mathfrak m_f\) be a maximal ideal of \(A[f^{-1}]\) (which exists because \(A[f^{-1}]\) is nonzero because \(f\) is not nilpotent\), and we will use \(\mathfrak m:=A\cap\mathfrak m_f\).

It remains to check that \(\mathfrak m\) is actually a maximal ideal. Well, we claim \(A/\mathfrak m\) is isomorphic to \(k\), from which the result follows. For this, we use the canonical map \[\frac A{\mathfrak m}\to\frac{A[f^{-1}]}{\mathfrak m_f}.\] Now, note that the codomain is a field which is finitely generated as a \(k\)-algebra (because \(A\) is), so the codomain must be \(k\) by Hilbert’s Nullstellensatz! Thus, the domain must be a subfield of \(k\); however, the domain contains \(k\) because \(A\) is a \(k\)-algebra, so the domain must be \(k\). \(\blacksquare\)

We are now ready to prove our theorem.

Proof of Theorem. We are being asked to show that \(I(V(J))=J\) for each radical \(J\) and that \(V(I(Z))=Z\) for each algebraic set \(Z\). We quickly note that the first check implies the second without much work: by a previous remark, any algebraic set \(Z\) will take the form \(V(J)\) for some radical ideal \(J\), but then \[V(I(V(J)))=V(J)\] by the first check.

Thus, it remains to show that \(I(V(J))=J\) if \(J\) is a radical ideal. For this, we use our two corollaries. The Remark after Corollary 1 explains that \(\mathfrak m_p=I(\{p\})\), so we see that \[I(V(J))=\bigcap_{p\in V(J)}I(\{p\})=\bigcap_{p\in V(J)}\mathfrak m_p.\] Continuing, we see \(p\in V(J)\) if and only if everything in \(J\) vanishes on \(p\), which is equivalent to asking for \(J\subseteq\mathfrak m_p\) as just discussed. Thus, \[I(V(J))=\bigcap_{\substack{p\in k^n\\J\subseteq\mathfrak m_p}}\mathfrak m_p.\] Now, Corollary 1 tells us that every maximal ideal actually takes the form \(\mathfrak m_p\), so we can replace this intersection with \[I(V(J))=\bigcap_{\substack{\mathfrak m\text{ maximal}\\J\subseteq\mathfrak m}}J.\] We would like to show that this latter intersection equals \(J\), for which we will use Corollary 2. Well, ideals of \(k[x_1,\ldots,x_n]\) containing \(J\) are in bijection with ideals of \(k[x_1,\ldots,x_n]/J\) simply by taking a pre-image, so it is enough to show the equality after modding out by \(J\). In this case, we would like to show that the intersection of all maximal ideals of \(A:=k[x_1,\ldots,x_n]/J\) equals \(J\). But this intersection equals the nilradical of \(A\) by Corollary 2, which is the zero ideal because \(J\) is radical. \(\blacksquare\)

Remark. The end of this proof also shows that \(I(V(J))=\operatorname{rad}J\) for all ideals \(J\) (not necessarily radical). The point is that, after modding out by \(J\), the nilradical of the quotient \(k[x_1,\ldots,x_n]/J\) might not be zero, but it is still \((\operatorname{rad}J)/J\).