Kyushu J. Math. 72 (2018), 123–141 doi:10.2206/kyushujm.72.123

ADETAILEDSTUDYOFTHERELATIONSHIP BETWEENSOMEOFTHEROOTLATTICES ANDTHECODINGTHEORY

Michio OZEKI∗ (Received 26 December 2016 and revised 27 April 2017)

Abstract. In the present article we study the even which lies between the # root lattice m · An and the dual lattice (m · An) . Here m · An is an orthogonal sum of m # copies of the root lattice An. In the course of the study the code over the ring An/An arises in a natural way. We find that an intimate relationship between the even unimodular lattice # containing m · An as a sublattice and the error correcting code over the ring An/An exists. As a consequence we could reconstruct sixteen non-isometric Niemeier lattices out of twenty- four non-isometric lattices by using the present approach.

1. Introduction

In [18] H.-V. Niemeier has succeeded in the complete classification of the 24-dimensional even unimodular lattices. There are exactly twenty-four non-isometric classes. But for the each isometry class of the other twenty-three classes of the lattices has the unique root sublattice of rank 24, and each root sublattice has the unique (up to isometry) 24-dimensional even unimodular overlattice. Later, Venkov [25] and Conway–Sloane [4] respectively gave further proofs of the same result. After these three groups of researchers, other researchers in combinatorics who take an interest in re-constructing the so-called twenty-four Niemeier lattices by way of the coding theory usually trace the route which starts from appropriate codes of length 24 over a certain finite ring and reaches at those lattices (cf. [1, 5, 17]). In the present article we consider the relationship between the lattice theory and the coding theory in the reverse route. More precisely, we start from an orthogonal sum of m copies of the root lattices of type An, and we explore what even unimodular lattices L lie between the dual of m · An and m · An. A closer analysis of this procedure leads to a natural derivation of the codes over peculiar finite rings. As a consequence of our present research we could show that some of the Niemeier lattices are constructed from the codes of length less than twenty-four. This fact is useful for the arithmetical studies of the Niemeier lattices, such as the computation of the Fourier coefficients of the Siegel theta series associated with the Niemeier lattices or the covering radius problem of the Niemeier lattices and the even unimodular lattices of dimension greater than 24 that are treated in the present article.

2010 Mathematics Subject Classification: Primary 11H06; Secondary 11H71. Keywords: unimodular lattice; root lattice; coding theory. ∗Emeritus Professor at the Department of Mathematical Sciences, Faculty of Science, Yamagata University.

c 2018 Faculty of Mathematics, Kyushu University 124 M. Ozeki

2. Lattices

2.1. Some generalities on lattices

Let Z be the ring of rational integers and let R be the field of real numbers. A finitely g generated Z-module L in R with a positive definite metric is called a positive definite quadratic lattice. Since we will only deal with the positive definite quadratic lattices, we shall henceforth refer to these simply as the lattices. A lattice L is integral if L satisfies (x, y) ∈ Z for any x, y ∈ L where (·, ·) is the bilinear form associated to the metric. Two integral lattices L1 and L2 are said to be isometric if and only if there exists a bijective linear mapping from L1 to L2 preserving the metric. The maximal number of linearly independent vectors over R in L is called the rank of L. The dual lattice L# of L is defined by

# = { ∈ ⊗ | ∈ ∀ ∈ } L y L Z Q (x, y) Z, x L .

Here Q is the field of rational numbers. A lattice L is even if any element x of L has an even norm (x, x). In an even lattice L, we say that x is a 2m-vector if (x, x) = 2m holds for some natural number m. Let 32m(L) be the set defined by

32m(L) = {x ∈ L | (x, x) = 2m}. (1)

A lattice L is said to be unimodular if L = L#. If L and M are two lattices such that M ⊂ L holds, then M is called a sublattice of L and L is called an overlattice of M. Suppose that there are two sublattices L1 6= {0} and L2 6= {0} of the lattice L satisfying the condition

(y, z) = 0, ∀y ∈ L1, ∀z ∈ L2, and that any element x ∈ L can be written as x = y + z, y ∈ L1, z ∈ L2. Then L is called an orthogonal sum of the two sublattices L1 and L2, and we write as L = L1 ⊕ L2. An orthogonal sum of more than two sublattices are likewise defined. When the lattice L is an orthogonal sum of m sublattices each one is isometric to L1, then we simply write L = m · L1. = ⊕ # = # ⊕ # We may note that if L L1 L2 then it holds that L L1 L2. When L cannot be expressed as an orthogonal sum of two sublattices, then L is called irreducible. An integral lattice L is called a root lattice if L has a basis consisting of 2-vectors. It is known [26] that all the irreducible integral root lattices are An (n ≥ 1), Dn (n ≥ 4) and En (n = 6, 7, 8). In closing this section, we give a table of the root sublattice R for each of the Niemeier lattices and the cardinalities of 32(R). The table will be referred to later.

2.2. An-type root lattices

In the present paper, we are particularly interested in the root lattices An. Let e1, e2,... be orthonormal vectors in an appropriate Euclidean vector space. The root lattice An (n ≥ 1) is the lattice spanned by the vectors e1 − e2, e2 − e3,..., en − en+1 over Z. # # Let An be the dual lattice of the root lattice An. In [18], the quotient module An/An is precisely described, and it is a cyclic group of order n + 1. The representative of a cyclic The root lattices and the coding theory 125

TABLE 1. The root sublattices R of the Niemeier lattice and the cardinality |32(R)|. R D24 3 · E8 E8 ⊕ D16 A24 2 · D12 (2 · E7) ⊕ D10 |32(R)| 1104 720 720 600 528 432 R E7 ⊕ A17 D9 ⊕ A15 3 · D8 2 · A12 4 · E6 E6 ⊕ D7 ⊕ A11 |32(R)| 432 384 336 312 288 288 R 4 · D6 D6 ⊕ (2 · A9) 3 · A8 (2 · D5) ⊕ (2 · A7) 4 · A6 6 · D4 |32(R)| 240 240 216 192 168 144 R D4 ⊕ (4 · A5) 6 · A4 8 · A3 12 · A12 24 · A1 ∅ |32(R)| 144 120 96 72 48 0

# generator of An/An is given by n 1 X n α = et − en+ . (2) 1 n + 1 n + 1 1 t=1

Note that α1 is the minimum representative in the equivalence class to which α1 belongs. Here, we state that α1 is a minimum representative if α1 satisfies the inequality

(α1, α1) ≤ (β, β) for all β, which is equivalent to α1 modulo An. The set of all the minimum representatives of # An/An is given by

