Uniqueness of codes using semidefinite programming

For \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$n,d,w \in \mathbb {N}$$\end{document}n,d,w∈N, let A(n, d, w) denote the maximum size of a binary code of word length n, minimum distance d and constant weight w. Schrijver recently showed using semidefinite programming that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A(23,8,11)=1288$$\end{document}A(23,8,11)=1288, and the second author that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A(22,8,11)=672$$\end{document}A(22,8,11)=672 and \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A(22,8,10)=616$$\end{document}A(22,8,10)=616. Here we show uniqueness of the codes achieving these bounds. Let A(n, d) denote the maximum size of a binary code of word length n and minimum distance d. Gijswijt et al. showed that \documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$A(20,8)=256$$\end{document}A(20,8)=256. We show that there are several nonisomorphic codes achieving this bound, and classify all such codes with all distances divisible by 4.


Introduction
Let F 2 := {0, 1} denote the field of two elements and fix n ∈ N. A word is an element v ∈ F n 2 . For two words u, v ∈ F n 2 , their (Hamming) distance d H (u, v) is the number of i with u i = v i . A (binary) code is a subset of F n 2 . For any code C, the minimum distance d min (C) (∈ R∪{∞}) of C is the minimum distance between any pair of distinct code words in C. The weight wt(v) of a word v ∈ F n 2 is the number of nonzero entries of v. A (binary) constant weight code is a binary code in which all code words have a fixed weight w. Then A(n, d, w) is defined as the maximum size of a binary constant weight w code of minimum distance at least d.

Moreover, A(n, d) is the maximum size of a binary code of minimum distance at least d.
A binary constant weight w code C ⊆ F n 2 with d min (C) ≥ d is called an (n, d, w)-code. A binary code C ⊆ F n 2 and d min (C) ≥ d is called an (n, d)-code. Using semidefinite programming, some upper bounds on A(n, d, w) have recently been obtained that are equal to the best known lower bounds: it has been established that A(23, 8,11) = 1288 (see [15]), and that A(22, 8,11) = 672 and A (22,8,10) = 616 (see [14]). We show using the output of the corresponding semidefinite programs that the codes of maximum size are unique (up to coordinate permutations) for these n, d, w.
For unrestricted (non-constant weight) binary codes, the bound A(n, d) = A(20, 8) ≤ 256 was obtained in [7], implying that the quadruply shortened extended binary Golay code of size 256 is optimal. The quadruply shortened extended binary Golay code is a linear (n, d) = (20, 8)-code of size 256 and has all distances divisible by 4.
Up to equivalence there are unique (24 − i, 8)-codes of size 2 12−i for i = 0, 1, 2, 3, namely the i times shortened extended binary Golay codes [2]. However, it turns out that the 4 times shortened extended binary Golay code is not the only (20, 8)-code of size 256. We classify such codes with all distances divisible by 4, and find 15 such codes.

The semidefinite programming upper bound
Following [7,14,15], we start by describing semidefinite programming upper bounds on A(n, d) and A(n, d, w). Fix n, d, w ∈ N and let N be either F n 2 or the set of words in F n 2 of weight w. For k ∈ Z ≥0 , let C k be the collection of codes C ⊆ N with |C| ≤ k. We define  (1), so that C k is the collection of unrestricted (not necessarily constant weight) codes of size at most k. It can be proved that A 2 (n, d) and A 2 (n, d, w) are equal to the classical Delsarte linear programming bound in the Hamming and Johnson schemes respectively [5].
Let G be the set of distance preserving permutations of N . In case of constant weightcodes, G = S n , where S n denotes the symmetric group on n elements, but if n = 2w the group G is twice as large, since then taking complements is also a distance preserving permutation of N . In case of non-constant weight codes, G = S n 2 S n , where S n 2 denotes the direct product of n copies of S 2 . Let k be the set of G-orbits of non-empty codes in C k and let d k ⊆ k be those orbits that correspond to codes with minimum distance at least d. By averaging an optimum x over all x • g for g ∈ G, one obtains the existence of a G-invariant optimum solution to (1). Here • denotes (function) composition, so The original problem is equivalent to the much smaller problem in which the constraint is added that x is G-invariant. We will write y ω for the common value of a G-invariant function x on codes C in orbit ω. Hence, the matrices M k,D (x) become matrices M k,D (y) and we have considerably reduced the number of variables in (1). Moreover, a block diagonalization M k,D (y) → U T k,D M k,D (y)U k,D can be obtained reducing the sizes of the matrices involved to make the computations in (1) tractable (see [14,15] for the reductions, where we note that the reductions used in [14] are obtained by an adaptation of the method of [8]).
It can be seen (cf. [7,14]) that the nonnegativity condition on x, and hence on y, is already imposed by positive semidefiniteness of all matrices M k,D (x). When solving the semidefinite program with a computer, we add the constraints y ω ≥ 0 seperately, by adding 1 × 1 blocks (y ω ) which are required to be positive semidefinite. This will allow us to easily determine which variables y ω will be necessarily zero in any optimum solution. This may yield necessary conditions on all optimal codes, which may give uniqueness or a classification of the optimal codes.

