We are now in a position to proceed with the proof of Theorem 3.6. Part of this proof involves tedious calculations which are needed to establish the tight bound, and we delegate these to the Appendix B. The proof is by induction on the length n of the code. Thus we first transform (3.6) into the form:
As the induction basis, we may consider codes of length n = 2, for which the bound of Theorem 3.6 holds trivially. As the induction hypothesis, we assume that the minimum distance of every cycle-free linear code of length n' < n satisfies the bound of Theorem 3.6.
The induction step is established as follows. Let be an (n, k, d ) cycle-free binary linear code. We may assume that 2kn - 1, since for k = 1 the bound of (3.9) reduces to dn, while if k = n then d = 1 and (3.9) obviously holds with equality.
By Lemma 3.9, there exists an r×n cycle-free parity-check matrix H = A|sB for , which is in reduced canonical form. If s = r then the induction step follows immediately from Lemma 3.10. Otherwise, Lemma 3.8 implies that either () or () is true. Observe that case () of Lemma 3.8 does not occur, since by the definition of a reduced canonical form, the matrix A does not have rows of weight 2. Furthermore, both () and () imply that A contains at least two identical columns of weight one. Let i and j denote the positions at which these two columns are found in A. Further, let wi and wj denote the weight of the corresponding columns of B and we denote w = wi + wj + 2.
It follows from the canonical form structure of H = A|sB that the i-th bit, respectively j-th bit, of is repeated wi times, respectively wj times, in the last n-s positions. Further observe that the sum of the i-th and the j-th columns of H together with the corresponding wi + wj columns of the identity matrix produces the all-zero r-tuple. Hence there is a codeword of weight w = wi + wj + 2 in and dw.
We now shorten at positions i and j to obtain an (n', k', d') code . That is, we consider the subcode of consisting of all the codewords that are zero on positions i and j and define to be the code obtained by puncturing out the wi + wj + 2 zero positions in this subcode. Notice that shortening at positions i and j is equivalent to deleting wi + wj + 2 columns of H and wi + wj rows of H, as illustrated in Figure 3.5. It is easy to see that the parameters of the resulting code satisfy
It follows that is a cycle-free code of length n' < n, and we can invoke the induction hypothesis. We distinguish between two cases.
In this case, the induction hypothesis implies that . Taking into account the relations (3.10) between the parameters of and , we obtain
We again apply the induction hypothesis. Notice that in this case, the upper bound of Theorem 3.6 may be re-written as
where (n' + 1)/(k' + 1) is a positive integer. Suppose that dd' is an even integer. Then, since the right-hand side of (3.12) is an odd integer, we have
where the second inequality in (3.13) follows from (3.10) along with the fact that dw. It is shown in Appendix B that (3.13) implies (3.9).
Now suppose that d is odd. In this case, the bound of (3.12) does not suffice to establish (3.9), and we need to use the additional structure present in statements () and () of Lemma 3.8. Suppose that () is true, and the matrix A contains three identical columns of weight one, at positions ,,. Let w, w, w denote the weight of the corresponding columns of B. Notice that at least one of w + w, w + w, w + w is an even integer. Hence we can choose the two positions i and j in Figure 3.5 from the three positions ,,, in such a way that w = wi + wj + 2 is even. Since dw and d is odd, it follows that dw - 1. In conjunction with (3.12), we thus obtain
It is shown in Appendix B that if d is odd, then (3.14) implies (3.9). Now suppose that () is true, and the matrix H contains a row of weight three, with the three * at positions h, i, j. Then after deleting wi + wj + 2 columns of H and wi + wj rows of H as illustrated in Figure 3.5, we are left with a row of weight one, with the single * at position h. This means that the h-th position in is entirely zero; this position can be punctured-out without decreasing the dimension or the minimum distance. We thus obtain an (n*, k*, d*) code , with n* = n' - 1, k* = k', and d* = d'. Applying the induction hypothesis to , we get
where the second inequality follows from the fact that if n' + 1 0 mod (k' + 1) then n* + 1 0 mod (k* + 1). The right-hand side of (3.15) is the same as relation (3.11), which was already considered in Case1.