1 Introduction

It is well known that quartic surfaces can have at most 16 ordinary double points and if this is the case the surface is a (classical) Kummer surface. Indeed, projecting from a double point exhibits the quartic surface as a double cover of the plane branched in a degree 6 curve with at most 15 double points and if there are 15 double points, the branch locus consists of a union of 6 lines in general position and its double cover is a classical Kummer surface as explained in [5, p. 774]. For a proof based on affine geometry over the field \({\mathbb {F}}_2\), see [8]. See also [1, Prop. VIII.6.1] where it is assumed that the 16 double points form an “even” set (to be explained below).

The aim of this note is to give a simple proof that any complex K3 surface, algebraic or not, can acquire no more than 16 ordinary double points, a result originally due to V. Nikulin  [8] who proved this by lattice theoretic methods. Remark that on the minimal resolution of such a surface the nodes give disjoint nodal curves and on a K3 surface these span a negative definite lattice in the Picard lattice, a priori of rank \(\le 20\) (recall that non-algebraic surfaces are allowed) and so it is somewhat surprising that there cannot be more than 16 of them.

The proof is based on coding theory and applies equally well to double points of A-D-E type, i.e. to du Val singularities where a refinement can be given. See Remark 4.7. The idea of using coding theory to obtain bounds on the number of double points goes back to A. Beauville’s article [2] and has been further exploited in A. Kalker’s thesis [6]. Applications of codes to characteristic 2 phenomena of K3 surfaces can be found in I. Shimada’s article [10].

The proof applies to algebraic as well as non-algebraic complex K3 surfaces. The algebraic nature of the proof ensures that it is also valid for algebraic K3 surfaces in characteristics distinct from 2. See Remark 4.2. In characteristic 2 the result is false: there are supersingular K3 surfaces with 21 nodes: those with Artin invariant 10, see [9, §4].

Convention In this note X is a compact complex surface, and in § 4 it is a K3 surface. One assumes throughout that \(H^2(X,{\mathbb {Z}})\) has no torsion. It will be considered as a lattice equipped with the integral pairing induced by the cup product. In that situation the Néron–Severi group \({\mathsf {NS}}({X})\) is to be considered as a sublattice spanned by the classes of the divisors. This is a primitive sublattice of \(H^2(X,{\mathbb {Z}})\).

If L is an integral lattice and \(r\in {\mathbb {Q}}\), one denotes by L(r) the same \({\mathbb {Z}}\)-module as L but with form multiplied by r.

2 Codes and lattices

A binary code is a linear subspace of some finite dimensional space W over the field \({\mathbb {F}}_2\). W shall be identified with \({\mathbb {F}}_2^n\), \(n=\dim W\). A vector x of a code C is also called a word. The number of non-zero coordinates of x is its weight, w(x). The dot-product \(x\cdot y= \sum x_j y_j \in {\mathbb {F}}_2\) of two vectors \( x=(x_1,\dots , x_n)\) and \(y =(y_1,\dots ,y_n)\) in \({\mathbb {F}}_2^n\) defines a non-degenerate symmetric bilinear form and a code is called isotropic if \(C\subset C^\perp \) and self-dual if \(C=C^\perp \). Via the reduction modulo 2 map \( \rho : {\mathbb {Z}}^n \rightarrow {\mathbb {F}}_2^n \) a code C lifts to a submodule \( \rho ^{-1}C\) of \({\mathbb {Z}}^n\) with \( 2 \cdot {\mathbb {Z}}^n\subset \rho ^{-1}C \subset {\mathbb {Z}}^n \). The first inclusion shows that \(\rho ^{-1}C\) is of finite index in \({\mathbb {Z}}^n\). It inherits the structure of a lattice from \({\mathbb {Z}}^n\) equipped with its dot-product. However, it turns out to be more convenient to use a different lattice structure, namely \({\mathbb {Z}}^n\) equipped with the standard euclidean form scaled by \(\frac{1}{2}\), which is \({\mathbb {Z}}^n \left( \frac{1}{2}\right) \) by the convention adopted in this paper. This leads to the lattice

