An interesting side note: many people greatly inflate the halting problem. My software engineering professor for example, has stated that it is impossible to prove a program will halt by formal verification. The truth is, while it is impossible to write a general solution to the halting problem, there are a great many subcases where it is possible.