  The $diagonalization$ $technique$ was invented by Georg Cantor to show that
there are more real numbers than algebraic numbers and is very important in
$theoretical$ $computer$ $science$. In this work, we enumerate all of the
polynomial-time deterministic Turing machines and diagonalize against all of
them by a universal nondeterministic Turing machine. As a result, we obtain
that there is a language $L_d$ not accepted by any polynomial-time
deterministic Turing machines but accepted by a nondeterministic Turing machine
running within time $O(n^k)$ for any $k\in\mathbb{N}_1$. Based on these, we
further show that $L_d\in\mathcal{NP}$ . That is, we present a proof that
$\mathcal{P}$ and $\mathcal{NP}$ differ. Meanwhile, we also show that there
exists a language $L_s$ in $\mathcal{P}$ but the machine accepting it runs
within time $O(n^k)$ for all $k\in\mathbb{N}_1$ and any deterministic $n^k+k$
time-bounded Turing machine for a fixed $k\in\mathbb{N}_1$ can not accept it.
Lastly, we show that if $\mathcal{P}^O=\mathcal{NP}^O$ and on some rational
base assumptions then the set $P^O$ of all polynomial-time deterministic oracle
Turing machines with oracle $O$ is not enumerable, thus demonstrating that
diagonalization technique ($via$ $a$ $universal$ $nondeterministic$ $oracle$
$Turing$ $machine$) will generally $not$ apply to the relativized versions of
the $\mathcal{P}$ versus $\mathcal{NP}$ problem.
