
Constructions of the Golay Codes: A Survey Robin Chapman Department of Mathematics University of Exeter EX4 4QE UK [email protected] 23 September 1997 Version 1.1 In this survey, I give various constructions of the (extended) binary and ternary Golay codes, sometimes with proofs of their properties. I also give existence and uniqueness proofs. At present I only cover the binary codes; I intend to add a section on the ternary codes soon. Corrections, comments, references and new constructions are solicited and will be gratefully received. 1 Constructions of the Binary Golay Code We outline various constructions of the binary Golay code. We only deal with the extended binary Golay code, that of length 24 and dimension 12. 1.1 Preliminaries n A code of length n over the finite field Fq is a subset of V = Fq , and it is linear if it is an Fq-subspace of V . When q = 2 we talk of binary codes and binary linear codes. The weight w(a) of an element a ∈ V is the number of non-zero entries in a. The minimum weight of a linear code C is the smallest number which is a weight of a non-zero element of C. The weight enumerator of a linear code C is n X w(a) X r WC(X) = X = ArX a∈C r=0 where Ar is the number of words of weight r in C. If a = (aj), b = (bj) ∈ V then Pn a·b = j=1 ajbj ∈ Fq. The dot product (a, b) 7→ a·b is a non-singular symmetric bilinear 1 form. If C is a linear code then its dual is C⊥ = {a ∈ V : a · b = 0 for all b ∈ C}. By non-singularity, C⊥ is a linear code of dimension n − dim V . Also (C⊥)⊥ = C. Of course C is self-dual if C = C⊥; if C is self-dual, then dim V = n/2. More generally C is self-orthogonal if a · b = 0 for all a, b ∈ C, equivalently if C ⊆ C⊥. If C is self-orthogonal then dim C ≤ n/2. If C is a self-orthogonal binary code, then each element of C has even weight, and so the all-ones vector lies in C⊥. Let us consider binary codes in more detail. In this case we can identify elements of V with subsets of {1, 2, . , n}; with a = (aj) being identified with the set A of all j with aj = 1. More generally we can replace {1, 2, . , n} with any n-element set Ω = {ω1, ω2, . , ωn}, identifying (aj) with A = {ωj : aj = 1}. With this identification V becomes P(Ω), the power set of Ω. Addition is replaced by symmetric difference, i.e., for A, B ∈ P(Ω) we let A + B = (A ∪ B) − (A ∩ B). The weight w(A) of A ∈ P(Ω) is simply its cardinality |A|. Also A · B is equal to |A ∩ B| considered modulo 2. As |A + B| = |A| + |B| − 2|A ∩ B| it is apparent that w(A + B) ≡ w(A) + w(B) (modulo 2). But if A · B = 0 then |A ∩ B| is even, and then w(A + B) ≡ w(A) + w(B) (modulo 4). If C is a self-orthogonal binary linear code, and is spanned by words of weights divisible by 4, then all its words will have weights divisible by 4. We call such a code doubly even. Conversely all doubly even codes are self-orthogonal, for 2|A ∩ B| = |A| + |B| − |A + B| ≡ 0 (mod 4) for all A, B ∈ C. We now consider Steiner systems. An S(k, r, n) Steiner system on Ω is a collection S of r-element subsets of a set Ω of n elements with the property that each k-element subset of Ω is a subset of exactly one element of S. We can count the number of sets in S by the following artifice. Consider the collection C of all pairs (A, B) with B ∈ S, A ⊆ B and |A| = k. Each k-element subset of Ω is the first entry in exactly one such pair, and so n r r |C| = k . But each element in S is the second entry in k such pairs, and so |C| = k |S|. n r Thus |S| = k / k . Let S be an S(k, r, n) Steiner system on Ω, and let X be a subset of Ω with |X| = t ≤ k. Let Ω0 = Ω − X, and S0 = {B − X : B ∈ S,X ⊆ B}. Then Ω0 is a set of (r − t)-element subsets of the (n − t)-element set Ω0. If A is a (k − t)- element subset of Ω0 then X ∪A is contained in a unique B ∈ S. Then A ⊆ B−X ∈ S0. On the other hand if A ⊆ B0 ∈ S0, then X ∪A ⊆ X ∪B0 ∈ S and X ∪B0 = B and B0 = B −X. 0 0 0 n−t r−t Thus S is an S(k − t, r − t, n − t) Steiner system on Ω . Then |S | = k−t / k−t . Hence n−t r−t there are k−t / k−t elements of S containing X. 1.2 The binary Golay code The theory of the binary Golay code is intimately connected with that of the Steiner system S(5, 8, 24). I describe their relationship here. Most of this section is based on my recollections of lectures of Conway [3]. 2 We define a binary Golay code as a binary linear code of length 24, of dimension at least 12, and minimum weight at least 8. In this section we fix a 24-element set Ω and consider codes as subsets of V = P(Ω). The basic properties of binary Golay codes are given by the following two theorems. Theorem 1 If C is a binary Golay code then 1. C has dimension 12, 2. C has minimum weight 8, 3. the words of weight 8 in C form an S(5, 8, 24) Steiner system, 4. C is spanned by its words of weight 8. Proof We consider congruences in V modulo C. Fix an element ω ∈ Ω. Let Sω be the set of A ∈ V with |A| ≤ 4 and with ω ∈ A if |A| = 4. Then 24! 24! 24! 24! 23! |S | = + + + + = 1 + 24 + 276 + 2024 + 1771 = 4096 = 212. ω 0 1 2 3 3 The sum of two elements of Sω has weight at most 4 + 4 = 8, but cannot equal 8, for then those elements of Sω would have weight 4 each, and their sum must have weight at most 6 since ω lies in both elements. The sum of two distinct elements of Sω thus cannot lie in C. 12 12 The cosets A + C as A runs through Sω are all distinct. Thus |V/C| ≥ 2 . But as |C| ≥ 2 then |V/C| ≤ 224/212 = 212 and so |C| = |V/C| = 212. Thus C has dimension 12. Also the A + C for A ∈ Sω form a complete set of cosets of C in V . Let B ∈ V have weight 4, and suppose that ω∈ / A. Then B/∈ Sω, but B ∈ A + C for some A ∈ S. As A + B is a non-zero element of Sω, then A + B has weight 8, and so C has minimum weight 8. The set A + B contains {ω} ∪ B. Thus each 5-element subset of Ω containing ω is contained in at least one 8-element set in C. But as ω is an arbitrary element of Ω then each 5-element subset of Ω is contained in at least one 8-element set of C. But this element is unique; any pair of distinct 8-element sets A, B ∈ V with |A ∩ B| ≥ 5 elements satisfy 0 < |A + B| ≤ 6, contrary to C’s having minimum weight 8. Thus the weight 8 words of C form a Steiner system S(5, 8, 24) and so there are 24 42504 5 = = 759 8 56 5 words of weight 8 in C. Let C0 be the linear subspace of C generated by the weight-8 words of C. We claim that C = C0. If A ∈ V has weight at least 5, then there is a weight-8 word B ∈ C whose support meets that of A in at least 5 places. Thus w(A + B) < w(A). Repeating this argument shows that each element of V is congruent modulo C0 to a word of weight at most 4. But we have seen that if B/∈ Sω has weight 4, then there is A ∈ Sω with A + B ∈ C having 3 0 weight 8. Thus all elements of V are congruent modulo C to elements of Sω, and so 0 0 0 0 0 |V/C | ≤ |Sω| = |V/C|. As C ⊆ C then |V/C | ≥ |V/C|. Hence |C| = |C | and C = C . As C is generated by words of even weight, each word in C has even weight. 2 This shows that a binary Golay code determines, and is determined by an S(5, 8, 24) Steiner system. The question remains as to whether each such Steiner system comes from a binary Golay code. The answer is yes, and so the problem of constructing binary Golay codes and S(5, 8, 24) Steiner systems are equivalent. Theorem 2 Let S be an S(5, 8, 24) Steiner system on Ω, and let C ⊆ P(ω) be the code spanned by the A ∈ S. Then 1. C is self-dual, 2. C is a binary Golay code, 3.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages13 Page
-
File Size-