Noisy-channel coding theorem