Let $F$ be a first order logic theory with a set of axioms that are primitively recursive and are supposed to capture arithmetic (in particular, we can define a Gödel number. Let $\mathbb N$ be the standard model for the natural numbers. Tarski proves that it is impossible to find a statement with one free variable $T(x)$ in the language such that for every natural number $n$, $T(n)$ holds if and only if $n$ is the Gödel number of a true statement (in $\mathbb N$).
One possible proof goes through a "diagonal lemma" like so:
(The following is edited in response to the (valid) criticism below.)
Diagonal Lemma: For any statement with one free variable $A(x)$, there exists a term $t$ such that the Gödel number of the sentence $A(t)$ is $n$ and $t$ evaluates to $n$ in the standard model.
Proof: As part of the Gödel numbering, there is a function $sub(x,y)$ that does the following: If $m$ is the Gödel number of a statemnt $\phi(x)$, then $sub(m,n)$ is term that in the standard model corresponds to the Gödel number of the statement $\phi(n)$.
Then, consider the formula $C(x) = A(sub(x,x))$. Let the Gödel number of this be $c$ and consider $B = A(sub(\overline c,\overline c))$ where $\overline c$ is a term that evaluates to $c$. Then, I claim that the Gödel number of $B$ is equal to $sub(c,c)$. Indeed, $sub(\overline c,\overline c)$ is by definition a term corresponding to the the Gödel number of $C(\overline c) = A(sub(\overline c,\overline c)) = B$. This completes the proof.
Question: The above proof is of course extremely simple but also to me, extremely mysterious. Why would anyone want to consider $C(x)$ in the first place?
My first attempt was to treat the Diagonal Lemma as saying that the function $n$ to Gödel number of $A(n)$ has a fixed point in $\mathbb N$. The naive way to proceed might be try some sort of iteration of this function or some modification of this. Can the diagonal lemma be seen as a sophisticated way of making this naive idea work?
Question 2: This is really a bonus question, feel free to ignore everything after this point. I find that I can prove Tarski's theorem directly in the following way:
Let us enumerate in a computable way all the statements with one free variable by $A_n(x)$. Suppose there was a statement $T(x)$ representing truth in the language. Then we can define $B(n) = \neg T(A_n(n))$. That is, $B(n)$ "says" that the statement $A_n(n)$ is false. However, since our enumeration was computable, $B(x)$ is itself a statement and occurs among the $A_n(x)$ at say $n = n_0$. However, then $B(n_0)$ effectively says "This statement is false" and immediately leads to a contradiction.
First: Is the above proof correct? Second: Can this approach be adapted to prove the diagonal lemma itself? Perhaps by enumerating all formulas with two variables or something clever along these lines?