## Improved Johnson Bound

In [1] the original Johnson bound is improved based on ideas already stated in Theorem 4 and the appendix of [2]. A concise formulation of this bound can also be found in [3].

Assuming that C is a binary (s, N, 2u)-even-weight-code with 0 ∈ C (every (s, N, 2u)- and (s−1, N, 2u−1)-code over 2 is equivalent to such a code due to code truncation and adding a parity check bit), the improved Johnson bound states that

N maxK2i,K2i+1 ≤ 2s−1.

In this formula Kr = for ru and

Kr ≥ max,

for r > u. Furthermore, the integer Cr is the number of vectors in 2s with weight r and distance r from C, which can be bounded from below by

Cr ≥ max0,A2(s, d, 2v).

The integer Dr is the sum of the number of code words in C ∖ { 0} with distance r from each of these vectors, which can be bounded from above by

DrA2(s, d, 2r−2v).

The integer mr is defined as

mr := 1 + ⌊Dr/Cr⌋.

Finally, A2(s, d, w) denotes the maximum number of code words of a constant-weight code.

MinT includes all improved Johnson bounds up to s = 100000.