# Dimostrazione originale del teorema di completezza di Gödel

La dimostrazione del teorema di completezza di Gödel, fornita da Kurt Gödel nella sua tesi di dottorato del 1929 (e una versione più breve, pubblicata come articolo nel 1930, intitolata "La completezza degli assiomi del calcolo funzionale della logica" in tedesco) ad oggi non è facile da leggere: utilizza concetti e formalismi in disuso e terminologie spesso oscure. La versione fornita di seguito tenta di rappresentare fedelmente tutti i passaggi della dimostrazione e tutte le idee importanti, pur riformulandola nel linguaggio odierno della logica matematica. Questa traccia non deve essere considerata una prova rigorosa del teorema.

## Presupposti

Lavoriamo nel calcolo dei predicati del primo ordine. I linguaggi consentono i simboli di costanti, di funzioni e di predicati. Le strutture sono costituite da un dominio (non vuoto) e da una funzione che interpreta i simboli del relativo linguaggio come elementi, funzioni o relazioni su quel dominio.
Utilizziamo la logica classica (invece che la logica intuizionistica, per esempio).
Fissiamo una qualche assiomatizzazione (cioè un sistema di deduzione attuabile da una macchina) del calcolo dei predicati, formato da assiomi logici e regole di inferenza: uno qualunque dei numerosi sistemi equivalenti andrà bene. La dimostrazione originale di Gödel usava il sistema di Hilbert-Ackermann.
Assumiamo, senza dimostrarli, tutti i ben noti risultati di base sul nostro formalismo di cui abbiamo bisogno, come il teorema della forma normale e il teorema di correttezza.
Usiamo il calcolo dei predicati senza uguaglianza (a volte chiamato erroneamente senza identità), cioè non ci sono assiomi speciali che esprimono le proprietà dell'uguaglianza (tra elementi del dominio) come un simbolo di relazione speciale. Dopo aver dimostrato la forma base del teorema, sarà facile estenderla al caso del calcolo dei predicati con uguaglianza.

## Enunciato del teorema e dimostrazione

Di seguito enunciamo due forme del teorema e ne mostriamo l'equivalenza. Successivamente, dimostriamo il teorema. Ciò viene realizzato attraverso i seguenti passaggi:
* Riduciamo il teorema ai soli enunciati (formule senza variabili libere) in forma prenessa, cioè con tutti i quantificatori (∀ e ∃) all'inizio. Inoltre, lo riduciamo a formule il cui primo quantificatore è ∀. Questo è possibile perché, per ogni formula chiusa, ne esiste una equivalente in forma prenessa il cui primo quantificatore è ∀.
* Riduciamo il teorema ai soli enunciati della forma $\forall x_{1}\dots \forall x_{k}\exists y_{1}\dots \exists y_{m}\phi [x_{1},\dots ,x_{k},y_{1},\dots ,y_{m}]$. Sebbene non possiamo farlo semplicemente riordinando i quantificatori, mostriamo che è ancora sufficiente provare il teorema per enunciati di questa forma.
* Infine, dimostriamo il teorema per enunciati della suddetta forma.
** Ciò viene effettuato notando prima che un enunciato come $B=\forall x_{1}\dots \forall x_{k}\exists y_{1}\dots \exists y_{m}\phi [x_{1},\dots ,x_{k},y_{1},\dots ,y_{m}]$ è refutabile (la sua negazione è dimostrabile) oppure soddisfacibile, cioè c'è qualche modello nel quale è vero (potrebbe anche essere sempre vero, cioè una tautologia); questo modello sta semplicemente assegnando valori di verità ai sottoenunciati da cui $B$ è formato. La ragione di ciò è la completezza della logica proposizionale, con i quantificatori esistenziali che non giocano alcun ruolo.
** Estendiamo questo risultato a enunciati sempre più complessi e lunghi $D_{n}\ (n=1,2,\dots )$, costruiti a partire da $B$, in modo che qualcuno di essi è refutabile e quindi lo è anche $\phi$, oppure sono tutti non refutabili e quindi ognuno è vero in qualche modello.
** Usiamo infine i modelli in cui valgono i $D_{n}$ (nel caso siano tutti non refutabili) per costruire un modello in cui vale $\phi$.

### Teorema 1. Ogni enunciato valido (vero in tutte le strutture) è dimostrabile.

