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.