The proof of Gödel's completeness theorem given by Kurt Gödel in his doctoral dissertation of 1929 (and a shorter version of the proof, published as an article in 1930, titled "The completeness of the axioms of the functional calculus of logic" (in German)) is not easy to read today; it uses concepts and formalisms that are no longer used and terminology that is often obscure. The version given below attempts to represent all the steps in the proof and all the important ideas faithfully, while restating the proof in the modern language of mathematical logic. This outline should not be considered a rigorous proof of the theorem.
We work with first-order predicate calculus. Our languages allow constant, function and relation symbols. Structures consist of (non-empty) domains and interpretations of the relevant symbols as constant members, functions or relations over that domain.
We assume classical logic (as opposed to intuitionistic logic for example).
We fix some axiomatization (i.e. a syntax-based, machine-manageable proof system) of the predicate calculus: logical axioms and rules of inference. Any of the several well-known equivalent axiomatizations will do. Gödel's original proof assumed the Hilbert-Ackermann proof system.
We assume without proof all the basic well-known results about our formalism that we need, such as the normal form theorem or the soundness theorem.
We axiomatize predicate calculus without equality (sometimes confusingly called without identity), i.e. there are no special axioms expressing the properties of (object) equality as a special relation symbol. After the basic form of the theorem has been proved, it will be easy to extend it to the case of predicate calculus with equality.
In the following, we state two equivalent forms of the theorem, and show their equivalence.
Later, we prove the theorem. This is done in the following steps:
This is the most basic form of the completeness theorem. We immediately restate it in a form more convenient for our purposes:When we say "all structures", it is important to specify that the structures involved are classical (Tarskian) interpretations I, where I = (U is a non-empty (possibly infinite) set of objects, whereas F is a set of functions from expressions of the interpreted symbolism into U). [By contrast, so-called "free logics" allow possibly empty sets for U. For more regarding free logics, see the work of Karel Lambert.]
"φ is refutable" means by definition "¬φ is provable".
If Theorem 1 holds, and φ is not satisfiable in any structure, then ¬φ is valid in all structures and therefore provable, thus φ is refutable and Theorem 2 holds. If on the other hand Theorem 2 holds and φ is valid in all structures, then ¬φ is not satisfiable in any structure and therefore refutable; then ¬¬φ is provable and then so is φ, thus Theorem 1 holds.
We approach the proof of Theorem 2 by successively restricting the class of all formulas φ for which we need to prove "φ is either refutable or satisfiable". At the beginning we need to prove this for all possible formulas φ in our language. However, suppose that for every formula φ there is some formula ψ taken from a more restricted class of formulas C, such that "ψ is either refutable or satisfiable" → "φ is either refutable or satisfiable". Then, once this claim (expressed in the previous sentence) is proved, it will suffice to prove "φ is either refutable or satisfiable" only for φ's belonging to the class C. If φ is provably equivalent to ψ (i.e., (φ ≡ ψ) is provable), then it is indeed the case that "ψ is either refutable or satisfiable" → "φ is either refutable or satisfiable" (the soundness theorem is needed to show this).
There are standard techniques for rewriting an arbitrary formula into one that does not use function or constant symbols, at the cost of introducing additional quantifiers; we will therefore assume that all formulas are free of such symbols. Gödel's paper uses a version of first-order predicate calculus that has no function or constant symbols to begin with.
Next we consider a generic formula φ (which no longer uses function or constant symbols) and apply the prenex form theorem to find a formula ψ in normal form such that φ ≡ ψ (ψ being in normal form means that all the quantifiers in ψ, if there are any, are found at the very beginning of ψ). It follows now that we need only prove Theorem 2 for formulas φ in normal form.
Next, we eliminate all free variables from φ by quantifying them existentially: if, say, x1...xn are free in φ, we form
\psi=\existsx1 … \existsxn\varphi
\neg\psi=\forallx1 … \forallxn\neg\varphi
Finally, we would like, for reasons of technical convenience, that the prefix of φ (that is, the string of quantifiers at the beginning of φ, which is in normal form) begin with a universal quantifier and end with an existential quantifier. To achieve this for a generic φ (subject to restrictions we have already proved), we take some one-place relation symbol F unused in φ, and two new variables y and z.. If φ = (P)Φ, where (P) stands for the prefix of φ and Φ for the matrix (the remaining, quantifier-free part of φ) we form
\psi=\forally(P)\existsz(\Phi\wedge[F(y)\vee\negF(z)])
\forally\existsz(F(y)\vee\negF(z))
\varphi=\psi
Our generic formula φ now is a sentence, in normal form, and its prefix starts with a universal quantifier and ends with an existential quantifier. Let us call the class of all such formulas R. We are faced with proving that every formula in R is either refutable or satisfiable. Given our formula φ, we group strings of quantifiers of one kind together in blocks:
\varphi=(\forallx1 … \forall
x | |
k1 |
)(\exists
x | |
k1+1 |
… \exists
x | |
k2 |
) … (\forall
x | |
kn-2+1 |
… \forall
x | |
kn-1 |
)(\exists
x | |
kn-1+1 |
… \exists
x | |
kn |
)(\Phi)
We define the degree of
\varphi
\varphi
\varphi
Lemma. Let k ≥ 1. If every formula in R of degree k is either refutable or satisfiable, then so is every formula in R of degree k + 1.
Comment: Take a formula φ of degree k + 1 of the form
\varphi=(\forallx)(\existsy)(\forallu)(\existv)(P)\psi
(P)\psi
\varphi
(\forallx')(\forallx)(\forally)(\forallu)(\existv)(\existy')(P)Q'(x',y')\wedge(Q'(x,y) → \psi)
Proof. Let φ be a formula of degree k + 1; then we can write it as
\varphi=(\forallx)(\existsy)(\forallu)(\existv)(P)\psi
where (P) is the remainder of the prefix of
\varphi
\psi
\varphi
(\forallx)
\forallx1\forallx2 … \forallxn
x1\ldotsxn
Let now x' and y' be tuples of previously unused variables of the same length as x and y respectively, and let Q be a previously unused relation symbol that takes as many arguments as the sum of lengths of x and y; we consider the formula
\Phi=(\forallx')(\existsy')Q(x',y')\wedge(\forallx)(\forally)(Q(x,y) → (\forallu)(\existv)(P)\psi)
Clearly,
\Phi → \varphi
Now since the string of quantifiers
(\forallu)(\existsv)(P)
(Q(x,y) → (\forallu)(\existsv)(P)\psi)\equiv(\forallu)(\existsv)(P)(Q(x,y) → \psi)
And since these two formulas are equivalent, if we replace the first with the second inside Φ, we obtain the formula Φ' such that Φ≡Φ':
\Phi'=(\forallx')(\existy')Q(x',y')\wedge(\forallx)(\forally)(\forallu)(\existsv)(P)(Q(x,y) → \psi)
Now Φ' has the form
(S)\rho\wedge(S')\rho'
(T)(\rho\wedge\rho')
\Psi=(\forallx')(\forallx)(\forally)(\forallu)(\existsy')(\existsv)(P)Q(x',y')\wedge(Q(x,y) → \psi)
and we have
\Phi'\equiv\Psi
Now
\Psi
\Psi
\Psi\equiv\Phi'\equiv\Phi\wedge\Phi → \varphi
\varphi
\Psi
\Phi
\neg\Phi
\neg\Phi
\neg\Phi
In this particular case, we replace Q(x',y') in
\neg\Phi
(\forallu)(\existsv)(P)\psi(x,y\midx',y')
(\forallu)(\existsv)(P)\psi
\neg\Phi
\neg((\forallx')(\existsy')(\forallu)(\existsv)(P)\psi(x,y\midx',y')\wedge(\forallx)(\forally)((\forallu)(\existsv)(P)\psi → (\forallu)(\existsv)(P)\psi))
and this formula is provable; since the part under negation and after the
\wedge
\wedge
\neg\varphi
Notice that we could not have used
(\forallu)(\existsv)(P)\psi(x,y\midx',y')
\Psi
As shown by the Lemma above, we only need to prove our theorem for formulas φ in R of degree 1. φ cannot be of degree 0, since formulas in R have no free variables and don't use constant symbols. So the formula φ has the general form:
(\forallx1\ldotsxk)(\existsy1\ldotsym)\varphi(x1\ldotsxk,y1\ldotsym).
Now we define an ordering of the k-tuples of natural numbers as follows:
(x1\ldotsxk)<(y1\ldotsyk)
\Sigmak(x1\ldotsxk)<\Sigmak(y1\ldotsyk)
\Sigmak(x1\ldotsxk)=\Sigmak(y1\ldotsyk)
(x1\ldotsxk)
(y1...yk)
n | |
(a | |
1\ldots |
n | |
a | |
k) |
Set the formula
Bn
\varphi(z | |||||||
|
\ldots
z | |||||||
|
,z(n-1)m+2,z(n-1)m+3\ldotsznm+1)
Dn
(\existsz1\ldotsznm+1)(B1\wedgeB2\wedge … \wedgeBn).
Lemma: For every n,
\varphi → Dn
Proof: By induction on n; we have
Dn\LeftarrowDn-1\wedge(\forallz1\ldotsz(n-1)m+1)(\existsz(n-1)m+2\ldotsznm+1)Bn\LeftarrowDn-1\wedge(\forall
z | |||||||
|
\ldots
z | |||||||
|
)(\existsy1\ldotsym)
\varphi(z | |||||||
|
\ldots
z | |||||||
|
,y1\ldotsym)
(\forall
n | |
k)(a | |
1 |
\ldots
n | |
a | |
k) |
<(n-1)m+2
Dn-1\wedge
For the base case,
D1\equiv(\existsz1\ldotszm+1)
\varphi(z | |||||||
|
\ldots
z | |||||||
|
,z2,z3\ldotszm+1)\equiv(\existsz1\ldotszm+1)\varphi(z1\ldotsz1,z2,z3\ldotszm+1)
Now if
Dn
Dn
Eh
Dn
Bk
Dn
We will now show that there is such an assignment of truth values to
Eh
Dn
Eh
Dn
Dn
E1
E1
E1
E1
Eh-1
Eh
This general assignment must lead to every one of the
Bk
Dk
Bk
Dn
Eh
Dk
Dn
From this general assignment, which makes all of the
Dk
\Psi
(u1\ldotsui)
\Psi(z | |
u1 |
\ldots
z | |
ui |
)
Dk
In this model, each of the formulas
(\existsy1\ldotsym)
n | |
\varphi(a | |
1\ldots |
n | |
a | |
k, |
y1...ym)
an
We may write each Bi as Φ(x1...xk,y1...ym) for some xs, which we may call "first arguments" and ys that we may call "last arguments".
Take B1 for example. Its "last arguments" are z2,z3...zm+1, and for every possible combination of k of these variables there is some j so that they appear as "first arguments" in Bj. Thus for large enough n1, Dn1 has the property that the "last arguments" of B1 appear, in every possible combinations of k of them, as "first arguments" in other Bjs within Dn. For every Bi there is a Dni with the corresponding property.
Therefore in a model that satisfies all the Dns, there are objects corresponding to z1, z2... and each combination of k of these appear as "first arguments" in some Bj, meaning that for every k of these objects zp1...zpk there are zq1...zqm, which makes Φ(zp1...zpk,zq1...zqm) satisfied. By taking a submodel with only these z1, z2... objects, we have a model satisfying φ.
Gödel reduced a formula containing instances of the equality predicate to ones without it in an extended language. His method involves replacing a formula φ containing some instances of equality with the formula
(\forallx)Eq(x,x)\wedge(\forallx,y,z)[Eq(x,y) → (Eq(x,z) → Eq(y,z))]
\wedge(\forallx,y,z)[Eq(x,y) → (Eq(z,x) → Eq(z,y))]
\wedge
(\forallx1\ldotsxk,y1\ldotsxk)[(Eq(x1,y1)\wedge … \wedgeEq(xk,yk)) → (A(x1\ldotsxk)\equivA(y1\ldotsyk))]
\wedge … \wedge
(\forallx1\ldotsxm,y1\ldotsxm)[(Eq(x1,y1)\wedge … \wedgeEq(xm,ym)) → (Z(x1\ldotsxm)\equivZ(y1\ldotsym))]
\wedge
\varphi'.
Here
A\ldotsZ
k\ldotsm
Gödel also considered the case where there are a countably infinite collection of formulas. Using the same reductions as above, he was able to consider only those cases where each formula is of degree 1 and contains no uses of equality. For a countable collection of formulas
\varphii
i | |
B | |
k |
Dk
1 | |
B | |
1\ldots |
1 | |
B | |
k, |
\ldots,
k | |
B | |
1\ldots |
k | |
B | |
k |
When there is an uncountably infinite collection of formulas, the Axiom of Choice (or at least some weak form of it) is needed. Using the full AC, one can well-order the formulas, and prove the uncountable case with the same argument as the countable one, except with transfinite induction. Other approaches can be used to prove that the completeness theorem in this case is equivalent to the Boolean prime ideal theorem, a weak form of AC.
"Kurt Gödel"—by Juliette Kennedy.