Questa è la forma più elementare del teorema di completezza. Lo riformuliamo subito in una forma più comoda per i nostri scopi: quando diciamo "tutte le strutture", è importante specificare che le strutture coinvolte sono interpretazioni classiche (tarskiane) $I=\langle U,F\rangle$, dove $U$ è un insieme di oggetti non vuoto (possibilmente infinito), mentre $F$ è una funzione che mappa simboli di costanti, di funzioni e di predicati rispettivamente in elementi di $U$, funzioni e relazioni su $U$ (al contrario, le cosiddette "logiche libere" accettano anche che il dominio sia vuoto; per saperne di più sulle logiche libere, si veda il lavoro di Karel Lambert).

### Teorema 2. Ogni formula non soddisfacibile è refutabile.

"$\phi$ è refutabile" significa per definizione "$\neg \phi$ è dimostrabile".

### Equivalenza dei due teoremi

Se vale il Teorema 1 e $\phi$ non è soddisfacibile, allora $\neg \phi$ è valida in tutte le strutture e quindi dimostrabile, dunque $\phi$ è refutabile e vale il Teorema 2. Se invece vale il Teorema 2 e $\phi$ vale in tutte le strutture, allora $\neg \phi$ non è soddisfacibile e quindi refutabile; ma allora $\neg \neg \phi$ è dimostrabile e dunque lo è anche $\phi$, quindi vale il Teorema 1.

### Dimostrazione del teorema 2: primo passo

