First, let’s see the pseudocode proof of halting problem:
P(x) = run H(x, x) if H(x, x) answers "yes" loop forever else halt
Then we have a problem:
When param x is the encoding string of P itself, the code line run H(x, x)
will go to an infinite loop.
Because:
How does H know whether x halts on x?
The answer is H must simulate x on x, then it will call P(x) again and again, then go to an infinite recursive calling. So the pseudocode will stuck in this line run H(x, x)
, and never can continue. So I think the pseudocode proof is not correct.
Edit:
H seems like a future teller of P. no matter what H says about P, when P actually act x on x, P does the opposite of what H says, which shows that the future teller of P does not exist.
We know that future teller does not exist. so the H does not exist.