 For any program "f" that might determine if programs halt, a "pathological" program "g" called with an input can pass its own source and its input to "f" and then specifically do the opposite of what "f" predicts "g" will do.No "f" can exist that handles this case.A key part of the proof was a mathematical definition of a computer and program, which became known as a Turing machine; the halting problem is "undecidable" over Turing machines.