$$\begin{aligned} \Gamma _C:= \rho ^{-1} C \subset {\mathbb {Z}}^n\left( \frac{1}{2}\right) . \end{aligned}$$
(1)

One easily sees that the new product on \(\Gamma _C\) has integral values if and only if C is isotropic. See e. g. [4, § 1.3].

The so-called Reed–Muller codes play an essential role. The definition runs as follows. Let I be a finite set of size N. Then the functions \(I \rightarrow {\mathbb {F}}_2\) form the \({\mathbb {F}}_2\)-vector space \({\mathbb {F}}_2^I\). Suppose that I itself consists of the points of an \({\mathbb {F}}_2\)-vector space W of dimension m so that \(N= 2^m\). One orders these points as follows. Let \(\{e_0,\dots ,e_{m-1}\}\) be a basis for W and identify a point \(x=\sum _{j=0}^{m-1} x_j e_j\) with the binary expansion \(n_x=\sum _{j=0}^{m-1} x_j 2^j\) of an integer between 0 and \(2^m-1\). The natural order gives an ordering of the points of W. A function f on W determines a vector \((f_0,\dots , f_{N-1})\in {\mathbb {F}}_2^N\) as follows. First note that a point \(x\in W\) determines the unique integer \(j= n_x\in [0,\dots , N-1]\) and then one sets \(f_j= f(x)\). The polynomial functions of degree k on W together with the zero function define a subspace of \({\mathbb {F}}_2^N\) and this is also the case for polynomial functions of degree \(\le k\). The latter define the k-th order Reed–Muller code \(S^{\le k} (W)\subset {\mathbb {F}}_2^N\), \(N=2^m\). For an extensive treatment of these codes one may consult [7, Chap. 4.5.].

Example 2.1

Take \(m=4\) and \(k=1\). Then \(N=2^4=16\) and \(S^{\le 1}({\mathbb {F}}_2^4)\subset {\mathbb {F}}_2^{16}\) is generated by the 4 code words given as the rows of the following \(4\times 16\) matrix together with the vector with all coordinates equal to 1 arising from the constant function 1. The columns correspond to the binary expansions of the numbers \(0,\ldots ,15\) and the rows correspond to the coordinate functions \( x_0,x_1,x_2,x_3\):