Iniziamo la dimostrazione del Teorema 2 restringendo sequenzialmente la classe di tutte le formule $\phi$ per le quali dobbiamo dimostrare che "$\phi$ è insoddisfacibile solo se è refutabile".
All'inizio dobbiamo dimostrarlo per tutte le possibili formule del linguaggio preso in esame. Tuttavia, supponiamo che per ogni formula $\phi$ esista qualche formula $\psi _{\phi }$, presa da una classe più ristretta di formule $\mathrm {C}$, tale per cui "$\psi _{\phi }$ è insoddisfacibile solo se è refutabile"$\implies$"$\phi$ è insoddisfacibile solo se è refutabile".
Allora, una volta provata questa affermazione (espressa nella frase precedente), basterà dimostrare che "$\phi$ è insoddisfacibile solo se è refutabile" solo per le $\phi$ che stanno nella classe $\mathrm {C}$. Se $\phi$ e $\psi _{\phi }$ sono sintatticamente equivalenti, ovvero $\phi \equiv \psi _{\phi }$ (cioè, se la formula $\phi \leftrightarrow \psi _{\phi }$ è dimostrabile), allora è vero che "$\psi _{\phi }$ è insoddisfacibile solo se è refutabile"$\implies$"$\phi$ è insoddisfacibile solo se è refutabile" (il teorema di correttezza è necessario per provare ciò).
Esistono tecniche standard per riscrivere una formula arbitraria in un'altra che non utilizzi funzioni e simboli costanti, a costo di introdurre quantificatori aggiuntivi; assumeremo quindi che tutte le formule siano prive di tali simboli. L'articolo di Gödel utilizzava dal principio una versione del calcolo dei predicati che non ha funzioni e costanti.
Ora, consideriamo una formula generica $\phi$ (che non contiene funzioni o costanti) e applichiamo il teorema della forma prenessa per trovare una formula $\psi _{\phi }$ in forma normale tale che $\phi \equiv \psi _{\phi }$ (forma normale significa che tutti i quantificatori in $\psi _{\phi }$, se ce ne sono, si trovano proprio all'inizio di $\psi _{\phi }$). Ne consegue che ora dobbiamo dimostrare il Teorema 2 solo per le formule $\phi$ in forma normale.
Adesso, eliminiamo tutte le variabili libere da $\phi$ quantificandole esistenzialmente: se poniamo che $x_{1},\dots ,x_{n}$ sono libere in $\phi$, formiamo $\psi _{\phi }=\exists x_{1}\dots \exists x_{n}\phi$. Se $\psi _{\phi }$ è vera in qualche struttura $M$, allora esiste un'assegnazione su $M$ alle variabili $x_{1},\dots ,x_{n}$ che verifica $\phi$ in $M$, quindi $\phi$ è soddisfacibile; se invece $\psi _{\phi }$ è insoddisfacibile, allora $\neg \psi _{\phi }\equiv \forall x_{1}\dots \forall x_{n}\neg \phi$ è sempre vera e quindi, in ogni struttura $M$, ogni assegnazione su $M$ alle variabili $x_{1},\dots ,x_{n}$ verifica $\neg \phi$, quindi $\phi$ è insoddisfacibile. Possiamo allora restringerci alle sole formule $\phi$ che sono enunciati, cioè formule senza variabili libere.
Infine vorremmo, per ragioni di convenienza tecnica, che il prefisso di $\phi$ (ovvero la stringa di quantificatori all'inizio di $\phi$, che è in forma normale) inizi con un quantificatore universale e finisca con un quantificatore esistenziale. Per ottenere ciò per una generica $\phi$ (soggetta alle restrizioni che abbiamo già dimostrato), prendiamo due variabili $y$ e $z$ che non occorrono in $\phi$. Se $\phi =(P)\Phi$, dove $(P)$ sta per il prefisso di $\phi$ e $\Phi$ per la matrice (la restante parte di $\phi$ priva di quantificatori), formiamo $\psi _{\phi }=\forall y(P)\exists z\Phi$, che ovviamente è equivalente a $\phi$, dato che $y$ e $z$ non compaiono in $\Phi$.

### Ridurre il teorema a formule di grado 1

La nostra formula generica $\phi$ ora è un enunciato, in forma normale, e il suo prefisso inizia con un quantificatore universale e termina con un quantificatore esistenziale. Chiamiamo la classe di tutte queste formule $\mathrm {R}$. Dobbiamo dimostrare che ogni formula in $\mathrm {R}$ è insoddisfacibile solo se è refutabile. Data la nostra formula $\phi$, raggruppiamo stringhe di quantificatori dello stesso tipo in blocchi:
    $\phi =(\forall x_{1}\dots \forall x_{k_{1}})(\exists x_{k_{1}+1}\dots \exists x_{k_{2}})\dots (\forall x_{k_{n-2}+1}\dots \forall x_{k_{n-1}})(\exists x_{k_{n-1}+1}\dots \exists x_{k_{n}})\Phi$
Definiamo il grado di $\phi$ come il numero di blocchi di quantificatori universali separati da blocchi di quantificatori esistenziali nel prefisso di $\phi$, come mostrato sopra. Il seguente lemma, che Gödel ha adattato dalla dimostrazione di Skolem del teorema di Löwenheim-Skolem, ci permette di ridurre nettamente la complessità delle formule $\phi$ per cui dobbiamo dimostrare il teorema:
Lemma. Sia $k\geq 1$. Se ogni formula in $\mathrm {R}$ di grado $k$ è soddisfacibile o refutabile, allora lo è anche ogni formula in $\mathrm {R}$ di grado $k+1$.
    Commento: Si prenda una formula $\phi$ di grado $k+1$ della forma $\phi =\forall x\exists y\forall u\exists v(P)\psi$, dove $(P)\psi$ è il resto di $\phi$ (quindi è di grado $k-1$). $\phi$ afferma che per ogni $x$ esiste $y$ tale che... (qualcosa). Sarebbe stato bello avere un predicato $Q$ in modo che per ogni $x$, $Q(x,y)$ fosse vero se e solo se il valore di $y$ è quello richiesto per rendere (qualcosa) vero. Allora avremmo potuto scrivere una formula di grado $k$, equivalente a $\phi$, vale a dire $\forall x'\forall x\forall y\forall u\exists v\exists y'(P)Q(x',y')\land (Q(x,y)\rightarrow \psi )$ . Questa formula è infatti equivalente a $\phi$, perché afferma che per ogni $x$, se c'è un $y$ che soddisfa $Q(x,y)$, allora (qualcosa) vale, e inoltre sappiamo che c'è tale $y$, perché per ogni $x'$ c'è un $y'$ che soddisfa $Q(x',y')$. Quindi $\phi$ segue da questa formula. È facile anche dimostrare che se la formula è falsa, lo è anche $\phi$. Sfortunatamente, in generale non esiste un tale predicato. Tuttavia, questa idea può essere intesa come base per la seguente dimostrazione del lemma.
Dimostrazione. Sia $\phi$ una formula di grado $k+1$. Allora, possiamo scriverla come:
    $\phi =(\forall x)(\exists y)(\forall u)(\exists v)(P)\psi$
dove $(P)$ è il resto del prefisso di $\phi$ (quindi è di grado $k-1$) e $\psi$ è la matrice priva di quantificatori di $\phi$. $x,y,u,v$ denotano qui ennuple di variabili invece che singole variabili; per esempio, $(\forall x)$ in realtà sta per $\forall x_{1}\forall x_{2}\dots \forall x_{n}$, dove $(x_{1},\dots ,x_{n})$ sono variabili distinte.
Siano ora $x'$e $y'$ennuple di variabili precedentemente inutilizzate, rispettivamente della stessa lunghezza di $x$ e $y$, e sia $Q$ un simbolo di relazione precedentemente inutilizzato, che accetta un numero di argomenti pari alla somma delle lunghezze di $x$ e $y$; consideriamo la formula
    $\Phi =(\forall x')(\exists y')Q(x',y')\wedge (\forall x)(\forall y)(Q(x,y)\rightarrow (\forall u)(\exists v)(P)\psi )$
Chiaramente, $\Phi \implies \phi$.
Ora, poiché la stringa di quantificatori $(\forall u)(\exists v)(P)$ non contiene variabili di $x$ e $y$, la seguente equivalenza è facilmente dimostrabile con l'aiuto del formalismo che stiamo usando:
    $(Q(x,y)\rightarrow (\forall u)(\exists v)(P)\psi )\equiv (\forall u)(\exists v)(P)(Q(x,y)\rightarrow \psi )$
E poiché queste due formule sono equivalenti, se sostituiamo la prima con la seconda dentro $\Phi$, otteniamo la formula $\Phi '$ tale che $\Phi \equiv \Phi '$:
    $\Phi '=(\forall x')(\exists y')Q(x',y')\wedge (\forall x)(\forall y)(\forall u)(\exists v)(P)(Q(x,y)\rightarrow \psi )$
Ora $\Phi '$ ha la forma $(S)\rho \wedge (S')\rho '$, dove $(S)$ e $(S')$ sono stringhe di quantificatori, $\rho$ e $\rho '$ sono prive di quantificatori e, inoltre, nessuna variabile di $(S)$ occorre in $\rho '$ e nessuna variabile di $(S')$ occorre in $\rho$. In tali condizioni, ogni formula della forma $(T)(\rho \wedge \rho ')$, dove $(T)$ è una stringa di quantificatori contenente tutti i quelli in $(S)$ e $(S')$ inseriti in qualsiasi ordine, ma mantenendo l'ordine relativo all'interno di $(S)$ e $(S')$, sarà equivalente alla formula originale $\Phi '$ (questo è un altro risultato fondamentale del calcolo dei predicati su cui ci basiamo). Dunque, formiamo $\Psi$ come segue:
    $\Psi =(\forall x')(\forall x)(\forall y)(\forall u)(\exists y')(\exists v)(P)Q(x',y')\wedge (Q(x,y)\rightarrow \psi )$
