I. Introduction
The proof of the channel coding theorem involves three stages:
Converse: an upper bound on the size of any code with given arbitrary blocklength and error probability.
Achievability: a lower bound on the size of a code that can be guaranteed to exist with given arbitrary blocklength and error probability.
Asymptotics: the bounds on the log size of the code normalized by blocklength asymptotically coincide as a result of the law of large numbers (memoryless channels) or another ergodic theorem (for channels with memory).