  An expurgating linear function (ELF) is a linear outer code that disallows
the low-weight codewords of the inner code. ELFs can be designed either to
maximize the minimum distance or to minimize the codeword error rate (CER) of
the expurgated code. A list-decoding sieve of the inner code starting from the
noiseless all-zeros codeword is an efficient way to identify ELFs that maximize
the minimum distance of the expurgated code. For convolutional inner codes,
this paper provides distance spectrum union (DSU) upper bounds on the CER of
the concatenated code.
  For short codeword lengths, ELFs transform a good inner code into a great
concatenated code. For a constant message size of $K=64$ bits or constant
codeword blocklength of $N=152$ bits, an ELF can reduce the gap at CER
$10^{-6}$ between the DSU and the random-coding union (RCU) bounds from over 1
dB for the inner code alone to 0.23 dB for the concatenated code. The DSU
bounds can also characterize puncturing that mitigates the rate overhead of the
ELF while maintaining the DSU-to-RCU gap.
  The reduction in DSU-to-RCU gap comes with a minimal increase in average
complexity at desired CER operating points. List Viterbi decoding guided by the
ELF approaches maximum likelihood (ML) decoding of the concatenated code, and
average list size converges to 1 as SNR increases. Thus, average complexity is
similar to Viterbi decoding on the trellis of the inner code at high SNR. For
rare large-magnitude noise events, which occur less often than the FER of the
inner code, a deep search in the list finds the ML codeword.