e abbiamo $\Phi '\equiv \Psi$.
Ora $\Psi$ è una formula di grado $k$ e quindi, per ipotesi induttiva, soddisfacibile o refutabile. Se $\Psi$ è soddisfacibile, allora, considerando $\Psi \equiv \Phi '\equiv \Phi$ e $\Phi \implies \phi$, vediamo che anche $\phi$ è soddisfacibile. Se $\Psi$ è refutabile, allora lo è anche $\Phi$, che è equivalente ad esso; dunque $\neg \Phi$ è dimostrabile. Ora possiamo sostituire tutte le occorrenze di $Q$ all'interno della formula dimostrabile $\neg \Phi$ da qualche altra formula dipendente dalle stesse variabili, e otterremo comunque una formula dimostrabile. (Questo è ancora un altro risultato fondamentale del calcolo dei predicati. A seconda del particolare formalismo adottato per il calcolo, esso può essere visto come una semplice applicazione della regola di inferenza di "sostituzione funzionale", come nell'articolo di Gödel, oppure può essere dimostrato considerando la dimostrazione formale di $\neg \Phi$, sostituendo in essa tutte le occorrenze di $Q$ con qualche altra formula con le stesse variabili libere, e notando che tutti gli assiomi logici nella dimostrazione formale rimangono tali dopo la sostituzione, e tutte le regole di inferenza si applicano ancora allo stesso modo.)
In questo caso particolare, sostituiamo $Q(x',y')$ in $\neg \Phi$ con la formula $(\forall u)(\exists v)(P)\psi [x,y/x',y']$. Qui $[x,y/x',y']$ significa che invece di $\psi$ stiamo scrivendo una formula diversa, in cui $x$ e $y$ sono sostituiti con $x'$ e $y'$. $Q(x,y)$ è semplicemente sostituito da $(\forall u)(\exists v)(P)\psi$.
$\neg \Phi$ diventa
    $\neg ((\forall x')(\exists y')(\forall u)(\exists v)(P)\psi [x,y/x',y']\wedge (\forall x)(\forall y)((\forall u)(\exists v)(P)\psi \rightarrow (\forall u)(\exists v)(P)\psi ))$
e questa formula è dimostrabile; poiché la parte dopo il segno $\wedge$ è ovviamente dimostrabile, e la parte sotto negazione e prima del segno $\wedge$ è ovviamente $\phi$, ma con $x$ e $y$ sono sostituiti da $x'$ e $y'$, segue che $\neg \phi$ è dimostrabile e $\phi$ è refutabile. Abbiamo dimostrato che $\phi$ è soddisfacibile o refutabile, e questo conclude la dimostrazione del Lemma.
Si noti che non possiamo utilizzare $(\forall u)(\exists v)(P)\psi [x,y/x',y']$ invece di $Q(x',y')$ dall'inizio, perché in quel caso $\Psi$ non sarebbe stata una formula in $\mathrm {R}$, e quindi non avremmo potuto usare l'induzione. Ecco perché non possiamo usare ingenuamente l'argomento che compare al commento che precede la dimostrazione.

### Dimostrazione del teorema per enunciati di grado 1

Come mostrato nel precedente Lemma, dobbiamo dimostrare il teorema solo per le formule $\phi$ in $\mathrm {R}$ di grado 1. $\phi$ non può essere di grado 0, poiché le formule in $\mathrm {R}$ non hanno variabili libere e non usano costanti. Quindi la formula $\phi$ ha la forma generale:
    $(\forall x_{1}\dots \forall x_{k})(\exists y_{1}\dots \exists y_{m})\phi [x_{1},\dots ,x_{k},y_{1},\dots ,y_{m}]$
Ora, definiamo un ordinamento delle k-uple di numeri naturali come segue: $(x_{1},\dots ,x_{k})<(y_{1},\dots ,y_{k})$ se e solo se vale almeno una delle seguenti:
* $\sum _{i=1}^{k}x_{i}<\sum _{i=1}^{k}y_{i}$;
* $\sum _{i=1}^{k}x_{i}=\sum _{i=1}^{k}y_{i}$ e $(x_{1},\dots ,x_{k})$ precede $(y_{1},\dots ,y_{k})$ in ordine lessicografico.
Denotiamo l'ennesima k-upla nell'ordine appena definito con $(a_{1}^{n},\dots ,a_{k}^{n})$.
Poniamo:
* $B_{n}:=\phi [z_{a_{1}^{n}},\dots ,z_{a_{k}^{n}},z_{(n-1)m+2},z_{(n-1)m+3},\dots ,z_{nm+1}]$;
* $D_{n}:=\exists z_{1}\dots \exists z_{nm+1}(B_{1}\land \dots \land B_{n})$.
Lemma: Per ogni intero $n\geq 1$, $\phi \implies D_{n}$.
Dimostrazione: Per induzione su $n$.
Abbiamo:
    ${\begin{aligned}D_{n}&\Longleftarrow D_{n-1}\wedge (\forall z_{1}\dots \forall z_{(n-1)m+1})(\exists z_{(n-1)m+2}\dots \exists z_{nm+1})B_{n}\\&\Longleftarrow D_{n-1}\wedge (\forall z_{a_{1}^{n}}\dots \forall z_{a_{k}^{n}})(\exists y_{1}\dots \exists y_{m})\phi [z_{a_{1}^{n}},\dots ,z_{a_{k}^{n}},y_{1},\dots ,y_{m}]\end{aligned}}$
dove quest'ultima implicazione vale per sostituzione di variabili, poiché l'ordinamento delle k-uple è tale che, per ogni $k\geq 1$ e per ogni $i\in \{1,\dots ,k\}$, vale ${a_{i}^{n}}\leq n<(n-1)m+2$. Ma l'ultima formula è equivalente a $D_{n-1}\land \phi$.
Per il caso base, $D_{1}=\exists z_{1}\dots \exists z_{m+1}\phi [z_{a_{1}^{1}},\dots ,z_{a_{k}^{1}},z_{2},z_{3},\dots ,z_{m+1}]\equiv \exists z_{1}\dots \exists z_{m+1}\phi [z_{1},\dots ,z_{1},z_{2},z_{3},\dots ,z_{m+1}]$ è ovviamente un corollario di $\phi$. Quindi il Lemma è dimostrato.
Ora, se $D_{n}$ è refutabile per qualche $n\geq 1$, segue che $\phi$ è refutabile. D'altra parte, supponiamo che, per ogni $n\geq 1$, $D_{n}$ sia non refutabile. Allora, per ogni $n\geq 1$, la formula $D'_{n}:=B_{1}\land \dots \land B_{n}$ non è refutabile. Questa proprietà dev'essere una conseguenza diretta delle regole di deduzione, altrimenti il sistema non potrebbe garantire la propria completezza.
Dunque, per ogni $n\geq 1$, esiste un'assegnazione di verità alle distinte sottoformule $E_{h}$ (ordinate secondo la loro prima occorrenza in $D_{n}'$; "distinto" qui è inteso in senso sintattico, ovvero sia predicati distinti, sia variabili distinte) nelle $B_{i}$, che rende vera $D_{n}'$. Ciò deriva dalla completezza della logica proposizionale sottostante.
Ora, mostreremo che esiste un'assegnazione di verità alle $E_{h}$ che rende vere tutte le $D_{n}'$: le $E_{h}$ appaiono nello stesso ordine in ogni $D_{n}'$; definiremo induttivamente un'assegnazione generale mediante una sorta di "voto di maggioranza": poiché vi sono infinite assegnazioni per $E_{1}$ (una per ogni $D_{n}'$), allora o infinite assegnazioni rendono $E_{1}$ vera, o solo un numero finito di assegnazioni la rende vera e infinite la rendono falsa. Nel primo caso, $E_{1}$ sarà vera nell'assegnazione generale, altrimenti sarà falsa. Nell'induzione, rendiamo $E_{h}$ vera se ci sono infinite assegnazioni che rendono $E_{h}$ vera, ma solo tra le infinite assegnazioni per le $D_{n}'$ che coincidono con l'assegnazione generale da $E_{1}$ a $E_{h-1}$.
Questa assegnazione generale deve rendere vere ciascuna delle $B_{i}$ e $D_{n}'$, poiché se l'assegnazione falsificasse una delle $B_{i}$, anche le $D'_{j}$ sarebbero false per ogni $j>n$. Ma questo contraddice il fatto che, per costruzione dell'assegnazione generale fino alle $E_{h}$ che compaiono in $D_{n}'$, ci sono infiniti $j$ tali per cui l'assegnazione che avvera $D'_{j}$ coincide con l'assegnazione generale.
Da questa assegnazione, che rende tutte le $D_{n}'$ vere, costruiamo un'interpretazione dei predicati del linguaggio che rende vera $\phi$. Il dominio del modello saranno i numeri naturali. Ogni predicato $p$-ario $\Psi$ è vero su $(u_{1},\dots ,u_{p})$ precisamente quando la formula atomica $\Psi (z_{u_{1}},\dots ,z_{u_{p}})$ è vera nell'assegnazione generale, oppure non ha valore di verità (se non compare mai in nessuno dei $D_{n}'$).
In questo modello, ciascuna delle formule $\exists y_{1}\dots \exists y_{m}\phi [x_{1},\dots ,x_{k},y_{1},\dots ,y_{m}]$ è vera per costruzione su ogni assegnazione $\eta$ tale per cui $\eta (x_{1})=a_{1}^{n},\dots ,\eta (x_{k})=a_{k}^{n}$. Ma questo implica che $\phi$ stessa è vera nel modello, poiché $(a_{1}^{n},\dots ,a_{k}^{n})$ può essere qualunque k-upla di numeri naturali. Quindi $\phi$ è soddisfacibile, e abbiamo finito.