$$\begin{aligned} \left( \begin{array}{lllllllllllllllll} 0 &{}\quad 1 &{}\quad 0 &{}\quad 1&{}\quad 0&{}\quad 1 &{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 1&{}\quad 0&{}\quad 1 \\ 0&{}\quad 0&{}\quad 1&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 1&{}\quad 1&{}\quad 0&{}\quad 0 &{}\quad 1&{}\quad 1&{}\quad 0&{}\quad 0 &{}\quad 1&{}\quad 1 \\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 1 \\ 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 0&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 1&{}\quad 1 \end{array}\right) . \end{aligned}$$
(2)

The code

$$\begin{aligned} \mathsf D_{m+1}:= S^{\le 1} (W) \end{aligned}$$
(3)

is a code of dimension \(m+1\) given by the affine linear functions on W. One can view it as generated by the code \(\mathsf {C}_m := S^1W \), consisting of the linear functions on W, together with the constant function 1. This last word has weight \(2^m\) while the non-zero weights of \(\mathsf {C}_m\) are all \(2^{m-1}\) since the characteristic function of a hyperplane interpreted as a code word has this weight. So the weights of \(\mathsf {D}_m\) itself (lowering the index by one) are \(0,2^{m-2}\) and \(2^{m-1}\).

The code \(\mathsf {D}_m\) can be characterized as follows:

Lemma 2.2

([2, §4]) Let \(C\subset {\mathbb {F}}_2^n\) be a code of dimension m and with non-zero weights \(\ge \frac{1}{2}n\). Then \(n\ge 2^{m-1}\) and equality holds if and only if \(C\simeq \mathsf {D}_m\) in which case it only has non-zero weights \(\frac{1}{2}n= 2^{m-2}\) and \(n=2^{m-1}\).

A further property of the code \(\mathsf {D}_m\) will be used:

Lemma 2.3

Suppose \( n>2^{m-1} \). There is no code \(C\subset {\mathbb {F}}^n_2\) with the property that the intersection of C with every \(2^{m-1}\)-dimensional coordinate subspace of \({\mathbb {F}}^n_2\) is a code isomorphic to \(\mathsf {D}_m\).

Proof

Set \(N=2^{m-1}\). Visualize the code \(\mathsf {D}_m\subset {\mathbb {F}}_2^N\) as generated by \((1,\dots ,1)\) together with the rows of the \((m-1)\times N\) matrix, say M, whose columns are the binary expansions of the numbers \(0,\dots , m-1\) ordered as in (2) where \(m=5, N=16\).

Suppose that one has a code C with the stated properties. Then C contains at least \((m-1)\) vectors whose first N coordinates form the matrix M. In \( {\mathbb {F}}^n_2\) these vectors yield a matrix which is denoted \(\widetilde{M}\). It is easy to see that it suffices to consider the case \(n=N+1\). Suppose that the last column of \(\widetilde{M}\) corresponds to the binary expansion of \(k\in [0,\dots , N-1]\). Then this column is the same as the k-th column \(M_k\) of M. Form now the \((m-1)\times N\) matrix \(M'\) by deleting from \(\widetilde{M}\) a column \(M_\ell \) of the submatrix M with \(\ell \not =k\). Since all columns of M are different, there is a row j such that the entry \(M_{j \ell }\) of \(M_\ell \) is distinct from the entry \(M_{j k}\) of \(M_k\). This implies that the j-th row of the new matrix \(M'\) has weight \(\frac{1}{2}N \pm 1\) which is a contradiction. Hence such C does not exist. \(\square \)

3 Sets of nodal curves on a surface

Let X be a compact complex surface containing a finite set \({\mathcal E}=\{E_1,\dots , E_n\}\) of disjoint smooth rational curves with \(E_i^2=-2\), \(i=1,\dots ,n\). Such curves are also called nodal curves, since these arise as minimal resolutions of ordinary double points. Let be the abstract lattice with basis the classes of the nodal curvesFootnote 1 which can be identified with \({\mathbb {Z}}^n(-2)\). Its dual is given by \( L^*= \frac{1}{2}L \simeq {\mathbb {Z}}^n\left( -\frac{1}{2}\right) \). The quotient map \(L^* \rightarrow L^*/L =\frac{1}{2}L/L \simeq {\mathbb {F}}_2^n\) is just the modulo 2 map \(\rho :{\mathbb {Z}}^n\rightarrow {\mathbb {F}}_2^n\) used to construct lattices from codes (see (1)). Reversing the procedure, one starts with the lattice

$$\begin{aligned} N_{\mathcal E}: =\text { primitive closure of } L \text { in } {\mathsf {NS}}({X}), \end{aligned}$$

where \({\mathsf {NS}}({X})\) is the Néron–Severi lattice of X. Since there are inclusions \(L \subset N_{\mathcal E}\subset N_{\mathcal E}^*\subset L^*\simeq {\mathbb {Z}}^n(-\frac{1}{2})\), setting

$$\begin{aligned} C_{\mathcal E}= N_{\mathcal E}/L \subset L^*/L = {\mathbb {F}}_2^n, \end{aligned}$$
(4)

the lattice \(N_{\mathcal E}(-1)\) is precisely the inverse image of the code \( {C_{\mathcal E}}\) under the mod 2 map. In other words,

$$\begin{aligned} N_{\mathcal E}= \Gamma _{C_{\mathcal E}}(-1). \end{aligned}$$
(5)

Using that \(N_{\mathcal E}\) is primitive in the lattice \({\mathsf {NS}}({X}) \), one arrives at an equivalent description of the code \(C_{\mathcal E}\), namely

Here primitivity is used to establish the rightmost inclusion.

The first consequence of this description is a bound for \(\dim C_{\mathcal E}\). Since \({\mathsf {NS}}({X}) \) is primitive in \(H^2(X,{\mathbb {Z}})\), the quotient \({\mathsf {NS}}({X})/2{\mathsf {NS}}({X})\) injects into \( H^2(X,{\mathbb {Z}})/2 H^2(X,{\mathbb {Z}})= H^2(X,{\mathbb {F}}_2)\), a symplectic inner product space in which the image of \(\varphi \) is totally isotropic and so has dimension \(\le \frac{1}{2}b_2(X)\). It follows that

$$\begin{aligned} \dim C_{\mathcal E}\ge n- \frac{1}{2}b_2(X). \end{aligned}$$
(6)

Secondly, using the notion of an “even set of nodal curves”, which means that the sum of the nodal curves is divisible by 2 in \({\mathsf {NS}}({X})\), there is a further consequence:

Lemma 3.1

Non-zero code words in \(C_{\mathcal E}\) correspond to even subsets of disjoint nodal curves, and conversely. More precisely, with \(e_1,\dots ,e_n\) the standard basis of \({\mathbb {F}}_2^n\), the sum \(\sum _{i\in J} e_i\) belongs to the code \(C_{\mathcal E}\) if and only if \(\sum _{i\in J} E_i\) is even in \({\mathsf {NS}}({X})\). The weight of a word in \(C_{\mathcal E}\) is the cardinality of the corresponding set.

4 Applying coding theory to nodal K3 surfaces

There are severe restrictions on even sets of disjoint nodal curves on a complex K3 surface:

Lemma 4.1

Let X be a complex K3 surface containing an even set of k disjoint nodal curves. Then \(k=0,8\) or 16. If \(k=8\) the associated double cover is a K3 surface and if \(k=16\) it is a complex torus.

Proof

Let \({\mathcal E}=\{E_1,\dots ,E_k\}\) be an even set of double curves on X and from the corresponding double cover. The inverse images of the double curves are exceptional curves and blowing these down results in a minimal surface, say \(Y_k\). Since the Euler number of X equals \(e(X)=24\), one calculates easily that \(e(Y_k )= 48 - 3k\).

On the other hand, the canonical bundle of \(Y_k\) is trivialFootnote 2 so that \(p_g(Y_k )=1\) and \(c_1^2(Y_k )=0\). The classification theorem [1, Ch. VI, Table 10] then gives two possibilities: \( Y_k\) is either a torus or a K3-surface. Combining this with Noether’s formula

$$\begin{aligned} \frac{1}{12} \cdot e(Y_k) = 2 - q(Y_k) =\frac{1}{12} (48 - 3k), \end{aligned}$$

gives two possibilities: either \(k=8\) and then \(Y_k\) is a K3 surface, or \(k=16\) and then \(Y_k\) is a torus. \(\square \)

Remark 4.2

The preceding argument is also valid for algebraic K3 surfaces in characteristics different from 2 since in that case there are only “classical” Enriques and bi-elliptic surfaces having the same invariants as in characteristic 0. Compare the table on page 373 of [3].

Combining Lemma 3.1, Lemma 2.2 and (6) one deduces:

Corollary 4.3

For a set \({\mathcal E}\) of disjoint nodal curves on a complex K3 surface the weights of the associated code are 0, 8 or 16. If \({\mathcal E}\) consists of 16 nodal curves, the associated code \(C_{{\mathcal E}}\) is isomorphic to \(\mathsf D_5\) where \(\mathsf D_5\) is the Reed–Muller code (3). If \({\mathcal E}\) consists of 8 nodal curves the code consists of the line in \({\mathbb {F}}^8_2\) spanned by \((1,\dots ,1)\).

Proof

The first assertion is a direct translation of Lemma 4.1 using Lemma 3.1.

Assume that \(\#{\mathcal E}=16\). The estimate (6) for the code \(C_{{\mathcal E}}\subset {\mathbb {F}}_2^{16}\) states that \(m=\dim C_{{\mathcal E}} \ge 16 - \frac{1}{2}\cdot 22= 5\). Then, since the non-zero weights are \(\ge 8\), Lemma 2.2 implies \(16\ge 2^{m-1}\ge 2^4\). Hence, since then equality holds, \(C_{{\mathcal E}}=\mathsf D_5\).

The assertion for \(k=8\) is clear. \(\square \)

Since the code \(\mathsf D_5\) contains the word \((1,\ldots ,1)\), the sum of all the nodal curves is even and so any set of 16 disjoint nodal curves on a K3 surface X is an even set. This reproves a result by V. V. Nikulin [8]. Forming the double cover gives a complex two-torus blown up in 16 points and the quotient by the standard involution is a Kummer surface whose minimal resolution of singularities is X. Hence:

Proposition 4.4

Let X be a complex K3 surface containing a set \({\mathcal E}\) of 16 disjoint nodal curves. Then \({\mathcal E}\) is an even set, and X is the minimal resolution of a Kummer surface. Moreover, the primitive sublattice of \({\mathsf {NS}}({X})\) spanned by \({\mathcal E}\) is isometric to the lattice \(\Gamma _{D_5}(-1)\).

The lattice spanned by 16 disjoint nodal curves on a (desingularised) Kummer surface is also called the Kummer lattice. Its characterization as the abstract lattice \(\Gamma _{\mathsf D_5}(-1)\) makes it possible to show the main result of this note:

Theorem 4.5

([8, Corollary 1]) A K3 surface cannot contain more than 16 disjoint nodal curves.

Proof

Suppose there is a set \({\mathcal E}\) consisting of \(n>16\) disjoint nodal curves on the surface. A subset of 16 nodal curves defines a coordinate subspace of the code \(C_{\mathcal E}\subset {\mathbb {F}}_2^n\), which, by Corollary 4.3 must be isomorphic to \(\mathsf D_5\). Lemma 2.3 then implies the result. \(\square \)

Suppose \(\bar{X}\) is a compact complex surface with at most du Val singularities, i.e. double points of type \(A_n\)-\(D_n\)-\(E_n\). The corresponding lower case letter denoting the number of each type, put

$$\begin{aligned} \delta (X) =\sum (a_n+e_n)\cdot \left[ {n+1}\over 2\right] +d_n \cdot \left[ n+2\over 2\right] , \end{aligned}$$

where X is the minimal resolution of singularities of \(\bar{X}\). The number \(\delta (X)\) gives the number of disjoint nodal curves on X coming from desingularizing \(\bar{X}\) and so one finds:

Corollary 4.6

([8, Corollary 2]) If X is a K3 surface which is the minimal resolution of singularities of a surface having at most du Val singularities, then \(\delta ( X)\le 16\).

In particular, \(\bar{X}\) can have at most 16 ordinary nodes, or \(A_1\)-singularities. More generally, \(\delta (X)=16\) if there are only \(A_1\) or \(A_2\) singularities, but otherwise it is strictly smaller. In addition, since the Picard number can be at most 20, the total number of nodal curves is at most 20 and so, among the types appearing as Du Val singularities, one can have at most one \(A_{16}\) and two \(D_7,E_7\) or \(E_8\). Also note the discrepancy with the Milnor number \(\mu (X)=\sum n (a_n+d_n+e_n)\). Indeed the more singularities with high Milnor number, the closer \(\delta (X)/\mu (X) \) gets to \(\frac{1}{2}\).

Remark 4.7

One can say more for specific types of projective K3 surfaces. For instance, a degree six K3 surface in \({\mathbb {P}}^5\), necessarily a complete intersection of a quadric and a cubic, can have no more than 15 double points. See [6].