Thus one may pick a block size
in which to parse information (corresponding to the dimension *k* of
the resulting error-correcting code) and a desired number *t* of
errors which should be corrected, and then specify any one
the following additional constraints:

- the trellis should be locally oriented towards decoding efficiency,
- or the trellis must occupy less than
*m*bits of memory, - or the trellis must allow error-correction using at most
*f*(*k*) operations.

For example, if we were to design a triple-error correcting
code (i.e. *t* = 3) for encoding 8-bit messages,
one version of the above constraints could produce:

- a trellis-oriented code of length 19, which requires 64 trellis states and 715 operations for Viterbi decoding,
- or a code of length 24 whose trellis has been constrained to 16 states and requires 301 operations for Viterbi decoding.

The computations of Algorithm 2.12 are made possible by the theoretical backbone of Theorem 2.5. This theorem relates the cosets of successive codes in a generalized lexicographic construction. We have analyzed the bijective mapping describing the coset relationship and have presented a minor improvement over [9] on the parameter bounds of lexicodes.