Halting Problem is Not Algorithmically Decidable

Theorem
Let $$H: \N^2 \to \N$$ be the function given by:
 * $$H \left({m, n}\right) = 1$$ if $$m$$ codes a URM program which halts with input $$n$$;
 * $$H \left({m, n}\right) = 0$$ otherwise.

Then $$H$$ is not recursive.

Proof
We perform a proof by Diagonal Argument.

Suppose the contrary, that $$H$$ is recursive.

Consider the universal URM computable function $$\Phi_1: \N^2 \to \N$$.

Let $$f: \N \to \N$$ be the function given by:
 * $$f \left({n}\right) = \begin{cases}

\Phi_1 \left({n, n}\right) & : H \left({n, n}\right) = 1 \\ 0 & : \text{otherwise} \end{cases}$$

As $$H$$ is recursive, the relation $$H \left({n, n}\right) = 1$$ is also recursive.

The universal function is recursive as all URM computable functions are recursive.

Also, $$\Phi_1 \left({n, n}\right)$$ is defined when $$H \left({n, n}\right) = 1$$.

The constant $0$ is (primitive) recursive and always defined.

So $$f$$ is total, and by Combination of Recursive Functions it is also recursive.

It follows immediately that the function $$g: \N \to \N$$ given by:
 * $$g \left({n}\right) = f \left({n}\right) + 1$$

is also recursive.

So by Universal URM Computable Functions there exists some $$e \in \N$$ such that:
 * $$\forall n: g \left({n}\right) = \Phi_1 \left({e, n}\right)$$

... that is, the URM program coded by $e$ computes $$g$$.

Hence $$g \left({e}\right) = \Phi_1 \left({e, e}\right)$$.

But since $$e$$ codes a URM program which halts with input $$e$$, we have:
 * $$H \left({e, e}\right) = 1$$

and so:
 * $$f \left({e}\right) = \Phi_1 \left({e, e}\right)$$.

Therefore, by definition of $$g$$, we have:
 * $$g \left({e}\right) = \Phi_1 \left({e, e}\right) + 1$$.

This contradiction arose because we assumed that $$H$$ is recursive.

Hence the result.