#### Spiegazione intuitiva

Possiamo scrivere ogni $B_{i}$ come $\phi [x_{1},\dots ,x_{k},y_{1},\dots ,y_{m}]$ per qualche $x_{1},\dots ,x_{k}$, che possiamo chiamare "primi argomenti", e $y_{1},\dots ,y_{m}$, che possiamo chiamare "ultimi argomenti".
Prendiamo $B_{1}$, per esempio. I suoi "ultimi argomenti" sono $z_{2},z_{3},\dots ,z_{m+1}$, e per ogni possibile combinazione di $k$ di queste variabili c'è un qualche $j$ tale per cui esse appaiono come "primi argomenti" in $B_{j}$. Quindi per $n_{1}$ sufficientemente grande, $D_{n_{1}}'$ ha la proprietà che gli "ultimi argomenti" di $B_{1}$ appaiono, in ogni possibile combinazione di $k$ di essi, come "primi argomenti" in altri $B_{j}$ all'interno di $D_{n_{1}}'$. Per ogni $B_{i}$ c'è un $D_{n_{i}}'$ con la proprietà corrispondente.
Quindi, in un modello che soddisfa tutti i $D_{n}'$, ci sono oggetti corrispondenti a $z_{1},z_{2},\dots$ e ogni combinazione di $k$ di questi appare come "primo argomento" in qualche $B_{j}$, nel senso che per ogni $k$ di questi oggetti $z_{p_{1}},\dots ,z_{p_{k}}$ ci sono $z_{q_{1}},\dots ,z_{q_{m}}$ che rendono $\phi [z_{p_{1}},\dots ,z_{p_{k}},z_{q_{1}},\dots ,z_{q_{m}}]$ vera. Prendendo un sottomodello con solo questi $z_{1},z_{2},\dots$ oggetti, abbiamo un modello che soddisfa $\phi$.