Information about maximum size codes
Suppose that we have an instance of n, d or n, d, w for which A k (n, d) = A(n, d) or A k (n, d, w) = A(n, d, w), respectively. We want to obtain information about codes attaining these bounds from the semidefinite programming output. The semidefinite program (1) can be written as follows: Here b ω 0 = |N |, where ω 0 ∈ d k corresponds to the orbit of a code of size 1 in C k , and b ω = 0 for all other ω ∈ d k . Moreover, M is a (large) block diagonal matrix that consists of blocks U T k,D M k,D (y)U k,D (which are reduced versions of the blocks M k,D (y) that are required to be positive semidefinite in (1)) and blocks (y ω ). The matrix F ω is a matrix of the same size as M with entries the coefficients of −y ω in the corresponding entries of M. For each orbit ω, the matrix F ∅ is a matrix of the same size as M with entries the constant coefficients in the corresponding entries of M. For two real-valued square matrices A, B of the same size, we write A, B := tr(AB T ). The dual program of (2) then reads If (M, y) is any optimum solution for (2) and X is an optimum solution for (3) with the same value, then M, X = 0. As M 0 and X 0, we have in particular y ω X ω = 0 for the separate 1 × 1-blocks (y ω ) in M and (X ω ) in X , where (X ω ) denotes the 1 × 1-block in X corresponding to the 1 × 1-block (y ω ) in M. Thus If y ω = 0 for all solutions to (1) with objective value A k (n, d, w) = A(n, d, w), then for any code C of maximum size there is no subcode D ⊂ C with D ∈ ω. (Suppose otherwise, then one constructs a feasible solution to (1) by putting x(S) = 1 for S ∈ C k with S ⊆ C and x(S) = 0 else, and hence by averaging over G there exists a feasible G-invariant solution with y ω > 0, a contradiction.) So orbit ω does not appear in any code of maximum size.
Hence we know which orbits ω ∈ d k cannot occur in a code of maximum size. We will call these orbits forbidden orbits.
We used the solver SDPA-GMP [11,16] to conclude which orbits are forbidden. The semidefinite programming solver does not produce exact solutions, but approximations up to a certain precision. In our case the approximations are precise enough to verify (with certainty) that certain orbits are forbidden. See the Appendix for details.

Self-orthogonal codes
If u, v ∈ F n 2 , we define (u ∩ v) ∈ F n 2 to be the word that has 1 at position i if and only if u i = v i = 1. The following equality is well-known and will be used often throughout the paper: The Given a code C, the dual code C ⊥ is the set of all v ∈ F n 2 that are orthogonal to all u ∈ C. A code C is called self-dual if C = C ⊥ . For small n, self-dual codes are classified by Pless and Sloane [13].

Constant weight codes
With semidefinite programming three exact values of A(n, d, w) have been obtained. In [15], it is found that   [14] for details.
In this section we show that the codes attaining these bounds are unique up to coordinate permutations, using the information about forbidden orbits obtained from the semidefinite programming output. In order to prove uniqueness of the (23, 8, 11)-code of maximum size, we start by proving uniqueness of the (24, 8, 12)-code of maximum size. The uniqueness of this code can already be obtained from the classical linear programming bound. Below, and also later, we will need the following definition. The distance distribution (a i ) n i=0 of a code C ⊆ F n

