Although the halting problem is undecidable, it is nevertheless computably enumerable, and we thereby distinguish these two concepts. The halting problem is computably enumerable because we can systematically simulate all possible programs, enumerating the ones that halt. We simulate the first program for one step, the first two programs each for two steps, the first three programs each for three steps, and so on. Whenever we find that a program has halted, we enumerate it onto the tape.