n+1−` n+1 ` X n + 1 − ` X α = 0, α = et − et , 1 ≤ ` ≤ n. (3) 0 ` n + 1 n + 1 t=1 t=n+2−`

The norm (α`, α`) of α` is computed to be `(n + 1 − `) (α , α ) = , 1 ≤ ` ≤ n. (4) ` ` n + 1 ≤ ≤ Further, when 1 `1 < `2 n, the inner product (α`1 , α`2 ) is computed to be ` (n + 1 − ` ) (α , α ) = 1 2 . (5) `1 `2 n + 1 # Remark 1. Let α` be a minimal representative of An/An. There are other minimum representatives in the class α` + An. The number of minimum representatives in the class + n+1 α` An is easily computed to be ` .

3. Code over a finite field F p

Let p be a prime number and let Fp be a finite field of p elements. An [m, k] code over Fp is m m a vector subspace of dimension k of the vector space Fp . In Fp , the inner product is defined ⊥ in the usual way. Let C be an [m, k] code over a finite field Fp. The dual code C of the code C is defined by ⊥ m C = {v ∈ Fp | (u, v)c = 0, ∀u ∈ C}, m where (u, v)c is the inner product on the space Fp . 126 M. Ozeki

An [m, k] code C is called self-orthogonal if C satisfies the condition C ⊂ C⊥, and self- dual if C satisfies the condition C = C⊥. A well-known method to make a new code from the two given codes C1 and C2, over Fp, is an orthogonal sum of the two codes C1 ⊕ C2 (cf. [14, Ch. 1]). When we need an orthogonal sum of k copies of a code C, we may use Ck as an abbreviation. As to the general references, the readers may read [14] or [22, Ch. 3].

3.1. Binary linear codes = n [ ] Let V F2 be the vector space of dimension n over F2. A linear n, k code C is a vector subspace of V of dimension k. An element u in C is called a code word of C. Two codes are said to be equivalent if, after a suitable change of coordinate positions, all the code words in both codes coincide. A change of coordinate positions which sends each codeword in C another codeword in C is called an automorphism of the code C, and the set of all automorphisms of C forms a group under the composition. This group is denoted by Aut(C). Let u = (u1, u2,..., un) be a vector in V , then the Hamming weight wt(u) of the vector u is defined to be the number of i such that ui 6= 0. The Hamming distance d(u, v) on V is also defined by d(u, v) = wt(u − v). Let C be a code, then the minimum distance d(C) of the code C is defined by

d(C) = Minu,v∈C,u6=vd(u, v)

= Minu∈C,u6=0wt(u).

Let C be a self-dual binary [n, n/2] code, then the weight wt(u) of each code word u in C is an even number. Further, if the weight of each code word u in C is divisible by 4, then the code is called a doubly even binary code. It is known that doubly even self-dual binary codes C exist only when the length n of C is a multiple of 8. A codeword of weight 4 is sometimes called a tetrad. Let C be a doubly even binary code. The subcode of C generated by all the tetrads in C is called a tetrad subcode of C. = = n Let u (u1, u2,..., un) and v (v1, v2, . . . , vn) be any pair of vectors in F2, then the number of common 1s of the corresponding coordinates for u and v is denoted by u ∗ v. This is called the intersection number of u and v, and u ∗ u is simply wt(u). There is one important relation, which will be used often:

wt(u + v) = wt(u) + wt(v) − 2u ∗ v. (6)

4. From root lattices to a code over a field

We are going to study the process that starts with an orthogonal sum of the copies of root lattice of type An and ends with a self-dual code over a finite field. To be more precise, we assume that mn ≡ 0 mod 8, n + 1 = p is a prime number and we consider whether there # exists an integral lattice L that lies between the lattice (m · An) and (m · An), where (m · An) is an orthogonal sum of m copies of An,

# (m · An) ⊃ L ⊃ (m · An). The root lattices and the coding theory 127

# 4.1. An/An is viewed as a finite field # First, we treat the quotient An/An which is isomorphic to Fp as an additive group. Let α` = α` + An, 0 ≤ ` ≤ p − 1 be the cosets represented by α`, 0 ≤ ` ≤ p − 1. Further, we # define a multiplication for An/An by

αi ◦ α j = αi j , i, j ∈ Fp. This multiplication is also defined by