Proposition 4.1 Up to coordinate permutations there is a unique (24, 8, 12)-code of size 2576. An example is given by the set of words of weight 12 in the extended binary Golay code.
Proof Let C be a (24, 8, 12)-code of size 2576. The classical linear programming bound in the Johnson scheme (which is equal to A 2 (n, d, w)) gives maximum 2576. Moreover, one has This information can be obtained immediately from the dual solution: the linear program contains constraints a i ≥ 0. If the corresponding dual variable is > 0, then a i = 0 in all optimum solutions to the linear program. 1 Consider the F 2 -linear span F := C of C. Note that C, hence F, is self-orthogonal, so |F| ≤ 2 24/2 = 2 12 . Since |F| ≥ |C| > 2 11 and F is linear, we must have |F| = 2 12 , so F is self-dual. Let u ∈ F, u = 0. The sets {u + x | x ∈ C} ⊆ F and C ⊆ F have non-empty intersection, because both sets have size 2576 > |F|/2. So u + x = y for some x, y ∈ C. But then wt(u) = d H (x, y) ≥ 8, as C has minimum distance 8. It follows that F has minimum distance 8, and we conclude that F is the extended binary Golay code. So C is the set of weight 12 words in the extended binary Golay code.

A(23, 8, 11)
Construct a code D of length 24, weight 12 and size 2576 as follows: add a symbol 1 to every codeword of C, put it in D and put also the complement of the resulting word in D. Then D has minimum distance 8 by (6). Hence D is the set of weight 12 words of the extended Golay code F by Proposition 4.1. The automorphism group of the extended binary Golay code acts transitively on the coordinate positions [9]. Hence, C is the set of weight 11 words in the binary Golay code.

A(22, 8, 11)
Proposition 4.3 Up to coordinate permutations there is a unique (22, 8, 11)-code of size 672. 1 We used SDPA-GMP to solve this LP. The approximate dual solution allows us, with a computation similar to the computation in the Appendix in (13) Proof Let C be a (22, 8, 11)-code of size 672. First one concludes that a 14 = 0 using the semidefinite program B 4 (22, 8, 11) from [14]. This is explained in more detail in the appendix: if a 14 > 0, then a 14 ≥ 2/672 and a 10 + a 14 + a 18 + a 22 ≥ 318/672 (by Proposition 5.6 below). We add these two constraints to the program B 4 (22, 8,11). The resulting bound is strictly smaller than 672, so a 14 = 0 in any (22, 8, 11)-code of size 672.
Subsequently, by considering the forbidden orbits in the solution of the semidefinite program A 3 (22, 8,11) from [15] with the added constraint that a 14 = 0 (the solution of A 3 (22, 8,11) with this added constraint is 672) one obtains: Let D be the collection of 672 + 672 = 1344 codewords of length 24 of the form 10x with x ∈ C together with their complements, and let F = D be the F 2 -linear span of D.
All distances in D belong to {8, 12, 16} by (7), so D, and hence also F, is self-orthogonal, which implies |F| ≤ 2 24/2 = 2 12 . Since all words in D have weight divisible by 4 and F is self-orthogonal, all words in F also have weight divisible by 4. The code F contains words of forms 01x, 10y, 11z and 00u. Each form occurs at least 672 times, so |F| ≥ 4 · 672 > 2 11 , hence |F| = 2 12 and F is self-dual.
To show that F is the extended binary Golay code, it suffices to prove that all words in F have weight ≥ 8, i.e., that no word in F has weight 4. Words of F are sums of words 10x with x ∈ C, possibly together with the all-ones word. So we must prove that sums of words 10x do not have weight 4 or 20. A sum of words 10x starts with 00 or 10 and is the sum of an even or odd number of words 10x, respectively.
The 1024 words in F starting with 10 are formed by the coset 10x + F 00 (with x ∈ C arbitrary but fixed) and hence are a sum of three elements of the form 10x with x ∈ C. But such a sum has weight 8, 12 or 16 by (7), implying that words in F starting with 10 do not have weight 4 or 20.
Therefore weights 4 and 20 do not appear in F, so F is indeed the extended binary Golay code. As the automorphism group of the extended binary Golay code F acts 2-transitively on the coordinate positions [9], this implies that C is unique.  [14]. This is explained in more detail in the appendix: if a 14 > 0, then a 14 ≥ 2/616 and a 10 + a 14 + a 18 ≥ 208/616 (by Proposition 5.5 below). We add these two constraints to the program B 4 (22, 8, 10). The resulting bound is strictly smaller than 616, so a 14  Let F = C . Since C is self-orthogonal and has words of weights divisible by 2 but not by 4, F is self-orthogonal and has half of the weights divisible by 4 and half of the weights divisible by 2 but not by 4. Both halves of F have size ≥ |C| = 616, but F has size ≤ 2048 as it is self-orthogonal. So |F| = 2048 and F is self-dual.