## Estensioni
### Estensione al calcolo dei predicati del primo ordine con uguaglianza

Gödel ha ridotto ogni formula in cui occorre il predicato di uguaglianza ad una che definisce l'uguaglianza su di essa. Il suo metodo prevede la sostituzione di una formula $\phi$ contenente uguaglianze con la formula
    $\forall x(x=x)\wedge \forall x\forall y\forall z[x=y\rightarrow (x=z\rightarrow y=z)]$ $\wedge \forall x\forall y\forall z[x=y\rightarrow (z=x\rightarrow z=y)]$
    $\wedge$
    $\forall x_{1}\dots \forall x_{k}\forall y_{1}\dots \forall x_{k}[(x_{1}=y_{1}\wedge \dots \wedge x_{k}=y_{k})\rightarrow (P_{1}(x_{1},\dots ,x_{k})\leftrightarrow P_{1}(y_{1},\dots ,y_{k}))]$
    $\wedge ...\wedge$
    $\forall x_{1}\dots \forall x_{m}\forall y_{1}\dots \forall x_{m}[(x_{1}=y_{1}\wedge \dots \wedge x_{m}=y_{m})\rightarrow (P_{n}(x_{1},\dots ,x_{m})\leftrightarrow P_{n}(y_{1},\dots ,y_{m}))]$
    $\wedge \phi$
