I have read the Proof sketch for Gödel's first incompleteness theorem on Wikipedia and do some contemplation about it. Then I was wondering about the self-referential step of the proof.
The proof begins with the assumption that every symbol/statement in the arithmetic language can be encoded into a unique natural number (Gödel's number). Then assume that between any two natural number, x and y, there are relations R called provability; that is, if x is the code of some statements, then y is the code of the concatenation between statements encoded in x and a statement proved by them, denoting as x R y.
Let G(F(z)) be the Gödel's number of any formula F(z), then define an additional relation between two number, q(n, G(F(z))), that corresponds to the statement "n is not the Gödel number of a proof of F(G(F(z)))". And then define new function, P(x) = ∀y q(y, x).
In the self-referential step, We can plug the Gödel's number of any formula into P(x), say P(G(F(x))), and then we obtain the form P(G(F(x))) = ∀y q(y, G(F(x))) ("there is no proof of F(G(F(x)))"). Then, because P(x) is a formula, plug it into itself, P(G(P(x))) = ∀y q(y, G(P(x))) ("there is no proof of P(G(P(x)))"). It says that there is no proof for itself!
I was wondering that is it necessary to do something like that in the self-referential step?. Why not doing something simpler like: define q(y, x) as "y is not a Gödel's number of proof of a statement coded by x" and then take P(x) = ∀y q(y, G(P(x))) and show that it contradicts itself? Does it violate some principle about logic or arithmetic?