158 BELL SYSTEM TECHNICAL JOURNAL 



11 points on its surface, a total of « + 1 points. Thus the space of 2" points 

 can have at most: 



n + 1 



spheres. This is exactly the bound we found before in section 3. 



While we have shown that the special single error correcting code con- 

 structed in section 3 is of minimum redundancy, we cannot show that all 

 optimal codes are equivalent, since the following trivial example shows that 

 this is not so. For « = 4 we find from Table I that m = \ and ^ = 3. Thus 

 there are at most two code symbols in a four-position code. The following 

 two optimal codes are clearly not equivalent: 



8. Single Error Correcting Plus Double Error Detecting Codes 



In this section we shall prove that the codes constructed in section 4 are 

 of minimum redundancy. We have already shown in section 4 how, for a 

 minimum redundancy code of ;/ — 1 dimensions with a minimum distance 

 of 3, we can construct an n dimensional code having the same number of 

 code symbols but with a minimum distance of 4. If this were not of minimum 

 redundancy there would exist a code having more code symbols but with 

 the same n and the same minimum distance 4 between them. Taking this 

 code we remove the last coordinate. This reduces the dimension from ;/ to 

 n — 1 and the minimum distance between code symbols by, at most, one 

 unit, while leaving the number of code symbols the same. This contradicts 

 the assumption that the code we began our construction with was of mini- 

 mum reduncancy. Thus the codes of section 4 are of minimum redundancy. 



This is a special case of the following general theorem: To any minimum 

 redundancy code of N points in n — 1 dimensions and having a minimum 

 distance of 2^ — 1 there corresponds a minimum redundancy code of A^ 

 points in n dimensions having a minimum distance of 2k, and conversely. 

 To construct the n dimensional code from the n — \ dimensional code we 

 simply add a single w-th coordinate which is fixed by an even parity check 

 over the n positions. This also increases the minimum distance by 1 for 

 the following reason: Any two points which, in the n — \ dimensional code, 

 were at a distance 2^—1 from each other had an odd number of differences 

 between their coordinates. Thus the parity check was set oppositely for the 

 two points, increasing the distance between them to 2k. The additional co- 

 ordinate could not decrease any distances, so that all points in the code are 

 now at a minimum distance of 2k. To go in the reverse direction we simply 



