Journal of Algebraic Combinatorics 9 (1999), 233–250 c 1999 Kluwer Academic Publishers. Manufactured in The Netherlands. ° Type II Self-Dual Codes over Finite Rings and Even Unimodular Lattices STEVEN T. DOUGHERTY Department of Mathematics, University of Scranton, Scranton, PA 18510 doughertys1@tiger.uofs.edu T. AARON GULLIVER gulliver@elec.canterbury.ac.nz Department of Electrical and Electronic Engineering, University of Canterbury, Private Bag 4800, Christchurch, New Zealand MASAAKI HARADA∗ mharada@sci.kj.yamagata-u.ac.jp Department of Mathematical Sciences, Yamagata University, Yamagata 990, Japan Received September 23, 1997 Abstract. In this paper, we investigate self-dual codes over finite rings, specifically the ring Z2m of integers modulo 2m . Type II codes over Z2m are introduced as self-dual codes with Euclidean weights which are a multiple of 2m+1 . We describe a relationship between Type II codes and even unimodular lattices. This relationship provides much information on Type II codes. Double circulant Type II codes over Z2m are also studied. Keywords: self-dual code over finite ring, Type II code, double circulant code, even unimodular lattice 1. Introduction In this paper, we consider self-dual codes over rings, specifically the ring Z2m where Zk denotes the ring Z/kZ of integers modulo k. A code of length n over the ring Zk is a subset of Znk , and if the code is an additive subgroup of Znk then it is a linear code. Unless otherwise stated all codes will be linear. We define an inner product on Znk by [x, y] = x1 y1 + · · · + xn yn (mod k), where x = (x1 , . . . , xn ) and y = (y1 , . . . , yn ). The orthogonal to a code is defined in the usual way, i.e., C ⊥ = {v ∈ Znk | [v, w] = 0 for all w ∈ C}. MacWilliams relations for codes over any Frobenius ring are given in [17]. A code C is self-orthogonal if C ⊆ C ⊥ and C is self-dual if C = C ⊥ . In this paper, two codes over Zk are said to be equivalent if one can be obtained from the other by permuting the coordinates and (if necessary) changing the signs of certain coordinates. Codes differing by only a permutation of coordinates are called permutation-equivalent. The paper is organized as follows. Section 2 examines the existence of self-dual codes over Zk . Section 3 introduces Type II codes over Z2m as self-dual codes with Euclidean weights which are a multiple of 2m+1 , and relates these codes with self-orthogonal codes over Z2m+1 . In Section 4, we show a relationship between Type II codes over Z2m and ∗ Formerly with the Department of Mathematics, Okayama University, Okayama 700, Japan. 234 DOUGHERTY, GULLIVER AND HARADA even unimodular lattices. This is a natural generalization of the result in [2]. The above relationship provides much information on Type II codes. In Section 5, we investigate Type II double circulant codes over Z2m giving many examples of extremal Type II codes over Z2m for m = 3, 4 and 5. Section 6 describes the existence of Type II codes of small lengths over Z2m for all m. We refer the reader to [6] and [17] for any elementary facts about codes over finite rings that are used in this paper. For example, any code C over Zk has |C||C ⊥ | = k n . 2. Self-dual codes over Zk Self-dual codes over fields are a well studied subject, see [11] for an extensive bibliography. Recently, self-dual codes over Z4 have been studied, see [1, 2, 6, 8–10, 14, 15]. Cyclic codes over Zk have been discussed by a number of authors, see, e.g., [3] and the references given therein. In this section, we examine the existence of self-dual codes over Zk . Lemma 2.1 If k is a square then there exist self-dual codes over Zk for all lengths. Proof: If k = r 2 then the matrix (r ) generates a self-dual code of length 1. 2 Lemma 2.2 If C is a self-dual code of odd length over Zk then k is a square. n Proof: Let C be a self-dual code of odd length n over Zk so that |C|2 = k n . Then |C| = k 2 , and since n is odd, k must be a square. 2 Now consider self-dual codes over Z2m . If m is odd then 2m is not a square and by the previous lemma there are no self-dual codes of odd length. If m is odd then the following matrix à m−1 m−1 ! 2 2 2 2 , m+1 0 2 2 m+1 m−1 generates a code that is self-orthogonal with 2 2 2 2 = 2m vectors and therefore is selfdual. Using the well-known direct product construction, self-dual codes can be constructed for all even lengths. If m is even then 2m is a square and self-dual codes exist over Z2m for all positive lengths. Theorem 2.3 There exist self-dual codes over Z2m for all lengths if m is even. There exist self-dual codes over Z2m , m odd, for all lengths n if and only if n is even. It is not true that there are self-dual codes over Zk for all even lengths for all k. For example, for k = 6 there are only two self-orthogonal vectors of length 2 and hence no self-dual code of length 2. Theorem 2.4 Let k be an integer that is not a square and assume k > 1. If there exists an element γ ∈ Zk with γ 2 = −1 then there exist self-dual codes of length n over Zk if and only 235 SELF-DUAL CODES OVER FINITE RINGS if n is even. If there exist x, y ∈ Zk with x 2 + y 2 + 1 = 0 then there exist self-dual codes over Zk for all lengths n ≡ 0 (mod 4). Proof: If there exists γ ∈ Zk with γ 2 = −1 then (1, γ ) generates a code with k vectors which is self-orthogonal. Hence, there exist self-dual codes of all even lengths over Zk . Since k is not a square then there are no self-dual codes of odd length by Theorem 2.2. If there exists x, y ∈ Zk with x 2 + y 2 + 1 = 0 then the matrix à ! 1 0 x y 0 1 y −x , generates a code with k 2 vectors which is self-orthogonal, and therefore is a self-dual code of length 4. 2 3. Type II codes over Z2m Type II codes over Z4 have recently been introduced in [1]. In this section, we introduce Type II codes over Z2m , and relate Type II codes over Z2m to self-orthogonal codes over Z2m+1 . Cyclic codes over Z2m have been discussed in [3]. An application of codes over Z4 to unimodular lattices prompted the definition of the Euclidean weight of a vector of Zn4 (cf. [2]). It is natural to define the Euclidean weights of the elements 0, ±1, ±2, ±3, . . . , ±(2m−1 − 1), 2m−1 of Z2m as 0, 1, 4, 9, . . . , (2m−1 − 1)2 , (2m−1 )2 , respectively. The Euclidean weight of a vector is just the rational sum of the Euclidean weights of its components. The Hamming weight of a vector is the number of non-zero components in the vector. We define a Type II code over Z2m as a self-dual code with all vectors having Euclidean weight a multiple of 2m+1 . For m = 1 this is the standard definition of a Type II code. Note that for m = 2 the standard definition of a Type II code requires that it contain the all-one vector as well. Any code over Z2m is permutation-equivalent to a code with generator matrix of the form Ik1 A1,2 A1,3 A1,4 ··· ··· A1,m+1 0 2Ik2 2A2,3 2A2,4 ··· ··· 2A2,m+1 0 0 4Ik3 4A3,4 ··· ··· 4A3,m+1 .. . .. . 0 .. . .. . .. . .. . .. . .. . .. . 0 0 0 ··· 0 .. . .. .. . . 2m−1 Ikm 2m−1 Am,m+1 where the matrices Ai, j are binary matrices for i > 1. , (1) 236 DOUGHERTY, GULLIVER AND HARADA A code of this form is said to be of type {k1 , k2 , k3 , . . . , km } and it has m Y (2m− j+1 )k j , j=1 vectors. Define a map 8 : Zn2m+1 → Zn2m by 8(v1 , v2 , . . . , vn ) = (v1 (mod 2m ), v2 (mod 2m ), . . . , vn (mod 2m )). For a code C of length n over Z2m+1 we denote its image under this map by 8(C). Lemma 3.1 The image of a self-orthogonal vector is a vector whose Euclidean weight is a multiple of 2m+1 . Proof: For vi in Z2m+1 we have that vi2 ≡ (vi (mod 2m ))2 (mod 2m+1 ). Lemma 3.2 2 For C a code over Z2m+1 , 8(C ⊥ ) ⊆ 8(C)⊥ . Proof: If v ∈ C ⊥ then [v, w] = 0 for all w in C. It is easy to see that 8(v) and 8(w) are 2 orthogonal in Zn2m . Hence 8(v) ∈ 8(C)⊥ . Theorem 3.3 If C is a self-orthogonal code over Z2m+1 then 8(C) is a self-orthogonal code over Z2m such that the Euclidean weights of all vectors are a multiple of 2m+1 . Proof: 2 Follows from the previous lemmas. Theorem 3.4 If C is a code of type {k1 , k2 , k3 , . . . , km } over Z2m , then 8(C) is a code of type {k1 , k2 , . . . , km−1 } over Z2m−1 . Proof: Any vector in C is a linear combination of the rows of a generator matrix of C. Any vector in 8(C) is a linear combination of those rows read modulo 2m−1 . Hence a generator matrix of 8(C) is Ik1 A1,2 A1,3 A1,4 ··· ··· A1,m+1 0 2Ik2 2A2,3 2A2,4 ··· ··· 2A2,m+1 0 0 4Ik3 4A3,4 ··· ··· 4A3,m+1 .. . .. . 0 .. . .. . .. . .. . .. . .. . .. . 0 0 0 ··· 0 .. . .. . 2m−2 Ikm −1 which corresponds to a code of the required type. .. . , 2m−2 Am−1,m 2 SELF-DUAL CODES OVER FINITE RINGS 237 Note that a generator matrix of a self-orthogonal code over Z2m−1 does not necessarily generate a self-orthogonal code over Z2m since the vectors may not be orthogonal. Corollary 3.5 If C is a self-orthogonal code of type {k1 , k2 , k3 , . . . , km , km+1 } over Z2m+1 n of length n with (2m+1 )k1 (2m )k2 · · · (2)km = (2m ) 2 then 8(C) is a Type II code over Z2m . Proof: The code 8(C) is self-orthogonal by Theorem 3.3 and has type {k1 , k2 , k3 , . . . , km } n by Theorem 3.4, with (2m+1 )k1 (2m )k2 · · · (2)km = (2m ) 2 . Therefore, 8(C) is self-dual. 2 4. Type II codes over Z2m and even unimodular lattices A relationship between Type II codes over Z4 and even unimodular lattices was given in [1] and [2]. In this section, we consider a relationship between Type II codes over Z2m and even unimodular lattices. This is a natural generalization of the above result. Recall that a Type II code over Z2m is a self-dual code which has all Euclidean weights divisible by 2m+1 . The minimum Euclidean weight d E of C is the smallest Euclidean weight among all non-zero codewords of C. For m = 1 and 2, an upper bound on d E was given in [12] and [1], respectively. An n-dimensional lattice 3 in Rn is the set of integer linear combinations of n linearly independent vectors v1 , . . . , vn . An n × n matrix whose rows are the n linearly independent vectors is called a generator matrix of the lattice. The dual lattice 3∗ is given by 3∗ = {x ∈ Rn | [x, a] ∈ Z for all a ∈ 3}. A lattice 3 is integral if the inner product of any two lattice points is integral, or equivalently, if 3 ⊆ 3∗ . An integral lattice with det 3 = 1 (or 3 = 3∗ ) is called unimodular. If the norm [x, x] is an even integer for all x ∈ 3, then 3 is called even. The minimum norm of 3 is the smallest norm among all nonzero lattice points of 3. Applying Construction A in [7] to self-dual codes over Z2m , we have the following construction of even unimodular lattices. Theorem 4.1 If C is a self-dual code of length n over Z2m , then the lattice 1 32m (C) = √ {C + 2m Zn }, 2m is an n-dimensional unimodular lattice. The minimum norm is min{2m , d E /2m } where d E is the minimum Euclidean weight of C. Moreover, if C is Type II then the lattice 32m (C) is even unimodular. √ Proof: If a1 , a2 ∈ 32m (C) then ai = (ci + 2m z i )/ 2m where ci ∈ C and z i ∈ Zn for i = 1, 2. Since C is self-dual, the inner product of a1 and a2 is [a1 , a2 ] = 1 {[c1 , c2 ] + 2m [z 1 , c2 ] + 2m [c1 , z 2 ] + 22m [z 1 , z 2 ]} ∈ Z, 2m 238 DOUGHERTY, GULLIVER AND HARADA thus 32m (C) is integral. If C has a generator matrix of the form (1), then the generator matrix of the lattice can be written as A1,4 · · · ··· A1,m+1 Ik1 A1,2 A1,3 0 2Ik2 2A2,3 2A2,4 · · · ··· 2A2,m+1 0 4Ik3 4A3,4 · · · ··· 4A3,m+1 0 .. .. .. .. 1 .. . . . 0 . (2) √ . , m 2 .. .. .. .. .. .. ... . . . . . . 0 m−1 m−1 I 2 A 0 0 · · · 0 2 k m,m+1 m 0 0 0 ··· 0 0 2m In−k of √ the matrix (2) is 1 and 32m (C) where k = k1 + · · · + km . Thus the determinant √ √ is unimodular. It is easy see that [ai , ai ] ≥ [ci / 2m , ci / 2m ] where ai = (ci + 2m z i )/ 2m . Thus the minimum norm is min{2m , d E /2m }. In addition, if C is Type II then since the Euclidean weights are divisible by 2m+1 , we have [a1 , a1 ] = 1 {[c1 , c1 ] + 22m [z 1 , z 1 ] + 2m+1 [c1 , z 1 ]} ∈ 2Z, 2m so that the lattice is even. 2 Remark It was suggested in [1] that a construction similar to Theorem 4.1 be considered in order to construct unimodular lattices with minimum norm µ > 4. Theorem 4.1 provides much information on Type II codes over Z2m . For example, the following corollary characterizes divisible self-dual codes over Z2m in terms of their Euclidean weights. Corollary 4.2 Suppose that C is a self-dual code over Z2m . The greatest common divisor c of Euclidean weights of all codewords of C is either 2m or 2m+1 . Proof: If a unimodular lattice has the property that every norm is a multiple of some positive integer d, then d is either 1 or 2 (cf. [13]). If C is self-dual then 32m (C) is uni2 modular. Thus c must be either 2m or 2m+1 . Moreover, Theorem 4.1 gives the following restriction on the length of a Type II code. Corollary 4.3 If there exists a Type II code C of length n over Z2m , then n is a multiple of eight. Proof: An even unimodular lattice of dimension n can be constructed from C by Theorem 4.1. Even unimodular lattices exist if and only if the dimension is a multiple of eight. Thus n must be a multiple of eight. 2 SELF-DUAL CODES OVER FINITE RINGS 239 Now let us consider the converse assertion. Calderbank and Sloane [3] investigated cyclic codes of length n over the ring Z pa and over the p-adic numbers, where p is a prime not dividing n. In particular, they constructed remarkable cyclic codes over Z2m of length 7 for any m. By appending a 1 to the generator vectors of the above codes, Hamming codes H2m over Z2m of length 8 are constructed. It was shown in [3] that the codes H2m are self-dual codes. Moreover, it can easily be seen that all their Euclidean weights are divisible by 2m+1 . Thus there exists a Type II code of length 8 over Z2m , which gives the following proposition. Proposition 4.4 There exists a Type II code over Z2m of length n if and only if n ≡ 0 (mod 8). We now investigate the minimum Euclidean weight of Type II codes over Z2m . The n c+2 minimum norm µ of an n-dimensional even unimodular lattice is bounded by µ ≤ 2b 24 n and even unimodular lattices with µ = 2b 24 c + 2 are called extremal (cf. [7]). The minimum norm of the lattices constructed from Type II codes C gives directly an upper bound on the minimum Euclidean weight of C. Proposition 4.5 Let d E be the minimum Euclidean weight of a Type II code of length 8n over Z2m . If b n3 c ≤ 2m−1 − 2, then d E ≤ 2m+1 ¶ µ¹ º n +1 . 3 (3) Proof: Suppose that there exists a Type II code C with minimum Euclidean weight d E = 2m+1 (b n3 c + 2). The minimum norm µ of the even unimodular lattice 32m (C) constructed from C is min{2m , 2b n3 c + 4}. From the assumption, µ = 2b n3 c + 4, which is a contradiction. 2 When m = 1 and 2, the above bound (3) holds without the assumption b n3 c ≤ 2m−1 − 2. For m = 1, (3) is the well-known bound on binary doubly-even self-dual codes, given by Mallows and Sloane [12]. The bound with m = 2 was presented in [1]. We conjecture that d E ≤ 2m+1 (b n3 c + 1) for all m ≥ 1 without the assumption. A Type II code meeting this bound with equality is called extremal. Extremal codes have the largest minimum Euclidean weight among all Type II codes of that length. All Type II codes of lengths 8 and 16 are extremal. The minimum Hamming weight of a Hamming code H2m is always 4 and for the first few values of m, the minimum Lee weights were determined in [3]. By Proposition 4.5, the minimum Euclidean weight of H2m is always 2m+1 . 5. Double circulant codes We begin by characterizing the generator matrices of double circulant codes. A pure double circulant code of length 2n has a generator matrix of the form (I, R) where I is the identity 240 DOUGHERTY, GULLIVER AND HARADA matrix of order n and R is an n × n circulant matrix r0 rn−1 . R = .. . .. r1 ··· ··· r0 ··· ··· .. . .. . .. . .. . .. . .. . r2 r1 · · · rn−1 rn−1 rn−2 .. . . .. . r0 A code with generator matrix of the form I α β ··· β γ .. . R0 , (4) γ where R 0 is an (n − 1) × (n − 1) circulant matrix, is called a bordered double circulant code of length 2n. These two families of codes are collectively called double circulant codes. 5.1. Preliminaries We first prove the non-existence of pure double circulant self-dual codes. Theorem 5.1 There exists no pure double circulant self-dual code over Z2m for m ≥ 2. Proof: Suppose that there exists a pure double circulant self-dual code C with generator matrix of the form (I, R). Since C is self-dual, R R T = −I over Z2m , so then X X ri2 = −1 and ri r j = 0. 0≤i≤n−1 i6= j Thus we have 2 (r0 + r1 + · · · + rn−1 )2 = r02 + r12 + · · · + rn−1 = −1. Therefore, −1 must be a quadratic residue in Z2m . However, −1 is not a quadratic residue 2 in Z2m for m ≥ 2, which is a contradiction. Remark Similarly, if −1 is not a quadratic residue in a finite ring then there is no pure double circulant self-dual code over this ring. 241 SELF-DUAL CODES OVER FINITE RINGS Remark Conditions for the existence of double circulant self-dual codes over a finite field GF( p) were given in [16]. It is known that pure double circulant self-dual codes exist for m = 1 (cf., e.g., [11]). We now present two lemmas which are useful in checking the equivalences of bordered double circulant self-dual codes. These lemmas can easily be proven. Lemma 5.2 Let C, C 0 , C 00 and C 000 be codes with generator matrices of the form (I, A), (I, A0 ), (I, A00 ) and (I, A000 ), respectively, where α γ A = . . . β ··· β R , −γ A = . . . A00 = −α −β ··· β R , −γ ··· γ .. . β 0 γ −α R −β and α −γ A000 = . . . γ −β · · · −β R , −γ and R is a square matrix. Then C, C 0 , C 00 and C 000 are equivalent. Lemma 5.3 If the matrix (I, A) generates a self-dual code C, then the matrices (I, −A), (I, A T ) and (I, −A T ) generate self-dual codes which are equivalent to C, where A T denotes the transpose of the matrix A. 5.2. An infinite family of double circulant Type II codes We discuss lengths for which there exist Type II double circulant codes over Z2m . First, we provide a result required for a subsequent construction, namely if p ≡ 7 (mod 8) then 1 + px 2 ≡ 0 (mod 2m ), has solutions for all m > 0, and if p ≡ 3 (mod 8) then 5 + px 2 ≡ 0 (mod 2m ), has solutions for all m > 0. Although the following lemma can be obtained from Hensel’s Lemma, we give an elementary proof to emphasize the forms of solutions. 242 DOUGHERTY, GULLIVER AND HARADA Lemma 5.4 Suppose that p and q are odd. If a is a solution to q + px 2 ≡ 0 (mod 2m ), with m ≥ 3 then either a or a + 2m−1 is a solution to q + px 2 ≡ 0 (mod 2m+1 ). Proof: Let a be a positive integer such that q + pa 2 ≡ 0 (mod 2m ), or q + pa 2 = r 2m for some integer r . If r is even, say r = 2k, then q + pa 2 = k2m+1 ≡ 0 (mod 2m+1 ), If r is odd, say r = 2 j + 1, then q + p(a + 2m−1 )2 = q + p(a 2 + a2m + 22m−2 ) = 2m (2 j + 1 + pa + p2m−2 ) ≡ 0 (mod 2m+1 ), 2 since a is odd. Proposition 5.5 If p ≡ 7 (mod 8), then there exists a solution for 1 + px 2 ≡ 0 (mod 2m ), for all m > 0. If p ≡ 3 (mod 8), then there exists a solution for 5 + px 2 ≡ 0 (mod 2m ), for all m > 0. Proof: It is easily verified that x = 1 is a solution for m = 1, 2 and 3 in both cases. The previous lemma shows that if there is a solution for m ≥ 3, there is one for m + 1. Hence by induction there is a solution for all m > 0. 2 We now consider certain weighing matrices of order n and weight n − 1. A weighing T matrix Wn,k of order n and weight k is an n by n (0, 1, −1)-matrix such that Wn,k Wn,k =kI, T where Wn,k is the transpose of Wn,k . The following is a well-known method for constructing bordered circulant weighing matrices. Suppose that n = p + 1 is a multiple of 4 where p is a prime. Let P 0 = ( pi j ) be a p × p matrix where 0 pi j = 1 −1 if i = j, if j − i is a nonzero square (mod p), otherwise. SELF-DUAL CODES OVER FINITE RINGS 243 The matrix P 0 is called a Jacobsthal matrix (cf. [11]). Now consider the bordered circulant matrix 0 −1 Pn = . . . 1 ··· 1 P0 . −1 Clearly Pn PnT = p I over the integers and Pn = −PnT , so that Pn is a weighing matrix of order n = p + 1 and weight p. (1) The case p ≡ 7 (mod 8): Consider a bordered double circulant code of length 2n over Z2m with generator matrix of the form (I, x Pn ). We denote this code by D22nm (x). Since all distinct rows of x Pn are orthogonal over Z, if 1 + px 2 ≡ 0 (mod 2m ) then D22nm (x) is self-dual. Moreover, if 1 + px 2 ≡ 0 (mod 2m+1 ) then D22nm (x) is a Type II code. It follows from Proposition 5.5 that if p ≡ 7 (mod 8) then there is an integer a satisfying 1 + pa 2 ≡ 0 (mod 2m+1 ) for m > 0. Thus the generator matrices (I, a Pn ) generate Type II bordered double circulant codes for all m > 0. (2) The case p ≡ 3 (mod 8): Consider the matrix G = (I, 2I + x Pn ). Since Pn = −PnT , it must be that GG T = (5 + px 2 )I . By Proposition 5.5, G generates a Type II bordered double circulant code D22nm (x). Thus we have an infinite family of Type II bordered double circulant codes. Theorem 5.6 Suppose that p is a prime number with p ≡ 3 (mod 4), and let n = p + 1. Then there exists a Type II bordered double circulant code of length 2n over Z2m for all m > 0. Remark When m = 2, the above double circulant codes were given in [9]. Corollary 5.7 Suppose that there exists a weighing matrix W of order n ≡ 0 (mod 4) and weight k ≡ 3 (mod 4). (1) If k ≡ 7 (mod 8), then there exists an integer xm such that the matrix (I, xm W ) generates a Type II code over Z2m for every m > 0. (2) If k ≡ 3 (mod 8). If W = −W T , then there exists an integer x m such that the matrix (I, 2I + xm W ) generates a Type II code over Z2m for every m > 0. 5.3. Double circulant codes of length 8 over Z8 Here we classify Type II bordered double circulant codes of length 8 over Z8 . By exhaustive search, we have found all distinct double circulant Type II codes of length 8. For these codes, the first rows of R 0 and the values of α, β and γ of the generator matrices (4) are given 244 Table 1. Table 2. DOUGHERTY, GULLIVER AND HARADA Double circulant Type II codes of length 8. Code First row of R 0 α β γ Code First row of R 0 α β γ C8,1 761 2 3 3 C8,17 721 6 3 3 C8,2 761 2 5 5 C8,18 721 6 5 5 C8,3 761 6 3 5 C8,19 721 2 3 5 C8,4 761 6 5 3 C8,20 721 2 5 3 C8,5 671 2 3 3 C8,21 271 6 3 3 C8,6 671 2 5 5 C8,22 271 6 5 5 C8,7 671 6 3 5 C8,23 271 2 3 5 C8,8 671 6 5 3 C8,24 271 2 5 3 C8,9 653 2 3 3 C8,25 532 6 3 3 C8,10 653 2 5 5 C8,26 532 6 5 5 C8,11 653 6 3 5 C8,27 532 2 3 5 C8,12 653 6 5 3 C8,28 532 2 5 3 C8,13 563 2 3 3 C8,29 352 6 3 3 C8,14 563 2 5 5 C8,30 352 6 5 5 C8,15 563 6 3 5 C8,31 352 2 3 5 C8,16 563 6 5 3 C8,32 352 2 5 3 Weight distributions of length 8 double circulant codes. Weight WH Frequency Weight WE Frequency 0 1 0 1 4 14 16 240 5 336 32 1472 6 672 48 1568 7 1680 64 702 8 1393 80 112 128 1 in Table 1. These codes have identical Hamming weight distributions W H and identical Euclidean weight distributions W E . W H and W E are listed in Table 2. From Lemma 5.2, the four codes C8,4i+1 , C8,4i+2 , C8,4i+3 and C8,4i+4 are equivalent for 0 ≤ i ≤ 7. In addition, it follows from Lemma 5.3 that the four codes C8,1 , C8,5 , C8,18 and C8,22 are equivalent, and the four codes C8,9 , C8,13 , C8,30 and C8,26 are equivalent. Thus the equivalence of only two codes, C8,1 and C8,9 , needs to be checked further. Using the following method, we have determined the inequivalence of these codes. Let di (ε) be the number of pairs (x, y) of codewords x and y, of HammingP weight i, such that the Euclidean weight of a vector x − y is ε. Note that di (0) = Ai and ε di (ε) = Ai2 where Ai denotes 245 SELF-DUAL CODES OVER FINITE RINGS Table 3. Classification of double circulant codes of length 8. Code d5 (0) d5 (16) d5 (32) d5 (48) d5 (64) d5 (80) d5 (96) d5 (112) d5 (128) C8,1 336 12032 58208 31168 11152 0 0 0 0 C8,9 336 11648 59360 30016 11536 0 0 0 0 the number of codewords of Hamming weight i. Since the Euclidean weights of codewords x − y and y − x are the same, the numbers di (ε) are invariant under the equivalence of codes over Z8 for each i and ε. For codes C8,1 and C8,9 , we have obtained the numbers d5 (ε) for ε = 0, 16, . . . , 128, and the results are given in Table 3. This table establishes that there exists exactly two inequivalent double circulant self-dual codes of length 8 over Z8 . 5.4. Double circulant codes of length 16 over Z8 By exhaustive search, we have found all distinct double circulant Type II codes of length 16 over Z8 . The only values of α for which there exist bordered double circulant Type II codes are 0 and 4. We first consider only double circulant codes with α = 0. Due to space limitations, we list in Table 4 only those codes which must be checked further for equivalences. The corresponding Euclidean weight distributions, W j , are given in Table 5. Note that the borders for these codes are (α, β, γ ) = (0, 3, 3). The distinct codes can be determined using Lemmas 5.2 and 5.3. We now classify the double circulant codes with weight distributions Wi for 1 ≤ i ≤ 6. Obviously, there exists a unique double circulant code, up to equivalence, for W3 and W6 . Let R1 and R2 be circulant matrices with first rows (3731110) and (3171310), respectively. Table 4. Length 16 double circulant Type II codes with α = 0. Code First row of R 0 W Code First row of R 0 W C16,1 3731110 W1 C16,11 7353510 W5 C16,2 3171310 W1 C16,12 5571330 W5 C16,3 7113310 W1 C16,13 5135730 W5 C16,4 7753110 W2 C16,14 5535330 W6 C16,5 7317510 W2 C16,15 3775110 W7 C16,6 5171730 W2 C16,16 7157310 W7 C16,7 7717110 W3 C16,17 3375510 W7 C16,8 3135310 W4 C16,18 3571710 W7 C16,9 3331510 W4 C16,19 3535710 W7 C16,10 5331130 W4 C16,20 5375130 W7 246 DOUGHERTY, GULLIVER AND HARADA Table 5. Weight Weight distributions of length 16 double circulant codes with α = 0. W1 Frequency W2 Frequency W3 Frequency W4 Frequency W5 Frequency W6 Frequency W7 Frequency 0 1 1 1 1 1 1 1 16 480 480 480 480 480 480 480 32 58976 59368 59368 58976 58976 58976 58976 48 732152 729072 728904 732320 732152 732320 732152 64 2866004 2876196 2877148 2865052 2866004 2865052 2866396 80 4972248 4954272 4952256 4974264 4972416 4974432 4970120 96 4641960 4659376 4660944 4640392 4641344 4639776 4646552 112 2480520 2472512 2473296 2479736 2481136 2480352 2475704 128 831326 831606 829254 833678 831606 833958 833566 144 168872 169600 171168 167304 168032 166464 168760 160 22936 23272 23048 23160 23328 23552 22824 176 1568 1232 1064 1736 1624 1792 1456 192 172 228 284 116 116 60 228 256 1 1 1 1 1 1 1 Since R1 and R2 are R 0 of the generator matrices of C16,1 and C16,2 , these codes are equivalent if there exist permutation matrices P and Q such that R1 = PR2 Q. The following matrices 1000000 0000010 0001000 P = 0100000 0000001 0000100 0010000 and 0010000 0000010 0100000 Q = 0000100 , 1000000 0001000 0000001 satisfy the equality R1 = PR2 Q, and so establish the equivalence of C16,1 and C16,2 . In this way, it can be determined that C16,i , C16,i+1 and C16,i+2 are equivalent when i = 1, 4, 8 and 11. Therefore, we obtain a complete classification of the Type II double circulant codes with weight distributions Wi for 1 ≤ i ≤ 6. We now investigate the six codes with weight distribution W7 . Since there exist permutation matrices P and Q such that R16 = PR17 Q, where R16 and R17 are R 0 of codes C16 and C17 , respectively, the two codes are equivalent. Similarly, C19 and C20 can be shown to be equivalent. For codes C16,15 , C16,16 C16,18 and C16,19 , we have calculated d7 (ε). The values of d7 (16) for these four codes are 2520, 2520, 2184 and 2184, respectively. Thus there are at least two inequivalent codes. Since the two codes C16,i and C16,i+1 , for both 247 SELF-DUAL CODES OVER FINITE RINGS i = 15 and 18, have identical values of d7 (ε), additional values were calculated for d j (ε) for 4 ≤ j ≤ 9. However, these were also found to be identical. If two codes are equivalent then there is an equivalent map from one to the other. We have tested several maps, but have been unable to determine the equivalence or inequivalence of these codes. Next we consider double circulant codes with (α, β, γ ) = (4, 3, 3). Twenty codes need to be checked for equivalences, and these codes can be obtained from those in Table 4 by 0 . replacing 0 in the first row of R 0 with 4. We denote the code obtained from C16,i by C16,i The Euclidean weight distributions are listed in Table 6, and the codes corresponding to these distributions are given in Table 7. The above arguments for codes with α = 0 show that there exists a unique Type II double circulant code with Wi (i = 8, 9, 12 and 13). Moreover, codes in the following groups are 0 0 0 0 0 0 0 0 0 0 , C16,5 , C16,6 ), (C16,11 , C16,12 , C16,13 ), (C16,16 , C16,17 ) and (C16,19 , C16,20 ). equivalent: (C16,4 Table 6. Weight Weight distributions of length 16 double circulant codes with α = 4. W8 Frequency W9 Frequency W10 Frequency W11 Frequency W12 Frequency W13 Frequency 0 1 1 1 1 1 1 16 480 480 480 480 480 480 32 58752 59144 58752 58752 58752 58752 48 733888 730808 733552 733888 733888 733216 64 2860344 2870536 2862444 2860736 2860540 2864348 80 4982136 4963992 4976928 4980008 4980960 4972896 96 4632440 4650472 4638880 4637032 4635744 4642016 112 2484664 2476040 2480576 2479848 2479008 2482144 128 831830 831830 833286 834070 837990 828582 144 167752 169320 166912 167640 163776 170048 160 23048 22992 23776 22936 24224 23328 176 1768 1376 1488 1656 1824 1152 192 112 224 140 168 28 252 256 1 1 1 1 1 1 Table 7. Length 16 double circulant codes with α = 4. W Codes W8 0 0 0 C16,1 , C16,2 , C16,3 W9 0 0 0 C16,8 , C16,9 , C16,10 W10 0 0 0 0 0 0 C16,4 , C16,5 , C16,6 , C16,11 , C16,12 , C16,13 W11 0 0 0 0 0 0 C16,15 , C16,16 , C16,17 , C16,18 , C16,19 , C16,20 W12 0 C16,7 W13 0 C16,14 248 DOUGHERTY, GULLIVER AND HARADA Table 8. di (ε) for length 16 double circulant codes with α = 4. Code d7 (0) d7 (16) d7 (32) d7 (48) d7 (64) d7 (80) d7 (96) d7 (112) d7 (128) 0 C16,4 1344 2800 65184 207648 646800 286720 488208 12208 95424 1344 2744 64960 208096 646912 286328 488320 12208 95424 1400 1568 58856 226072 639352 412776 474712 69552 75712 1400 1568 58856 226072 639352 412776 474712 69552 75712 1400 2016 61992 218848 643608 406616 483448 67704 74368 1400 2016 61992 218848 643608 406616 483448 67704 74368 0 C16,11 0 C16,15 0 C16,16 0 C16,18 0 C16,19 0 0 0 0 Further, Table 8 gives the values d7 (ε) (ε = 0, 16, . . . , 128) for C16,4 , C16,11 , C16,15 , C16,16 , 0 0 C16,18 and C16,19 . This table establishes that there exists at least 8 inequivalent Type II bordered double circulant codes with α = 4. 5.5. Extremal Type II codes of other lengths The most remarkable length for extremal Type II codes is 24, because of the connection with the Leech lattice (cf. Lemma 6.1). Proposition 5.8 There is no extremal double circulant Type II code over Z8 of length 24. Proof: The possible borders (α, β, γ ) of length 24 are only (±2, ±1, ±1) since the first row of the generator matrix must be self-orthogonal. Thus the Euclidean weight of the first row of the generator matrix (4) is only 16, so the code cannot be extremal. 2 It seems infeasible to construct all distinct Type II double circulant codes over Z8 of larger lengths. For length 2n = 48, we have determined that D848 (3) contains vectors of Euclidean weight 32 and so is not extremal. 5.6. Examples of Type II codes over Z 16 and Z 32 Here we give examples of Type II double circulant codes over Z16 and Z32 . First, some examples of Type II bordered double circulant codes over Z16 of length 8 are given in Table 9. This table also contains the Euclidean weight distributions of the six codes, and establishes that these codes are inequivalent. We now present Type II codes over Z32 of the same length. For borders (α, β, γ ) = (6, 3, 3), the eight codes with first row (18 7 1), (15 9 2), (31 25 2), (29 26 3), (11 10 5), (27 21 10), (26 19 13), (23 18 17) are Type II codes. Moreover, we have verified that these codes have different Euclidean weight distributions and so are inequivalent. 249 SELF-DUAL CODES OVER FINITE RINGS Table 9. Type II double circulant codes of length 8 over Z16 . (α, β, γ ) (2, 3, 3) (2, 3, 3) (2, 3, 3) (6, 3, 3) (6, 3, 3) (6, 3, 3) First row 761 14 13 3 14 11 5 721 15 9 2 11 10 5 Frequency Frequency Frequency Frequency Frequency Frequency Weight 0 1 1 1 1 1 1 32 240 240 240 240 240 240 64 2160 2160 2160 2160 2160 2160 96 6272 6272 6272 6272 6272 6272 128 12560 12560 12560 12560 12560 12560 160 14024 14000 14096 13968 14016 13992 192 14464 14560 14176 14688 14496 14592 224 8188 8080 8560 7904 8144 8024 256 5130 5070 5070 5150 5150 5150 288 1776 2016 1536 2016 1776 1896 320 552 336 720 368 560 464 352 156 240 144 192 144 168 384 12 0 0 16 16 16 512 1 1 1 1 1 1 6. Type II codes over Z2m of small lengths and related even unimodular lattices In this section, we consider Type II codes over Z2m of small lengths. In Section 4, we described the Hamming codes H2m as Type II codes of length 8. Theorem 5.6 describes the existence of Type II bordered double circulant codes of length 8. Thus we obtain two infinite families of Type II codes of length 8. Applying Theorem 4.1 to the above codes, we obtain an infinite number of alternative constructions of the unique 8-dimensional even unimodular lattice, which is called the Gosset lattice E 8 . Now consider Type II codes of length 16. H2m ⊕ H2m is a Type II code over Z2m of length 16. There exist Type II bordered double circulant codes D16 2m (x) over Z2m for any m. For m every code C over Z2 , there is an associated binary code C (1) = {c (mod 2) | c ∈ C}. It is easy to see that the binary codes associated with H2m ⊕ H2m and D16 2m (x) are doubly-even + in [5], respectively. Thus H2m ⊕ H2m and self-dual codes. Moreover, they are e82 and d16 D16 2m (x) are inequivalent for each m. The lattice 32m (H2m ⊕ H2m ) is the even unimodular lattice E 8 ⊕ E 8 , which is one of the two even unimodular lattices of dimension 16. For the Leech lattice, we have the following lemma. Lemma 6.1 Suppose that there exists an extremal Type II code C of length 24 over Z2m . Then the Leech lattice can be constructed from C by Theorem 4.1 for m ≥ 2. Proof: The lattice constructed from C by Theorem 4.1 is an even unimodular lattice of dimension 24 with minimum norm 4, which must be the Leech lattice. 2 250 DOUGHERTY, GULLIVER AND HARADA For m = 2, several extremal Type II codes of length 24 were constructed in [2] and [4]. These codes gave simple alternative constructions of the Leech lattice. The lifted Golay codes of length 24 over Z2m were constructed from the binary Golay code by Hensel lifting (cf. [3]). The lifted Golay codes are Type II codes; however, we have verified that the lifted Golay code over Z8 is not extremal by computer. In addition, it is shown in Proposition 5.8 that there is no extremal Type II double circulant code over Z8 of length 24. For m = 1 and 2, there are extremal Type II double circulant codes over Z2m of length 24 and the Hensel lifted Golay code over Z4 is extremal. Thus it would be worthwhile to construct extremal Type II codes over Z8 of length 24. Acknowledgments The authors would like to thank Eiichi Bannai, Akihiro Munemasa and Takashi Tasaka for helpful comments. This work was supported in part by a grant from the Japan Society for the Promotion of Science. References 1. A. Bonnecaze, P. Solé, C. Bachoc, and B. Mourrain, “Type II codes over Z4 ,” IEEE Trans. Inform. Theory 43 (1997), 969–976. 2. A. Bonnecaze, P. Solé, and A.R. Calderbank, “Quaternary quadratic residue codes and unimodular lattices,” IEEE Trans. Inform. Theory 41 (1995), 366–377. 3. A.R. Calderbank and N.J.A. Sloane, “Modular and p-adic cyclic codes,” Designs, Codes and Cryptogr. 6 (1995), 21–35. 4. A.R. Calderbank and N.J.A. Sloane, “Double circulant codes over Z4 and even unimodular lattices,” J. Alg. Combin. 6 (1997), 119–131. 5. J.H. Conway, V. Pless, and N.J.A. Sloane, “The binary self-dual codes of length up to 32: A revised enumeration,” J. Combin. Theory Ser. A 60 (1992), 183–195. 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. J.H. Conway and N.J.A. Sloane, Sphere Packing, Lattices and Groups, 2nd edition, Springer-Verlag, New York, 1993. 8. A.R. Hammons, Jr., P.V. Kumar, A.R. Calderbank, N.J.A. Sloane, and P. Solé, “The Z4 -linearity of Kerdock, Preparata, Goethals and related codes,” IEEE Trans. Inform. Theory 40 (1994), 301–319. 9. M. Harada, “New extremal Type II codes over Z4 ,” Designs, Codes and Cryptogr. 13 (1998), 271–284. 10. M. Klemm, “Selbstduale codes über dem Ring der ganzen Zahlen modulo 4,” Arch. Math. 53 (1989), 201–207. 11. F.J. MacWilliams and N.J.A. Sloane, The Theory of Error-Correcting Codes, North-Holland, Amsterdam 1977. 12. C.L. Mallows and N.J.A. Sloane, “An upper bound for self-dual codes,” Inform. Control 22 (1973), 188–200. 13. O.T.O. O’Meara, Introduction to Quadratic Forms, Springer-Verlag, New York, 1971. 14. V. Pless and Z. Qian, “Cyclic codes and quadratic residue codes over Z 4 ,” IEEE Trans. Inform. Theory 42 (1996), 1594–1600. 15. V. Pless, P. Solé, and Z. Qian, “Cyclic self-dual Z 4 -codes,” Finite Fields and Their Appl. 3 (1997), 48–69. 16. M. Ventou and C. Rigoni, “Self-dual doubly circulant codes,” Discrete Math. 56 (1985), 291–298. 17. J.A. Wood, “Duality for modules over finite rings and applications to coding theory,” submitted.