i z }| { αi ◦ α j = α j + · · · + α j j z }| { = αi + · · · + αi . We see that both definitions lead to the same effect. We also see that ◦ + = ◦ + ◦ αi (α j1 α j2 ) αi α j1 αi α j2 .

Two rational numbers b1/a1, b2/a2 are said to be congruent modulo 1 if the difference of them is a rational integer. We write this relation as b b 1 ≡ 2 (mod 1). a1 a2 We close this section by proving an easy proposition. ∗ PROPOSITION 4.1. Let i, j ∈ Fp, i 6= j and αi , α j be the two cosets represented by the # minimal representatives αi , α j of An/An. Then for any βi ∈ αi and any β j ∈ α j we have −i j (β , β ) ≡ (mod 1). i j p

Proof. The vectors βi (respectively β j ) are expressed as βi = αi + u, u ∈ An (respectively β j = α j + v, v ∈ An). Then by (2) we obtain

(βi , β j ) = (αi + u, α j + v)

= (αi , α j ) + (αi , v) + (α j , v) + (u, v) −i j ≡ (mod 1). 2 p

# 4.2. (m · An) /(m · An) as the vector space # # We define a map 8 from (m · An) to (m · An) /(m · An) by

# # 8 : (m · An) → (m · An) /(m · An)

x = (x1,..., xm) 7→ 8(x) = (x1,..., xm). Next we examine the quotients

# (m · An) /(m · An) ⊃ L/(m · An). 128 M. Ozeki

We may exclude the trivial case when L = (m · An). Thus we have L/(m · An) 6= {0}. We observe that # ∼ m (m · An) /(m · An) = Fp (isomorphic) # m as additive groups. For 8(x) = (x1,..., xm) ∈ (An/An) , we can define a scaler # multiplication of 8(x) by αi ∈ An/An = Fp:

αi 8(x) = (αi ◦ x1, αi ◦ x2,..., αi ◦ xm).

# Since L/(m · An) is closed under the addition and the scaler multiplication of An/An = Fp # in (m · An) /(m · An) can be regarded as the componentwise multiple addition of the vectors # in (m · An) /(m · An) (cf. Section 4.1), L/(m · An) is regarded as a vector subspace of the # vector space (m · An) /(m · An) over the field Fp, that is to say a code over Fp. By our beginning assumption that L/(m · An) 6= {0}, the dimension of L/(m · An) is greater than or equal to one. To each xk (1 ≤ k ≤ m) we associate αµ(k), where αµ(k) is the minimal representative # of xk. And for y = (y1,..., ym) ∈ (m · An) we put 8(y) = (y1,..., ym). We write αν(k) to denote the minimal representative of yk (1 ≤ k ≤ m). The code 8(L) = L/(m · An) consists of all the codewords 8(x) = (x1,..., xm), x ∈ L. # We compare two kinds of inner products. One is (x, y) with x, y ∈ (m · An) = m · # # An, and the other is (8(x), 8(y))c with 8(x), 8(y) ∈ (m · An) /(m · An). Let x, y be # in (m · An), and we have set that 8(x) = (x1,..., xm) = (αµ(1),..., αµ(m)) and 8(y) = (y1,..., ym) = (αν(1),..., αν(m)). From this we have xk ∈ αµ(k), 1 ≤ k ≤ m and yk ∈ αν(k), 1 ≤ k ≤ m. Then by Proposition 4.1 we have m X µ(k)ν(k) (x, y) ≡ − (mod 1). (7) p k=1 On the other hand, in the coding theory context we have m X (8(x), 8(y))c = µ(k)ν(k). (8) k=1 # LEMMA 4.2. Let x,y be two elements of (m · An) . Then we have

(x, y) ∈ Z ⇐⇒ (8(x), 8(y))c = 0. Proof. From the relations (7) and (8) the lemma follows easily. 2

We prove a basic theorem which connects a code property of L/(m · An) with a lattice property of L.

THEOREM 4.3. Let the notation be as above. The following hold:

(i) L/(m · An) is self-orthogonal ⇔ L is integral; (ii) L/(m · An) is self-dual ⇔ L is unimodular; (iii) L/(m · A1) is doubly even binary self-dual ⇔ L is even unimodular.

Proof. Proof of (i). First, we show that if L is integral then the condition L# ⊃ L holds. Suppose that x ∈ L, then for any element y ∈ L we must have (x, y) ∈ Z. This implies that The root lattices and the coding theory 129

# L ⊃ L. By Lemma 4.2 we have (8(x), 8(y))c = 0. This proves the direction ‘⇐’ part of (i). The inverse direction is also proved by using Lemma 4.2. # # Proof of (ii). We assume that L = L holds. Let x be an element of (m · An) with ⊥ an additional condition 8(x) ∈ (L/(m · An)) . For any y ∈ L we obviously have 8(y) ∈ (L/(m · An)) and (8(x), 8(y))c = 0. By Lemma 4.2 it holds that (x, y) ∈ Z. Thus we have # x ∈ L . By our assumption x ∈ L holds, and consequently we have 8(x) ∈ (L/(m · An)). ⊥ Therefore we conclude that (L/(m · An)) = (L/(m · An)) and the ‘⇐’ part of (ii) is proved. Proof of the ‘⇒’ part of (ii). We assume that L/(m · An) is self-dual. We take a vector ⊥ x ∈ L, then 8(x) ∈ L/(m · An) = (L/(m · An)) . For any element y ∈ L we have 8(y) ∈ L/(m · An) and (8(x), 8(y))c = 0. By Lemma 4.2 we have (x, y) ∈ Z, and consequently x ∈ L#. This implies that L# = L. Proof of (iii). In view of (ii) we have only to show that

L/(m · A1) is doubly even ⇔ L is even.

Assume that L/(m · A1) is a doubly even self-dual binary code. Then any element 8(x) ∈ L/(m · A1) (x ∈ L) satisfies wt(8(x)) ≡ 0 (mod 4). We choose a vector x0 from the coset x + (m · A1) so that the non-zero entries of x0 are all equal to α1 (recall equation (4) with = = = 1 ≡ n ` 1). Therefore we clearly have (x0, x0) 2 (wt(8(x)) 0 (mod 2). We see that (y, y) ≡ 0 (mod 2) for any element y ∈ x + (m · A1). Thus L is even. Conversely we assume that L is even. Then for any y ∈ L the congruence (y, y) ≡ 0 (mod 2) holds. We may assume that y 6∈ (m · A1). Then we can find another y0 ∈ y + (m · A1) such that the non-zero entries of y0 are all equal to α1. We observe that

(y0, y0) = (α1, α1)wt(8(y0)) = 1 ≡ 2 wt(8(y0)) 0 (mod 2).

Thus we have wt(8(y0)) ≡ 0 (mod 4). This argument applies for all y ∈ L, and consequently L/(m · A1) is doubly even. 2

PROPOSITION 4.4. Suppose that n ≥ 2 and n + 1 = p is a prime number. If L is a # unimodular lattice such that (m · An) ⊃ L ⊃ (m · An) holds, then L is even unimodular. Proof. Let x be a vector in L. We reuse a notation from above equation (7):

8(x) = (x1,..., xm)

= (αµ(1),..., αµ(m)).

The norm of the vector (αµ(1),..., αµ(m)) is given by

m m X X µ(k)(p − µ(k)) (α , α ) = by equation (4). µ(k) µ(k) p k=1 k=1 The last sum should be an integer and we have the congruence

m X µ(k)(p − µ(k)) ≡ 0 (mod p). k=1 130 M. Ozeki

We see that µ(k)(p − µ(k)) ≡ 0 (mod 2) for any 0 ≤ µ(k) ≤ p − 1. Thus we have m X µ(k)(p − µ(k)) ≡ 0 (mod 2p). k=1

Consequently the norm of the vector (αµ(1),..., αµ(m)) is an even integer, and the value (x, x) is also an even integer. Therefore L is even unimodular. 2 Remark 2. In Theorem 4.3(iii), it is known that m ≡ 0 (mod 8) is a necessary condition.

Remark 3. W. Ebeling [7, Ch. 5] discusses the construction of lattices from codes over Fp. Some of his statements are closely connected with Theorem 4.3 of the present article.

4.3. Even unimodular lattices coming from 24 copies of A1 We confine ourselves to the 24-dimensional even unimodular lattices. The present research enables us to treat the cases when m ≥ 32, m ≡ 0 (mod 8). But if we try to cover these cases we would need a lot more space, and so we decided not to do so. The main references are [20] and [23]. By Theorem 4.3(iii), we should explore doubly even self-dual binary codes of length 24. For this we can refer to the articles [23] or [8]. However, here we present another classification proof of doubly even self-dual binary codes of length 24, which seems to be new. We quote the following proposition.

PROPOSITION 4.5. (Venkov [5, Ch.18] or [25]) Let L be an even unimodular 24-dimen- sional lattice, and 32(L) be the set of norm 2 vectors in L. Then it holds that X 1 (x, α)2 = (α, α)|3 (L)|, 12 2 x∈32(L) where α ∈ R24. Suppose that an even unimodular 24-dimensional lattice L has the property

# (24 · A1) ⊃ L ⊃ 24 · A1.

Then 32(L) can be decomposed into the two parts 32(L) = 32,1(L) ∪ 32,2(L), where −1 32,1(L) = 24 · A1 and 32,2(L) = {8 (u) | u ∈ C4} ∩ 32(L). Here C4 is the subset of the codewords of weight 4 in the binary code C = L/(24 · A1) and 8 is the mapping

8 : L → L/(24 · A1).

Let Cc4 be the tetrad subcode of the code L/(24 · A1). We decompose Cc4 into the orthogonal sum of the indecomposable subcodes which are generated by the codewords of weight 4: M Cc4 = Cd4, j . j

If we use C4, j to denote the subset of Cd4, j consisting of the codewords of weight 4, then we obtain a disjoint union of C4: [ C4 = C4, j . (9) j The root lattices and the coding theory 131

TABLE 2. The values for ν(˜ C). n 4 6 8 10 12 14 16 ν(˜ dn) 4 8 12 16 20 24 28 n 18 20 22 24 26 28 30 ν(˜ dn) 32 36 40 44 48 52 56 n 7 8 ν(˜ en) 16 28

By Theorem 6.5 in [23] each indecomposable component generated by the codewords of weight 4 is one of d2k(k ≥ 2), e7 and e8. Here the generator matrices of these codes are given in [23], and e8 is the extended Hamming [8, 4, 4] binary code, which is named as E8 in [23]. We now define an invariant for the indecomposable codes.

Definition. Let C be one of the tetrad codes d2k(k ≥ 2), e7, e8, then ν(˜ C) is defined by X ν(˜ C) = γ ∗ u, u∈C4 where γ is a fixed codeword of C4. The number ν(˜ C) is identical for the equivalence class of indecomposable codes generated by the codewords of weight 4, and we call it the adjacency measure of the code C. It can be verified that the number ν(˜ C) does not depend on the particular choice of γ . The computations of ν(˜ C) are not very difficult and we give the values for them in Table 2. Before proving the next proposition, we give a detailed explanation of the lattice L. The lattice L contains the lattice 24 · A1 as a sublattice. We fix one minimal representative ∈ # = · α1 A1/A1 so that we have (α1, α1) 1/2. Suppose that L/(24 A1) contains a codeword u of weight 4. Let 1 ≤ i1 < i2 < i3 < i4 ≤ 24 be the non-zero coordinate positions of u and zero at other coordinate positions of u. Then the lattice may contain the vectors x of norm 2 whose only non-zero coordinate positions are i1, i2, i3, i4. At those positions the value of the coordinates are ±α1. Therefore there are just sixteen vectors x ∈ L such that 8(x) = u. Among such x we may pick up a particular one x0(u) whose non-zero coordinate values are all α1. (We shall use this later.) The following proposition is an important clue for understanding the configuration of the indecomposable components of the code Cc4. L PROPOSITION 4.6. Let Cc4 = j Cd4, j be the decomposition of the code Cc4 into the indecomposable components Cd4, j . Then each component has the identical adjacency measure. Proof. By Proposition 4.5 we have X 1 (x, α)2 = (α, α)|3 (L)|. (10) 12 2 x∈32(L) The left-hand side of equation (10) is decomposed into two parts X X X (x, α)2 = (x, α)2 + (x, α)2, (11) x∈32(L) x∈32,1(L) x∈32,2(L) 132 M. Ozeki where 32,1(L) and 32,2(L) are as already explained above. We must distinguish the two cases. First, when the set 32,2(L) is empty. This happens only when the self-dual code has no codeword of weight 4. Such code is known as binary Golay [24, 12, 8] code. In this case we simply have 32 = 32,1. Next, when 32,2(L) 6= ∅. Let C4 be the subset of C = L/(24 · A1) consisting of the codewords of weight 4. We may have the subset decomposition of C4, such as equation (9), where each C4, j is the subset of the codewords of weight 4 in an indecomposable subcode of C. Take any one of C4, j and any one of u ∈ C4, j . Consider x0(u) for the u described in the discussion right after Table 1, and we put α = x0(u). It is easy to compute that X (x, α)2 = 8. (12) x∈32,1(L) To treat the sum P (x, α)2 we rewrite it as x∈32,2(L) X X X X (x, α)2 = (x, α)2 ∈ −1 x∈32,2(L) i v C4,i x∈8 (v)∩32(L) X X = (x, α)2. ∈ −1 v C4, j x∈8 (v)∩32(L)

The above transition is correct because it holds that (v, u) = 0 for u ∈ C4, j , v ∈ C4,i , i 6= j. When u, v belong to C4, j then we must have u ∗ v = 0, 2, 4. The cases u ∗ v = 1, 3 are impossible. Otherwise C cannot be doubly even. −1 When u ∗ v = 0, we apparently have (x, α) = 0 for any x ∈ 8 (v) ∩ 32(L). When u ∗ v = 2, we have ( 0 for eight of x ∈ 8−1(v) ∩ 3 (L), (x, α)2 = 2 −1 1 for eight of x ∈ 8 (v) ∩ 32(L). When u ∗ v = 4 we have  −1 0 for six of x ∈ 8 (v) ∩ 32(L),  2 −1 (x, α) = 4 for two of x ∈ 8 (v) ∩ 32(L),  −1 1 for eight of x ∈ 8 (v) ∩ 32(L). Thus we have X X X (x, α)2 = 4 · u ∗ u + 4 u ∗ v − v∈C4, j x∈8 1(v) v∈C4, j \{u} X = 4 u ∗ v. v∈C4, j Using equations (11), (12) and the equation right above, equation (10) can be rewritten as

X |32(L)| u ∗ v = − 2. (13) 24 v∈C4, j

The left-hand side of equation (13) is ν(˜ C4, j ) and the right-hand side is independent of the choice of C4, j . This proves the proposition. 2 The root lattices and the coding theory 133

We give a new proof of the result that has been proved in [8] and [23] by different methods. A self-dual binary doubly even code C is said to be of type T4 if C is the overcode of T4, where T4 is an orthogonal sum of the indecomposable tetrad codes.

THEOREM 4.7. Let L be an even unimodular 24-dimensional lattice which satisfies

# (24 · A1) ⊃ L ⊃ 24 · A1. · 3 ⊕ Then the doubly even self-dual code L/(24 A1) should be one of the types e8, e8 2 ⊕ 2 3 4 6 ∅ d16, d24, e7 d10, d12, d8 , d6 , d4 , .

Proof. When the tetrad subcode of the code L/(24 · A1) is not empty, by Proposition 4.6 each indecomposable component of the tetrad subcode of L/(24 · A1) has the identical adjacency measure. When e8 enters in the components, then by Table 1 and Proposition 4.6 the only 3 ⊕ possible cases, are e8, e8 d16. When e7 enters as a component, then the only possibility 2 ⊕ is e7 d10. Apart from these cases, the identical orthogonal sum of the indecomposable 2 3 4 6 subcode is possible. They are d24, d12, d8 , d6 , d4 . When the tetrad subcode of the code L/(24 · A1) is empty, it must be the binary Golay code. By [19] such code exists uniquely. It remains that: (i) we should show that the candidates in the above discussion actually arise as the tetrad subcodes of the doubly even self-dual binary codes; and (ii) even unimodular lattices L exist with the property that the code L/(24 · A1) is identical to the code that is shown in (i). 3 ⊕ 2 ⊕ 2 3 4 6 Demonstration of (i). Let T4 be one of e8, e8 d16, d24, e7 d10, d12, d8 , d6 , d4 . We ⊥ ⊃ ⊃ have only to find a doubly even self-dual binary code C so that T4 C T4 holds. To do ⊥ ⊥ so, we examine the quotient T4 /T4, and we add some representatives of T4 /T4 to T4 so that the obtained code C becomes doubly even and self-dual. The practical execution is described in [23] and we do not repeat it here. Demonstration of (ii). Let u1, u2,..., u12 be the basis for a doubly even self-dual code obtained at (i). We form the lattice L that are generated by 24 · A1 and x0(u1), . . . , x0(u12). Obviously L/(24 · A1) is a doubly even self-dual binary code. By Theorem 4.3, L is an even unimodular 24-dimensional lattice. As to the Golay code we let u1,..., u12 be the basis codewords given in [23, p. 315] and we form L generated by 24 · A1 and x0(u1), . . . , x0(u12). Then L is the desired lattice. 2

In closing this subsection we give a table of |32(L)| and |32(L)|/24 − 2 for some Niemeier lattices discussed in this subsection (see Table 3).

TABLE 3. The values of |32(L)| and |32(L)|/24 − 2 for some Niemeier lattices. Root sublattice 3 · E8 E8 ⊕ D16 2 · E7 ⊕ D10 D24 2 · D12 3 · D8 4 · D6 6 · D4 24 · A1 |32(L)| 720 720 432 1104 528 336 240 144 48 |32(L)|/24 − 2 28 28 16 44 20 12 8 4 0

4.4. Even unimodular lattices coming from m copies of A2 We use the map 8 which is defined in Section 4.2 in the case n = 2. By Theorem 4.3 the even unimodular lattice L is closely connected with the ternary self-dual dual code L/(m · A2) of 134 M. Ozeki length m. When a ternary self-dual code C of length m is given, our procedure supplies us with a method for constructing an even unimodular lattice L as [ L = 8−1(u). u∈C We may write the lattice obtained in this way as L(C). We treat the cases when m = 12 and m = 16. The former concerns the Niemeier lattices. The latter concerns some 32-dimensional even unimodular lattices. The reader may refer to [3, 16] as standard sources of ternary self- dual codes. From here we will often consider the even unimodular lattice L of rank mn which contains m · An as a sublattice. We call such L a u-overlattice of the root lattice m · An.

4.4.1. 24-dimensional even unimodular lattices based on 12 · A2. By [16] there are three non-equivalent self-dual ternary codes of length 12. The codewords of weight 3 are the source of the additional 2-vectors in L other than · # 12 A2. In A2/A2 by Remark 1 there are three minimal representatives for each equivalence class, and each minimal representative has norm 2/3 by equation (5). Therefore, for each codeword u of weight 3 there are twenty-seven 2-vectors in 8−1(u) ⊂ L. 3 The first code is a C4 orthogonal sum of three copies of C4. The generator matrix of C4 is given by 1 1 1 0 . 0 1 2 1 3 | | = · + · The code C4 has 24 codewords of Hamming weight 3. Therefore 32(L) 24 27 6 = · ∼ 3 12 720 for the lattice L such that L/(12 A2) = C4 . The next code is 4C3(12) which is given in [16]. This code has eight codewords of weight 3. Then we have |32(L)| = 8 · 27 + 72 = 288 for the lattice L satisfying L/(12 · ∼ A2) = 4C3(12). There are exactly two even unimodular 24-dimensional lattices L satisfying |32(L)| = 288. They are the u-overlattices of 4 · E6 and E6 ⊕ D7 ⊕ A11, respectively. Here we briefly discuss the fact that the present lattice L is the u-overlattice of 4 · E6. Viewing the generator matrix and the complete weight enumerator of 4C3(12) which is presented in [16, p. 660], the only codewords of Hamming weight 3 are ±(1, 1, 1, 09), ±(03, 13, 06), ±(06, 13, 03), ±(09, 13). We consider the additive subgroup T of L generated by the vectors 0 00 18 (α1 + x, α1 + y, α1 + z, 0 ), 0 00 18 (α2 + x, α2 + y, α2 + z, 0 ), ∈ 0 00 ∈ + 0 00 ∈ + where x, y, z A2, α1, α1, α1 α1 A2, α2, α2, α2 α2 A2 and α1, α2 are the minimal # = representatives of A2/A2 described in Section 2.2 with n 2. To make the present discussion more precise we set · = (1) ⊕ (2) ⊕ · · · ⊕ (12) 12 A2 A2 A2 A2 , (1) = [ − − ] (2) = [ − − ] (3) = [ − − ] A2 e1 e2, e2 e3 Z, A2 f1 f2, f2 f3 Z, A2 g1 g2, g2 g3 Z, The root lattices and the coding theory 135

TABLE 4. Some of the 32-dimensional lattices constructed from ternary self-dual codes and 16 · A2. Number of Root Lattice codewords of weight 3 |32(L)| sublattice Defect L(4e3 + f4) 8 312 (4 · A2) ⊕ (4 · E6) 12 L(2e3 + g10) 4 204 (10 · A2) ⊕ (2 · E6) 14 L(e3 + p13) 2 150 (13 · A2) ⊕ E6 15 L(2 f8) 0 96 16 · A2 16

where e1,..., g3 are the orthonormal vectors. The vector β = 1/2{(e1 + e2 − 2e3) + (f1 + f2 − 2f3) + (g1 + g2 − 2g3)} is an element of L. Consider a graph whose vertices are the vectors e1 − e2, e2 − e3, −β, f1 − f2, f2 − f3, g1 − g2 and the two vertices v1, v2 are connected by an edge if they satisfy (v1, v2) = −1. We verify that the graph is the of the of E6. We count that |32(T )| = 27 · 2 + 3|A2| = 72. We conclude that T is isometric to the root lattice E6. ± 3 3 6 (4) (5) (6) In a similar way, from (0 , 1 , 0 ) and A2 , A2 , A2 we obtain the sublattice of L which is isometric to the root lattice E6, etc. In conclusion, L is an overlattice of 4 · E6. The last code is the ternary Golay code G12 of length 12. This code does not contain any codeword of weight 3, and the lattice associated with this code is the u-overlattice of 12 · A2. We have |32(L)| = 72.

Remark 4. The first lattice obtained is 3 · E8.

4.4.2. 32-dimensional even unimodular lattices based on 16 · A2. By [3] there are exactly seven non-equivalent self-dual ternary codes of length 16. The first three are decomposable codes and they are 4e4, 4e3 + e4, g12 + e4, respectively. The lattices obtained are 4 · E8 and the u-overlattices of (4 · E6) ⊕ E8, E8 ⊕ (12 · A2), respectively. The remaining four codes are indecomposable and they are 4e3 + f4, 2e3 + g10, e3 + p13, 2 f8, respectively. Table 4 gives a summary of the computation. The notion of the defect in Table 3 is first introduced in [10] and is extensively used in [9]. Roughly speaking, this notion measures the distance of the underlining root sublattice of the lattice far from the 32 · A1. For a precise definition the readers may refer to [9, Section 5].

Remark 5. In the papers [16] and [3] the same code is presented in a different way. We present a dictionary for the codes. In the present article, we respect their original notations.

[16] 4C3(12) C4 G12 [3] 4e3 e4 g12

4.5. 24-dimensional even unimodular lattices based on 8 · A3

# The quotient A3/A3 is not a field, but the statements (i) and (ii) in Theorem 4.3 are still valid in this case. However the statement in Proposition 4.4 is no longer true. The evenness of the obtained lattice depends on the property of the self-dual Z4 code. 136 M. Ozeki

In this section, we temporarily employ some notation from [6]. A complete weight enumerator cweC(a, b, c, d) for a code C over Z4 is defined by

X n0(u) n1(u) n2(u) n3(u) cweC(a, b, c, d) = a b c d , u∈C where ni (u) is the number of the entries of u that have the value i modulo 4, and a, b, c, d are real independent variables. The symmetrized weight enumerator sweC(a, b, c) for a code C over Z4 is defined by sweC(a, b, c) = cweC(a, b, c, b). By [6, Table I] there are six indecomposable self-dual Z4 codes of length 8. Besides these, there are four decomposable self-dual Z4 codes of length 8. But the latter codes lead to odd unimodular lattices, and we discard them. We discuss the six indecomposable codes. The swe of the first two are briefly described in [6, Table I]:

8 6 2 4 4 4 4 swe ⊕ (a, b, c) = a + 4a c + 16a b + 22a c + · · · , D8 = 8 + 8 + 4 4 + 4 2 + 2 + · · · sweE8 (a, b, c) a 16b 14a c 48ab c(a c ) . The term a4b4 implies that the obtained lattice is odd unimodular. So we ignore these two cases. The swe of the remaining four codes are

= 8 + 8 + 8 + 2 2 4 + 4 + 4 4 sweK8 (a, b, c) a 128b c 28a c (a c ) 70a c , 8 8 8 2 2 4 4 4 4 4 2 2 swe 0 (a, b, c) = a + 64b + c + 12a c (a + c ) + 38a c + 64ab c(a + c ), K8 = 8 + 8 + 8 + 4 4 + 4 2 + 2 sweO8 (a, b, c) a 16b c 14a c 112ab c(a c ), = 8 + 8 + 8 + 2 2 4 + 4 + 4 4 + 4 2 + 2 sweQ8 (a, b, c) a 32b c 4a c (a c ) 22a c 96ab c(a c ). After [6], the concept of the Euclidean weight has been introduced (e.g., [21] and [22]). The Euclidean weight enumerator ewC(x) for a code C over Z4 is defined by

4 ewC(x) = sweC(1, x, x ).

For instance, we compute

= + 8 + 16 + 24 + 32 ewK8 (x) 1 156x 70x 28x x , 8 16 24 32 ew 0 (x) = 1 + 140x + 102x + 12x + x , K8 = + 8 + 16 + 32 ewO8 (x) 1 128x 126x x , = + 8 + 16 + 24 + 32 ewQ8 (x) 1 132x 118x 4x x .

A self-dual Z4 code whose Euclidean weight enumerator has the terms consisting only 0 of the powers of multiples of eight is called a type II Z4 code. Thus K8, K8 , O8, Q8 are all type II Z4 codes. However, the Euclidean weight enumerator cannot detect the minimal vectors of the lattice constructed from the type II Z4 codes. To remedy this defect we propose another polynomial. A minimal norm detector mndC(y) for a Z4 code C is defined by The root lattices and the coding theory 137

3/4 mndC(y) = sweC(1, y , y). We give some explicit polynomials: = + 2 + 4 + 6 + 8 mndK8 (y) 1 28y 70y 156y y , 2 4 6 8 mnd 0 (y) = 1 + 12y + 102y + 140y + y , K8 = + 4 + 6 + 8 mndO8 (y) 1 126y 128y y , = + 2 + 4 + 6 + 8 mndQ8 (y) 1 4y 118y 132y y .

Let L(C) be the even unimodular lattice that is based on the root lattice 8 · A3 and the 2 Z4 code C. The codewords corresponding to the term y are the source of the additional 2- · # vectors in L other than 8 A3. In A3/A3 by Remark 1 there are six minimal representatives for each equivalence class of 2, and each minimal representative has norm 1 by equation (5). Therefore for each codeword u corresponding to the term y2 there are thirty-six 2-vectors in 8−1(u) ⊂ L. Thus we have

|32(L(K8))| = 28 · 36 + 8 · |32(A3)|, |32(L(K8))| = 12 · 36 + 8 · |32(A3)|,

|32(L(O8))| = 8 · |32(A3)|, |32(L(Q8))| = 4 · 36 + 8 · |32(A3)|.

Except for the lattice L(Q8), the other three lattices are recognized by their values |32(L)| by means of Table 1. We examine the case L(Q8). By inspecting the generator matrix of Q8 in [6, p. 43] we find that the codewords (22000000), (00220000), (00002200) and (00000022) are all that correspond to the term 4y2. We consider the additive subgroup S of L generated by the vectors 0 18 (α2 + x, α2 + y, 0 ), ∈ 0 ∈ + # where x, y A3, α2, α2 α1 A3, and α2 is the minimal representative of A3/A3 described in Section 2.2 with n = 3. We set

· = (1) ⊕ (2) ⊕ · · · ⊕ (8) 8 A3 A3 A3 A3 , (1) = [ − − − ] (2) = [ − − − ] A3 e1 e2, e2 e3, e3 e4 Z, A3 f1 f2, f2 f3, f3 f4 Z, where e1,..., f4 are the orthonormal vectors. The vector γ = 1/2{(e1 + e2 − e3 − e4) + (f1 + f2 − f3 − f)} is an element of L. We consider the graph whose vertices are the vectors e1 − e2, e2 − e3, e3 − e4, −γ , f1 − f2, f2 − f3. The two vertices v1, v2 are connected by an edge if they satisfy (v1, v2) = −1. We verify that the graph is the Dynkin diagram of the root system of D6. We count that |32(S)| = 36 + 2|A3| = 60 = |32(S)|. We conclude that S is isometric to D6. Likewise from (00220000) (respectively, (00002200) and (00000022)) we obtain the sublattices of L isometric to the root lattice D6. Thus, L is the overlattice of the root lattice 4 · D6. A summary of this section is given in Table 5.

4.6. Even unimodular lattices coming from the orthogonal sum of m copies of A4 We address the cases where m = 6 and m = 8. The former concerns the Niemeier lattices. The latter concerns some 32-dimensional even unimodular lattices. The article by Leon and Sloane [13] is quite useful in these cases. 138 M. Ozeki

TABLE 5. Some of the Niemeier lattices constructed from Z4 codes and 8 · A3. Coefficient Root 6 2 Lattice of a c |32(L)| sublattice L(K8) 28 1104 D24 0 · L(K8 ) 12 528 2 D12 L(O8) 0 96 8 · A3 L(Q8) 4 240 4 · D6

The Lee weight enumerator LC(x, y, z) of a code C over F5 is defined by

X wt0(u) wt±1(u) wt±2(u) LC(x, y, z) = x y z , u∈C where wt0(u) is the number of the entries of u that are equal to 0, wt±1(u) (respectively, wt±2(u)) is the number of the entries of u that are equal to ±1 (respectively, ±2) in the field F5.

4.6.1. 24-dimensional even unimodular lattices based on 6 · A4. By [13, Table II] there 3 are two non-equivalent self-dual codes over F5. The code C2 in the table has the Lee weight enumerator 6 4 2 2 2 3 3 L 3 (x, y, z) = x + 12x yz + 48x y z + 64y z . C2 In this polynomial, y counts the number of 1s or 4s in the codeword and the variable z counts # the number of 2s or 3s. By Remark 1 there are five minimal representatives of A4/A4 that correspond to y and there are ten minimal representatives that correspond to z. From the term x4 yz, we know that the even unimodular lattice L corresponding to this code must have just 50 · 12 more 2-vectors than |32(6 · A4)| = 120. Therefore 32(L) = 120 + 600. Another code is F6. The Lee weight enumerator of F6 is [13, formula (6)]

= 6 + 5 + 5 + 2 2 2 + 3 3 L F6 (x, y, z) x 12x(y z ) 60x y z 40y z .

This time the even unimodular lattice connected with this code does not increase the number of 2-vectors, and 32(L) = 120. The lattices obtained in this section are 3 · E8 and the u-overlattice of 6 · A4.

4.6.2. 32-dimensional even unimodular lattices based on 8 · A4. By [13] there are three 4 ⊕ non-equivalent codes of length 8 over F5. They are C2 , C2 F6 and F8. The first two induce even unimodular lattices of root type 4 · E8 and E8 ⊕ (4 · A6). The Lee weight enumerator of F8 is [13, formula (9)]

= 8 + 4 2 2 + 3 5 + 5 + 2 3 3 L F8 (x, y, z) x 48x y z 16x (y z ) 288x y z + 64x(y6z + yz5) + 128y4z4.

The corresponding even unimodular 32-dimensional lattice L is of root type 8 · A4. The root lattices and the coding theory 139

4.7. Even unimodular lattices coming from 4 copies of A6 We start from the setting in Sections 2 and 4. By Theorem 4.3, we try to find [4, 2] codes · # · over F7 with additional conditions related with (6 A4)/(6 A4). Up to equivalence of codes over F7 we seek to find the generator matrix of a code of the form α 0 α α  1 i1 i2 , 0 α1 αi3 αi4 with the additional conditions that + + ≡ (i) (α1, α1) (αi1 , αi1 ) (αi2 , αi2 ) 0 (mod 2), + + ≡ (ii) (α1, α1) (αi3 , αi3 ) (αi4 , αi4 ) 0 (mod 2), + ≡ (iii) (αi1 , αi3 ) (αi2 , αi4 ) 0 (mod 2). Without loss of generality we may assume that 1 ≤ i1 ≤ i2. By hand calculation or using a computer algebra such as MAGMA [2] we find eight possible quadruples: = (αi1 , αi2 , αi3 , αi4 ) (α2, α3, α3, α5), . . . , (α4, α5, α5, α3). We have verified that these eight quadruples define the equivalent codes with each other. Thus we obtain an even unimodular 24-dimensional lattice

L = (4 · A6) + Z(α1, 0, α2, α3) + Z(0, α1, α3, α5).

4.8. Even unimodular lattices coming from 2 copies of A12 [ ] # By Theorem 4.3, we seek to find self-dual codes 2, 1 over F13. Since A12/A12 is a cyclic 2 group of order 13, the one-dimensional subspace of F13 is a cyclic group of order 13. We may restrict our search for the base of [2, 1] code in the form of (α1, αr ), 1 ≤ r ≤ 12. Besides this, the norm of (α1, αr ) must be an integer. The only possibilities are (α1, α5) and (α1, α8). But 8(α1, α5) = (α8, α1). Thus (α1, α5) and (α1, α8) define equivalent codes. Consequently, (A12, A12) + Z(α1, α5) is a unique (up to isometry) even unimodual lattice containing 2 · A12.

5. Concluding comments

(1) In our present approach to the twenty-four Niemeier lattices we could cover sixteen non- isometric lattices. The exceptions are the u-overlattices of the root lattices E7 ⊕ A17, D9 ⊕ A15, E6 ⊕ D7 ⊕ A11, D6 ⊕ (2 · A9), (2 · D5) ⊕ (2 · A7), D4 ⊕ (4 · A5), A24 and the Leech lattice. Of these, the u-overlattice of A24 has a simpler construction than the one using the coding theory. The Leech lattice is constructed originally by using binary Golay code of length twenty-four. But the construction is attained in a complicated way (cf. [11]). Now there are many methods for constructing the Leech lattice (cf. [5, Ch. 5, Ch. 7]). The other six lattices are found by the neighboring process. (2) At the time of the publication of Niemeier’s paper [18] not much was known about the relationship between the even unimodular lattices and the coding theory. In [18], at most one code over a ring is referred for each Niemeier lattice. In the present article, some of the Niemeier lattices are connected with more than one root sublattice through the different codes. For instance, the u-overlattice of the root lattice D24 is also the u-overlattice of the 140 M. Ozeki root lattice 8 · A3, and the u-overlattice of 2 · D12 is also the u-overlattice of 8 · A3. Niemeier found the overlattice of 8 · A3 by the neighboring process. In the present article, the same lattice is obtained from a self-dual Z4 code of length 8. Please take a look at Section 4.5. (3) The present derivation of the u-overlattice of 4 · E6 is different from the one in [18]. # In [18], Niemeier considers (4 · E6) /(4 · E6) as the vector space over the field F3 of dimension four and seeks a self-dual ternary code C of length four. The inverse image f −1(C) # # of the canonical map f : (4 · E6) → (4 · E6) /(4 · E6) is the desired lattice. (4) To compute the Fourier coefficients of the Siegel theta series of higher degrees for the class of even unimodular lattices, the subclass of even unimodular lattices that are constructed by means of the coding theory is comparatively tractable and it is advantageous to use codes of a smaller size or the codes over simpler rings for this purpose. Our construction of some of the Niemeier lattices may be useful in this respect.

Acknowledgements. The author thanks the referee of the present article for carefully reading the initial draft and suggesting to him some practical improvements in order to make the article more readable. The referee also pointed out to the author some mistakes and misusages of expressions.

REFERENCES [1] A. Bonnecaze, P. Gaborit, M. Harada, M. Kitazume and P. Sole.´ Niemeier lattices and Type II codes over Z4. Discrete Math. 205 (1999), 1–21. [2] W. Bosma, J. Cannon, and C. Playoust. The Magma algebra system. I. The user language. J. Symbolic Comput. 24 (1997), 235–265. [3] J. H. Conway, V. Pless and N. J. A. Sloane. Self-dual codes over GF(3) and GF(4) of length not exceeding 16. IEEE Trans. Inf. Th. vol. IT-25(3) (1979), 312–322. [4] J.H. Conway and N. J. A. Sloane. On the enumeration of lattices of determinant one. J. Number Theory 15 (1982), 83–94. [5] J. H. Conway and N. J. A. Sloane. Sphere Packings, Lattices and Groups, 3rd edn. Springer 1998. [6] J. H. Conway and N. J. A. Sloane. Self-dual codes over the integers modulo 4. J. Combin. Theory Ser. A 62 (1993), 30–45. [7] W. Ebeling. Lattices and Codes, 3rd edn. Springer, 2013. [8] N. Elkies and S. D. Kominers. On the classification of type II codes of length 24. SIAM J. Discrete Math. 23(4) (2010), 2173–2177. [9] M. Kervaire. Unimodular lattices with a complete root system. Enseign. Math. 40 (1994), 59–104. [10] H. Koch and B. Venkov. Uber¨ ganzzahlige unimodulare euklidische Gitter. J. reine angew. Math. 398 (1989), 144–168. [11] J. Leech. Notes on sphere packings. Can. J. Math. 19 (1967), 251–267. [12] J. Leech and N. J. A. Sloane. Sphere packings and error-correcting codes. Canad. J. Math. 23 (1971), 718–745. [13] J. S. Leon, V. Pless and N. J. A. Sloane. Self-dual codes over GF(5). J. Combin. Theory Ser. A 32 (1982), 178–194 [14] F. J. MacWilliams and N. J. A. Sloane. The Theory of Error-Correcting Codes. North-Holland, 1977. [15] C. L. Mallows, A. M. Odlyzko and N. J. A. Sloane. Upper bounds for modular forms, lattices, and codes. J. Algebra 36 (1975), 68–76. [16] C. L. Mallows, V. Pless and N. J. A. Sloane. Self-dual codes over GF(3). SIAM J. Appl. Math. 31 (1976), 649–666. [17] P. S. Montague. A new construction of lattices from codes over GF(3). Discrete Math. 135 (1994), 193–223. [18] H. V. Niemeier. Definite quadratische formen der dimension 24 und discriminante 1. J. Number Theory 5 (1973), 142–178. [19] V. Pless. On the uniqueness of the Golay codes. J. Combin. Theory 5 (1968), 215–228. The root lattices and the coding theory 141

[20] V. Pless. A Classification of Self-Orthogonal Codes over GF(2). Discrete Math. 3 (1972), 209–246. [21] V. Pless, J. S. Leon and J. Fields. All Z4 codes of type II and length 16 are known. J. Combin. Theory Ser. A 78 (1997), 32–50. [22] V. Pless and W. C. Huffman (Eds.). Handbook of Coding Theory, Vol. 1. North-Holland, 1998. [23] V. Pless and N. J. A. Sloane. On the classification and enumeration of self-dual codes. J. Combin. Theory Ser. A 28 (1975), 313–335. [24] N. J. A. Sloane. Self-dual codes and lattices. Proc. Symp. Pure Math. 34 (1979), 273–308. [25] B. B. Venkov. The classification of integral even unimodular 24-dimensional quadratic forms. Trudy Math. Inst. Steklov 148 (1978), 65–76. Engl. transl. Proc. Steklov Inst. Math. 148 (1980), 63–74. [26] E. Witt. Spiegelungsgruppen und Aufzahlung halbeinfacher Liescher Ringe. Abhandlungen aus Mathm. Seminar Hamburg, 14 (1941), 289–322.

Michio Ozeki Emeritus Professor, Faculty of Science Yamagata University Japan and 4-8-27 Nakano Hirosaki 036-8155 Japan (E-mail: [email protected])