A(22, 8, 10)
Let E ⊆ F be the subcode of F consisting of all words with weight divisible by 4. For each u ∈ E, we have C ∩ {u + y | y ∈ C} = ∅ (as |C| = 616 > 1024/2), so u = x + y for some x, y ∈ C. Hence E = {x + y | x, y ∈ C}. By (8), no word in E has weight 4. So weight 4 does not occur in F.
If any word u in F has weight 2 then it is in F\E = x + E (with x ∈ C arbitrary). So it is the sum of three words in C. But such sums do not have weight 2 by (8), hence no word in F has weight 2. So F is a self-dual code of minimum distance 6. As the selfdual (n, d) = (22, 6)-code is unique (cf. [13]), F is unique. Hence also C is unique, as it is the collection of weight 10 words of F. (Note that two weight 10 words in F have distance 0 (mod 4), so distance at least 8, since
This code is formed by the words starting with 0000 in the extended binary Golay code with these first four coordinate positions removed. Two binary codes C, D ⊆ F n 2 are equivalent if D can be obtained from C by first permuting the n coordinates and by subsequently permuting the alphabet {0, 1} in each coordinate separately.
Up to equivalence there are unique (24 − i, 8)-codes of size 2 12−i for i = 0, 1, 2, 3, namely the i times shortened extended binary Golay codes [2]. In this section we show that there exist several nonisomorphic (20, 8)-codes of size 256. First we show that there exist such codes with different distance distributions. Subsequently we classify such codes with all distances divisible by 4.
We start by recovering information about possible distance distributions from the semidefinite program A 4 (20, 8). Write ω t ∈ k for the orbit of two words at Hamming distance t. From a code C with distance distribution (a i ), one constructs a feasible solution to (1) by putting x(S) = 1 for S ∈ C k with S ⊆ C and x(S) = 0 else, and hence by averaging over G one obtains a feasible G-invariant solution with variables y ω . This solution has S 20 . So we can add linear constraints on the a i as linear constraints on the variables y ω t to our semidefinite program.
The inner distribution (a i ) is not determined uniquely by the requirement that it is an optimal solution of the semidefinite program A 4 (20, 8) from (1). 3 We find minimum possible values for some of the a i for the case where all distances are even as follows. For any code C, the a i (i = 0) are integer multiples of 2/|C|. So for any (20, 8)-code of size 256, if a 16 < 1 then a 16 ≤ 254/256. With the constraint a 16 ≤ 254/256 the semidefinite program returns an objective value strictly smaller than 256. So a 16 ≥ 1. Similarly, we find a 8 ≥ 126 and a 12 ≥ 96. If we simultaneously add the constraints a 8 ≤ 126, a 12 ≤ 96 and a 16 ≤ 1, the semidefinite program returns 256 as objective value, and the values of y ω 10 and y ω 14 force a 10 = a 14 = 16. Therefore, apart from the 4 times shortened extended binary Golay code, also a code with a 1 = 1, a 8 = 126, a 10 = 16, a 12 = 96, a 14 = 16, a 16 = 1, a i = 0 for all other i, is allowed by the program A 4 (20, 8). Such a code exists, as the following construction demonstrates. Start with the extended binary Golay code F containing the weight 8 word u with all 1s in the first eight positions. As A(24 − 8, 8) = A (16,8) = 32 (see [3]), there can be at most 32 words in F starting with 8 zeroes. These form a linear subcode E of F. As any word in F has an even number of 1s at the first eight positions, there are at most 2 7 = 128 distinct cosets E + v in F. As 32 · 128 = 2 12 = |F| it follows that |E| = 32 and there are exactly 128 distinct cosets E + v.
So if we specify a string of 8 symbols with an even number of ones and take all words in F having these 8 fixed symbols in the first 8 positions, we obtain a subcode D of F of size 32 and minimum distance at least 8. Choose the following 8 specifications, each giving a subcode D of size 32 and minimum distance 8. This yields a (20, 8)-code of size 8 · 32 = 256 in which distances 10 and 14 occur. Note that this code indeed has minimum distance at least 8: first observe that each code D has minimum distance at least 8. Then note that for two different specifications the first part (the first 8 positions) had distance at most 2 before the replacement, so the second part has distance at least 6. After the replacement of the first part, the first 4 positions have distance at least 2, so two words obtained from different specifications have, after the replacement, in total distance at least 2 + 6 = 8. One verifies by computer that its distance distribution is given by (10). So, there exist (20, 8)-codes of maximum size with distance distribution (9) as well as with (10).

Unrestricted (20, 8)-codes of maximum size with all distances divisible by 4
In this section we give a classification of the (20, 8)-codes of size 256 with all distances divisible by 4. An example of such a code is the quadruply shortened extended binary Golay code B, which is linear. There is, up to equivalence, only one such code, since the automorphism group of the extended Golay code acts 5-transitively on the coordinate positions [2]. (Moreover, Dodunekov and Encheva [6]  In this section we will first prove that any maximum-size (20, 8)-code with all distances divisible by 4 is equivalent to one of the 2 16 thus obtained codes. Secondly, we will obtain (by computer) that these 2 16 codes can be partitioned into 15 equivalence classes.
Since C is self-orthogonal and has all distances divisible by 4, also E is self-orthogonal and has all distances divisible by 4. Furthermore, E has dimension 9. To see this, note that 1 / ∈ C since a 20 = 0, so |E| ≥ 257, so |E| ≥ 512. On the other hand, dim E < 10, as E is self-orthogonal with all distances divisible by 4, but there does not exist a self-dual code of length 20 with all distances divisible by 4 (cf. [12]). So dim E = 9 and |E| = 512, implying that for every word u ∈ E one has u ∈ C or 1 + u ∈ C.
For any code we write A i for the number of words of weight i. Since C has weights A 0 = 1, A 8 = 130, A 12 = 120, A 16 = 5, we conclude that E has weights The orthogonal complement E ⊥ of E has dimension 11, and is a union Here a, b, c have even weight (because 1 ∈ E), so each of a, E and b, E and c, E is self-dual. This means that a, b, c are mutually non-orthogonal. Look at Pless [12] to find the self-dual codes of length n = 20 and dimension 10. There are 16 such codes, but we can forget about those with A 8 < 250. There is a unique self-dual code of length n = 20 and dimension 10 with A 8 ≥ 250, namely M 20 with weight enumerator  Table 1 for a possible choice). Using Propositions 5.1 and 5.2, we obtain the first main result of this section. Proof By applying a distance preserving permutation to C, which is possible by Proposition 5.1, we may assume that C contains 0 and that C, 1 = B, 1 . Then C contains 5 weight 16 vectors of the form (11). By Proposition 5.2, the code C is a union of 16 cosets u + D , for some vectors u. The code B, 1 = C, 1 is a union of cosets u i + D together with their complements 1 + u i + D . This implies by (12) that each coset of C has the form u i + D or 1 + u i + D (and C cannot contain both u i and 1 + u i at the same time as a 20 = 0), as required.
It remains to classify the 2 16 = 65536 codes obtained from B by replacing some of the cosets u i + D by 1+u i + D . For this we use the graph isomorphism program nauty [10]. For any code C of word length n containing m codewords, a graph with 2n + m vertices is created: one vertex for each codeword u ∈ C and two vertices 0 i and 1 i for each coordinate position. Each code word u has neighbor 0 i if u i = 0 and 1 i if u i = 1 (i = 1, . . . , n). 1, . . . , n).
All code words have degree n and the coordinate positions have (in this case) larger degree. An automorphism of this graph permutes the codewords and permutes the coordinate positions. In this way one finds a subgroup of S n 2 S n that fixes C and the question of code Table 1 The (20, 8)-codes of size 256 with all distances divisible by 4. The quadruply shortened extended binary Golay code B = C 1 is the union  equivalence is transformed into a question of graph isomorphism. With the program nauty we compute a canonical representative for each of the 2 16 mentioned codes. In this way we find that the 2 16 codes from Proposition 5.3 can be partitioned into 15 equivalence classes. See Table 1 for the classification. In the case of A(23, 8,11) one can conclude with the semidefinite program A 3 (23, 8,11), which can be solved with SDPA-GMP [11,16] within minutes, that for all orbits corresponding to codes not satisfying (6). Let ω be an orbit for which (17) holds. If there exists a code C of maximum size containing a subcode D ⊂ C with D ∈ ω, then one constructs a feasible solution to (1) by putting x(S) = 1 for S ∈ C k with S ⊆ C and x(S) = 0 else, and hence by averaging over G there exists a feasible G-invariant solution with y ω ≥ 1/|G| (this lower bound is not best possible, but sufficient). In our case, G = S 23 , so y ω ≥ 1/23! > 10 −23 , which gives a contradiction with (17). In this way, one verifies that all orbits not satisfying (6) are forbidden, thereby establishing (6). We used a seperate java program to check that X 0 (in fact, X 0) and to compute the error terms as in (13) 616 and (22, 8, 11)-codes C. We write ω t for the orbit of two words at Hamming distance t. Adding the constraint y ω 14 = 0 to the programs A 3 (n, d, w) for these two cases of n, d, w gives A 3 (n, d, w) = A (n, d, w). In this way one shows, in the same way as in the previous paragraph, that all orbits not satisfying (7) and (8) are forbidden, provided that a 14 = 0. So in order to establish (7) and (8) Suppose to the contrary that C is a code as in (18), yet a 14 > 0. Then a 14 ≥ 2/|C|. We will show that this is not possible by adding constraints to the (large) program B 4 (n, d, w).
The semidefinite program will then give B 4 (n, d, w) < A(n, d, w) and we will arrive at a contradiction, as B 4 (n, d, w) is an upper bound for A(n, d, w). To find a better lower bound on some of the a i , we use the following two propositions. We use in both propositions that for two words u, v in a constant weight w code C, which follows from (4). In the next two propositions we will call wt(u ∩ v) the inner product of u and v. So F is a self-orthogonal code of word length 22, dimension 10 and minimum distance 8. Such a code is the twice shortened extended binary Golay code (see [2]), which does not contain words of weight 10. But all words in D ⊆ F have weight 10, a contradiction. Proposition 5.6 Let C be an (22, 8, 11)-code of size 672 with a 14 ≥ 2/672. Then a 10 + a 14 + a 18 + a 22 ≥ 318/672.
Proof Suppose that a 10 +a 14 +a 18 +a 22 < 318/616. Then, by (19), there are at most 316/2 = 158 pairs of words in C with even inner product. Let {b, b } ⊆ C be such a pair of words. Starting with b ∈ C, and greedily picking vectors d ∈ C such that the inner product of d with the already chosen vectors is odd, we end with a subcode B of C of size ≥ 672 − 158 = 514. Now, add an extra symbol 1 to every codeword in B, to obtain a self-orthogonal code D of length 23. As D is self-orthogonal, dim D ≤ 23/2 = 11.
Starting with b ∈ C, we repeat the same process to end up with a subcode B of C (containing b ) of size ≥ 514 such that all pairs of words in B have odd inner product. Add an extra symbol 1 to every code word in B to obtain a self-orthogonal code D of length 23, so dim D ≤ 11. Note that D = D , as 1b / ∈ D . Furthermore, E := D ∩ D has |E| ≥ 513 and all words start with 1. (To see this, note that b, b / ∈ B ∩ B with even inner product. Every word v ∈ C\((B ∩ B )∪{b, b }) has even inner product with some word in C so there are at most 157 of such words v.) Hence | E | ≥ 2·513, so dim E ≥ 11. But D and D are distinct codes of dimension ≤ 11, so their intersection has dimension < 11, hence dim E = dim D ∩ D ≤ dim( D ∩ D ) < 11, a contradiction.
From a code C with distance distribution (a i ), one constructs a feasible solution to (1) by putting x(S) = 1 for S ∈ C k with S ⊆ C and x(S) = 0 else, and hence by averaging over G there exists a feasible G-invariant solution. This solution has where {x, y} is any pair of constant-weight w words with distance t and G = S 22 , the symmetric group on 22 elements. So we can add linear constraints on the a i as linear constraints on the variables y ω t to our semidefinite program. To the program B 4 (22, 8, 10) we add the constraints a 14 ≥ 2/616 and a 10 + a 14 + a 18 ≥ 208/616. To B 4 (22, 8, 11) we add the constraints a 14 ≥ 2/672 and a 10 + a 14 + a 18 + a 22 ≥ 318/672. Write B * 4 (n, d, w) for the resulting bound after adding these constraints. We find B * 4 (n, d, w) < A(n, d, w) in both cases (which we verified using the dual solution), which is not possible. 5 This establishes (18) and hence completes the verification of (7) and (8).