Qui $P_{1},\dots ,P_{n}$ denotano i predicati che compaiono in $\phi$ (con $k,\dots ,m$ le loro rispettive arità). Se questa nuova formula è refutabile, lo è anche l'originale $\phi$; lo stesso vale per la soddisfacibilità, poiché possiamo prendere l'insieme quoziente del dominio del modello che soddisfa la nuova formula, usando la relazione di equivalenza che rappresenta l'uguaglianza. Questo quoziente è ben definito rispetto agli altri predicati, e quindi soddisferà la formula originaria $\phi$.

### Estensione a insiemi numerabili di formule

Gödel ha anche considerato il caso di insiemi numerabili di formule. Usando le stesse riduzioni di cui sopra, ha potuto considerare solo quei casi in cui ogni formula è di grado 1 e non contiene simboli di uguaglianza. Per un insieme numerabile di formule $\phi ^{i}$ di grado 1, possiamo definire $B_{k}^{i}$ come sopra; quindi definire $D_{k}$ come l'unione di $B_{1}^{1},\dots ,B_{k}^{1},\dots ,B_{1}^{k},\dots ,B_{k}^{k}$ . Il resto della prova prosegue come prima.

### Estensione a insiemi arbitrari di formule

Nel caso di insiemi non numerabili di formule, è necessario l'assioma della scelta (o almeno una sua forma debole). Usando l'AC completo, si possono ben ordinare le formule e dimostrare il caso non numerabile con lo stesso argomento di quello numerabile, ma con l'induzione transfinita. Altri approcci possono essere usati per dimostrare che il teorema di completezza in questo caso è equivalente al teorema dell'ideale booleano primo, una forma debole di AC.