Diagonal lemma

In mathematical logic, the diagonal lemma (also known as diagonalization lemma, self-reference lemma or fixed point theorem) establishes the existence of self-referential sentences in certain formal theories of the natural numbers—specifically those theories that are strong enough to represent all computable functions. The sentences whose existence is secured by the diagonal lemma can then, in turn, be used to prove fundamental limitative results such as Gödel's incompleteness theorems and Tarski's undefinability theorem.

Background
Let $$\mathbb{N}$$ be the set of natural numbers. A first-order theory $$T$$ in the language of arithmetic represents the computable function $$f: \mathbb{N}\rightarrow\mathbb{N}$$ if there exists a "graph" formula $$\mathcal{G}_f(x, y)$$ in the language of $$T$$ — that is, a formula such that for each $$n \in \mathbb{N}$$
 * $$\vdash_{T}\,(\forall y)[(^\circ f(n)=y) \Leftrightarrow \mathcal{G}_f(^\circ n,\,y)]$$.

Here $${}^\circ n$$ is the numeral corresponding to the natural number $$n$$, which is defined to be the $$n$$th successor of presumed first numeral $$0$$ in $$T$$.

The diagonal lemma also requires a systematic way of assigning to every formula $$\mathcal{A}$$ a natural number $$\#(\mathcal{A})$$ (also written as $$\#_{\mathcal{A}}$$) called its Gödel number. Formulas can then be represented within $$T$$ by the numerals corresponding to their Gödel numbers. For example, $$\mathcal{A}$$ is represented by $$^{\circ}\#_{\mathcal{A}}$$

The diagonal lemma applies to theories capable of representing all primitive recursive functions. Such theories include first-order Peano arithmetic and the weaker Robinson arithmetic, and even to a much weaker theory known as R. A common statement of the lemma (as given below) makes the stronger assumption that the theory can represent all computable functions, but all the theories mentioned have that capacity, as well.

Statement of the lemma
$$

Intuitively, $$\mathcal{C}$$ is a self-referential sentence: $$\mathcal{C}$$ says that $$\mathcal{C}$$ has the property $$\mathcal{F}$$. The sentence $$\mathcal{C}$$ can also be viewed as a fixed point of the operation that assigns, to the equivalence class of a given sentence $$\mathcal{A}$$, the equivalence class of the sentence $$\mathcal{F}(^\circ \#_{\mathcal{A}})$$ (a sentence's equivalence class is the set of all sentences to which it is provably equivalent in the theory $$T$$). The sentence $$\mathcal{C}$$ constructed in the proof is not literally the same as $$\mathcal{F}(^\circ \#_{\mathcal{C}})$$, but is provably equivalent to it in the theory $$T$$.

Proof
Let $$f:\mathbb{N}\to\mathbb{N}$$ be the function defined by:
 * $$f(\#_{\mathcal{A}}) = \#[\mathcal{A}(^{\circ}\#_{\mathcal{A}})]$$

for each formula $$\mathcal{A}(x)$$ with only one free variable $$x$$ in theory $$T$$, and $$f(n)=0$$ otherwise. Here $$\#_{\mathcal{A}}=\#(\mathcal{A}(x))$$ denotes the Gödel number of formula $$\mathcal{A}(x)$$. The function $$f$$ is computable (which is ultimately an assumption about the Gödel numbering scheme), so there is a formula $$\mathcal{G}_f(x,\,y)$$ representing $$f$$ in $$T$$. Namely
 * $$\vdash_T\,(\forall y)\{\mathcal{G}_f(^{\circ}\#_{\mathcal{A}},\,y) \Leftrightarrow [y = {}^{\circ}f(\#_{\mathcal{A}})]\}$$

which is to say
 * $$\vdash_T\,(\forall y)\{\mathcal{G}_f(^{\circ}\#_{\mathcal{A}},\,y) \Leftrightarrow [y = {}^{\circ}\#(\mathcal{A}(^{\circ}\#_{\mathcal{A}}))]\}$$

Now, given an arbitrary formula $$\mathcal{F}(y)$$ with one free variable $$y$$, define the formula $$\mathcal{B}(z)$$ as:
 * $$\mathcal{B}(z) := (\forall y) [\mathcal{G}_f(z,\,y)\Rightarrow \mathcal{F}(y)]$$

Then, for all formulas $$\mathcal{A}(x)$$ with one free variable:
 * $$\vdash_T\,\mathcal{B}(^{\circ}\#_{\mathcal{A}}) \Leftrightarrow (\forall y)\{[ y = {}^{\circ}\#(\mathcal{A}(^{\circ}\#_{\mathcal{A}}))] \Rightarrow \mathcal{F}(y)\}$$

which is to say
 * $$\vdash_T\,\mathcal{B}(^{\circ}\#_{\mathcal{A}}) \Leftrightarrow \mathcal{F}(^{\circ}\#[\mathcal{A}(^{\circ}\#_{\mathcal{A}})])$$

Now substitute $$\mathcal{A}$$ with $$\mathcal{B}$$, and define the sentence $$\mathcal{C}$$ as:
 * $$\mathcal{C}:= \mathcal{B}(^{\circ}\#_{\mathcal{B}})$$

Then the previous line can be rewritten as
 * $$\vdash_T\,\mathcal{C}\Leftrightarrow\mathcal{F}(^{\circ}\#_{\mathcal{C}})$$

which is the desired result.

(The same argument in different terms is given in [Raatikainen (2015a)].)

History
The lemma is called "diagonal" because it bears some resemblance to Cantor's diagonal argument. The terms "diagonal lemma" or "fixed point" do not appear in Kurt Gödel's 1931 article or in Alfred Tarski's 1936 article.

Rudolf Carnap (1934) was the first to prove the general self-referential lemma, which says that for any formula F in a theory T satisfying certain conditions, there exists a formula ψ such that ψ ↔ F(°#(ψ)) is provable in T. Carnap's work was phrased in alternate language, as the concept of computable functions was not yet developed in 1934. Mendelson (1997, p. 204) believes that Carnap was the first to state that something like the diagonal lemma was implicit in Gödel's reasoning. Gödel was aware of Carnap's work by 1937.

The diagonal lemma is closely related to Kleene's recursion theorem in computability theory, and their respective proofs are similar.