Understanding the Halting Problem