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.
Assumptions 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.
Statement of the theorem and its proof 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:
Reducing the theorem to sentences (formulas with no free variables) in prenex form, i.e. with all quantifiers (∀ and ∃) at the beginning. Furthermore, we reduce it to formulas whose first quantifier is ∀. This is possible because for every sentence, there is an equivalent one in prenex form whose first quantifier is ∀. Reducing the theorem to sentences of the form ∀x1 ∀x2 ... ∀xk ∃y1 ∃y2 ... ∃ym φ(x1 ... xk, y1 ... ym). While we cannot do this by simply rearranging the quantifiers, we show that it is yet enough to prove the theorem for sentences of that form. Finally we prove the theorem for sentences of that form. This is done by first noting that a sentence such as B = ∀x1∀x2...∀xk ∃y1∃y2...∃ym φ(x1...xk, y1...ym) is either refutable (its negation is always true) or satisfiable, i.e. there is some model in which it holds (it might even be always true, i.e. a tautology); this model is simply assigning truth values to the subpropositions from which B is built. The reason for that is the completeness of propositional logic, with the existential quantifiers playing no role. We extend this result to more and more complex and lengthy sentences, Dn (n = 1,2...), built out from B, so that either any of them is refutable and therefore so is φ, or all of them are not refutable and therefore each holds in some model. We finally use the models in which the Dn hold (in case all are not refutable) in order to build a model in which φ holds.
Theorem 1. Every valid formula (true in all structures) is provable. 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,F> (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.]
Theorem 2. Every formula φ is either refutable or satisfiable in some structure. "φ is refutable" means by definition "¬φ is provable".
Equivalence of both theorems 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.
Proof of theorem 2: first step 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 ψ = ∃ x 1 ⋯ ∃ x n φ {\displaystyle \psi =\exists x_{1}\cdots \exists x_{n}\varphi } . If ψ is satisfiable in a structure M, then certainly so is φ and if ψ is refutable, then ¬ ψ = ∀ x 1 ⋯ ∀ x n ¬ φ {\displaystyle \neg \psi =\forall x_{1}\cdots \forall x_{n}\neg \varphi } is provable, and then so is ¬φ, thus φ is refutable. We see that we can restrict φ to be a sentence, that is, a formula with no free variables. 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 ψ = ∀ y ( P ) ∃ z ( Φ ∧ [ F ( y ) ∨ ¬ F ( z ) ] ) {\displaystyle \psi =\forall y(P)\exists z(\Phi \wedge [F(y)\vee \neg F(z)])} . Since ∀ y ∃ z ( F ( y ) ∨ ¬ F ( z ) ) {\displaystyle \forall y\exists z(F(y)\vee \neg F(z))} is clearly provable, it is easy to see that φ = ψ {\displaystyle \varphi =\psi } is provable.
Reducing the theorem to formulas of degree 1 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:
φ = ( ∀ x 1 ⋯ ∀ x k 1 ) ( ∃ x k 1 + 1 ⋯ ∃ x k 2 ) ⋯ ( ∀ x k n − 2 + 1 ⋯ ∀ x k n − 1 ) ( ∃ x k n − 1 + 1 ⋯ ∃ x k n ) ( Φ ) {\displaystyle \varphi =(\forall x_{1}\cdots \forall x_{k_{1}})(\exists x_{k_{1}+1}\cdots \exists x_{k_{2}})\cdots (\forall x_{k_{n-2}+1}\cdots \forall x_{k_{n-1}})(\exists x_{k_{n-1}+1}\cdots \exists x_{k_{n}})(\Phi )}
We define the degree of φ {\displaystyle \varphi } to be the number of universal quantifier blocks, separated by existential quantifier blocks as shown above, in the prefix of φ {\displaystyle \varphi } . The following lemma, which Gödel adapted from Skolem's proof of the Löwenheim–Skolem theorem, lets us sharply reduce the complexity of the generic formula φ {\displaystyle \varphi } we need to prove the theorem for: 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 φ = ( ∀ x ) ( ∃ y ) ( ∀ u ) ( ∃ v ) ( P ) ψ {\displaystyle \varphi =(\forall x)(\exists y)(\forall u)(\exists v)(P)\psi } , where ( P ) ψ {\displaystyle (P)\psi } is the remainder of φ {\displaystyle \varphi } (it is thus of degree k − 1). φ states that for every x there is a y such that... (something). It would have been nice to have a predicate Q' so that for every x, Q′(x,y) would be true if and only if y is the required one to make (something) true. Then we could have written a formula of degree k, which is equivalent to φ, namely ( ∀ x ′ ) ( ∀ x ) ( ∀ y ) ( ∀ u ) ( ∃ v ) ( ∃ y ′ ) ( P ) Q ′ ( x ′ , y ′ ) ∧ ( Q ′ ( x , y ) → ψ ) {\displaystyle (\forall x')(\forall x)(\forall y)(\forall u)(\exists v)(\exists y')(P)Q'(x',y')\wedge (Q'(x,y)\rightarrow \psi )} . This formula is indeed equivalent to φ because it states that for every x, if there is a y that satisfies Q'(x,y), then (something) holds, and furthermore, we know that there is such a y, because for every x', there is a y' that satisfies Q'(x',y'). Therefore φ follows from this formula. It is also easy to show that if the formula is false, then so is φ. Unfortunately, in general there is no such predicate Q'. However, this idea can be understood as a basis for the following proof of the Lemma. Proof. Let φ be a formula of degree k + 1; then we can write it as
φ = ( ∀ x ) ( ∃ y ) ( ∀ u ) ( ∃ v ) ( P ) ψ {\displaystyle \varphi =(\forall x)(\exists y)(\forall u)(\exists v)(P)\psi }
where (P) is the remainder of the prefix of φ {\displaystyle \varphi } (it is thus of degree k – 1) and ψ {\displaystyle \psi } is the quantifier-free matrix of φ {\displaystyle \varphi } . x, y, u and v denote here tuples of variables rather than single variables; e.g. ( ∀ x ) {\displaystyle (\forall x)} really stands for ∀ x 1 ∀ x 2 ⋯ ∀ x n {\displaystyle \forall x_{1}\forall x_{2}\cdots \forall x_{n}} where x 1 … x n {\displaystyle x_{1}\ldots x_{n}} are some distinct variables. 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
Φ = ( ∀ x ′ ) ( ∃ y ′ ) Q ( x ′ , y ′ ) ∧ ( ∀ x ) ( ∀ y ) ( Q ( x , y ) → ( ∀ u ) ( ∃ v ) ( P ) ψ ) {\displaystyle \Phi =(\forall x')(\exists y')Q(x',y')\wedge (\forall x)(\forall y)(Q(x,y)\rightarrow (\forall u)(\exists v)(P)\psi )}
Clearly, Φ → φ {\displaystyle \Phi \rightarrow \varphi } is provable. Now since the string of quantifiers ( ∀ u ) ( ∃ v ) ( P ) {\displaystyle (\forall u)(\exists v)(P)} does not contain variables from x or y, the following equivalence is easily provable with the help of whatever formalism we're using:
( Q ( x , y ) → ( ∀ u ) ( ∃ v ) ( P ) ψ ) ≡ ( ∀ u ) ( ∃ v ) ( P ) ( Q ( x , y ) → ψ ) {\displaystyle (Q(x,y)\rightarrow (\forall u)(\exists v)(P)\psi )\equiv (\forall u)(\exists v)(P)(Q(x,y)\rightarrow \psi )}
And since these two formulas are equivalent, if we replace the first with the second inside Φ, we obtain the formula Φ' such that Φ≡Φ':
Φ ′ = ( ∀ x ′ ) ( ∃ y ′ ) Q ( x ′ , y ′ ) ∧ ( ∀ x ) ( ∀ y ) ( ∀ u ) ( ∃ v ) ( P ) ( Q ( x , y ) → ψ ) {\displaystyle \Phi '=(\forall x')(\exists y')Q(x',y')\wedge (\forall x)(\forall y)(\forall u)(\exists v)(P)(Q(x,y)\rightarrow \psi )}
Now Φ' has the form ( S ) ρ ∧ ( S ′ ) ρ ′ {\displaystyle (S)\rho \wedge (S')\rho '} , where (S) and (S') are some quantifier strings, ρ and ρ' are quantifier-free, and, furthermore, no variable of (S) occurs in ρ' and no variable of (S') occurs in ρ. Under such conditions every formula of the form ( T ) ( ρ ∧ ρ ′ ) {\displaystyle (T)(\rho \wedge \rho ')} , where (T) is a string of quantifiers containing all quantifiers in (S) and (S') interleaved among themselves in any fashion, but maintaining the relative order inside (S) and (S'), will be equivalent to the original formula Φ'(this is yet another basic result in first-order predicate calculus that we rely on). To wit, we form Ψ as follows:
Ψ = ( ∀ x ′ ) ( ∀ x ) ( ∀ y ) ( ∀ u ) ( ∃ y ′ ) ( ∃ v ) ( P ) Q ( x ′ , y ′ ) ∧ ( Q ( x , y ) → ψ ) {\displaystyle \Psi =(\forall x')(\forall x)(\forall y)(\forall u)(\exists y')(\exists v)(P)Q(x',y')\wedge (Q(x,y)\rightarrow \psi )}
and we have Φ ′ ≡ Ψ {\displaystyle \Phi '\equiv \Psi } . Now Ψ {\displaystyle \Psi } is a formula of degree k and therefore by assumption either refutable or satisfiable. If Ψ {\displaystyle \Psi } is satisfiable in a structure M, then, considering Ψ ≡ Φ ′ ≡ Φ ∧ Φ → φ {\displaystyle \Psi \equiv \Phi '\equiv \Phi \wedge \Phi \rightarrow \varphi } , we see that φ {\displaystyle \varphi } is satisfiable as well. If Ψ {\displaystyle \Psi } is refutable, then so is Φ {\displaystyle \Phi } , which is equivalent to it; thus ¬ Φ {\displaystyle \neg \Phi } is provable. Now we can replace all occurrences of Q inside the provable formula ¬ Φ {\displaystyle \neg \Phi } by some other formula dependent on the same variables, and we will still get a provable formula. (This is yet another basic result of first-order predicate calculus. Depending on the particular formalism adopted for the calculus, it may be seen as a simple application of a "functional substitution" rule of inference, as in Gödel's paper, or it may be proved by considering the formal proof of ¬ Φ {\displaystyle \neg \Phi } , replacing in it all occurrences of Q by some other formula with the same free variables, and noting that all logical axioms in the formal proof remain logical axioms after the substitution, and all rules of inference still apply in the same way.) In this particular case, we replace Q(x',y') in ¬ Φ {\displaystyle \neg \Phi } with the formula ( ∀ u ) ( ∃ v ) ( P ) ψ ( x , y ∣ x ′ , y ′ ) {\displaystyle (\forall u)(\exists v)(P)\psi (x,y\mid x',y')} . Here (x,y | x',y') means that instead of ψ we are writing a different formula, in which x and y are replaced with x' and y'. Q(x,y) is simply replaced by ( ∀ u ) ( ∃ v ) ( P ) ψ {\displaystyle (\forall u)(\exists v)(P)\psi } .
¬ Φ {\displaystyle \neg \Phi } then becomes
¬ ( ( ∀ x ′ ) ( ∃ y ′ ) ( ∀ u ) ( ∃ v ) ( P ) ψ ( x , y ∣ x ′ , y ′ ) ∧ ( ∀ x ) ( ∀ y ) ( ( ∀ u ) ( ∃ v ) ( P ) ψ → ( ∀ u ) ( ∃ v ) ( P ) ψ ) ) {\displaystyle \neg ((\forall x')(\exists y')(\forall u)(\exists v)(P)\psi (x,y\mid x',y')\wedge (\forall x)(\forall y)((\forall u)(\exists v)(P)\psi \rightarrow (\forall u)(\exists v)(P)\psi ))}
and this formula is provable; since the part under negation and after the ∧ {\displaystyle \wedge } sign is obviously provable, and the part under negation and before the ∧ {\displaystyle \wedge } sign is obviously φ, just with x and y replaced by x' and y', we see that ¬ φ {\displaystyle \neg \varphi } is provable, and φ is refutable. We have proved that φ is either satisfiable or refutable, and this concludes the proof of the Lemma. Notice that we could not have used ( ∀ u ) ( ∃ v ) ( P ) ψ ( x , y ∣ x ′ , y ′ ) {\displaystyle (\forall u)(\exists v)(P)\psi (x,y\mid x',y')} instead of Q(x',y') from the beginning, because Ψ {\displaystyle \Psi } would not have been a well-formed formula in that case. This is why we cannot naively use the argument appearing at the comment that precedes the proof.
Proving the theorem for formulas of degree 1 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:
( ∀ x 1 … x k ) ( ∃ y 1 … y m ) φ ( x 1 … x k , y 1 … y m ) . {\displaystyle (\forall x_{1}\ldots x_{k})(\exists y_{1}\ldots y_{m})\varphi (x_{1}\ldots x_{k},y_{1}\ldots y_{m}).}
Now we define an ordering of the k-tuples of natural numbers as follows: ( x 1 … x k ) < ( y 1 … y k ) {\displaystyle (x_{1}\ldots x_{k})<(y_{1}\ldots y_{k})} should hold if either Σ k ( x 1 … x k ) < Σ k ( y 1 … y k ) {\displaystyle \Sigma _{k}(x_{1}\ldots x_{k})<\Sigma _{k}(y_{1}\ldots y_{k})} , or Σ k ( x 1 … x k ) = Σ k ( y 1 … y k ) {\displaystyle \Sigma _{k}(x_{1}\ldots x_{k})=\Sigma _{k}(y_{1}\ldots y_{k})} , and ( x 1 … x k ) {\displaystyle (x_{1}\ldots x_{k})} precedes ( y 1 . . . y k ) {\displaystyle (y_{1}...y_{k})} in lexicographic order. [Here Σ k ( x 1 … x k ) {\displaystyle \Sigma _{k}(x_{1}\ldots x_{k})} denotes the sum of the terms of the tuple.] Denote the nth tuple in this order by ( a 1 n … a k n ) {\displaystyle (a_{1}^{n}\ldots a_{k}^{n})} . Set the formula B n {\displaystyle B_{n}} as φ ( z a 1 n … z a k n , z ( n − 1 ) m + 2 , z ( n − 1 ) m + 3 … z n m + 1 ) {\displaystyle \varphi (z_{a_{1}^{n}}\ldots z_{a_{k}^{n}},z_{(n-1)m+2},z_{(n-1)m+3}\ldots z_{nm+1})} . Then put D n {\displaystyle D_{n}} as
( ∃ z 1 … z n m + 1 ) ( B 1 ∧ B 2 ∧ ⋯ ∧ B n ) . {\displaystyle (\exists z_{1}\ldots z_{nm+1})(B_{1}\wedge B_{2}\wedge \cdots \wedge B_{n}).}
Lemma: For every n, φ → D n {\displaystyle \varphi \rightarrow D_{n}} . Proof: By induction on n; we have D n ⇐ D n − 1 ∧ ( ∀ z 1 … z ( n − 1 ) m + 1 ) ( ∃ z ( n − 1 ) m + 2 … z n m + 1 ) B n ⇐ D n − 1 ∧ ( ∀ z a 1 n … z a k n ) ( ∃ y 1 … y m ) φ ( z a 1 n … z a k n , y 1 … y m ) {\displaystyle D_{n}\Leftarrow D_{n-1}\wedge (\forall z_{1}\ldots z_{(n-1)m+1})(\exists z_{(n-1)m+2}\ldots z_{nm+1})B_{n}\Leftarrow D_{n-1}\wedge (\forall z_{a_{1}^{n}}\ldots z_{a_{k}^{n}})(\exists y_{1}\ldots y_{m})\varphi (z_{a_{1}^{n}}\ldots z_{a_{k}^{n}},y_{1}\ldots y_{m})} , where the latter implication holds by variable substitution, since the ordering of the tuples is such that ( ∀ k ) ( a 1 n … a k n ) < ( n − 1 ) m + 2 {\displaystyle (\forall k)(a_{1}^{n}\ldots a_{k}^{n})<(n-1)m+2} . But the last formula is equivalent to D n − 1 ∧ {\displaystyle D_{n-1}\wedge } φ. For the base case, D 1 ≡ ( ∃ z 1 … z m + 1 ) φ ( z a 1 1 … z a k 1 , z 2 , z 3 … z m + 1 ) ≡ ( ∃ z 1 … z m + 1 ) φ ( z 1 … z 1 , z 2 , z 3 … z m + 1 ) {\displaystyle D_{1}\equiv (\exists z_{1}\ldots z_{m+1})\varphi (z_{a_{1}^{1}}\ldots z_{a_{k}^{1}},z_{2},z_{3}\ldots z_{m+1})\equiv (\exists z_{1}\ldots z_{m+1})\varphi (z_{1}\ldots z_{1},z_{2},z_{3}\ldots z_{m+1})} is obviously a corollary of φ as well. So the Lemma is proven. Now if D n {\displaystyle D_{n}} is refutable for some n, it follows that φ is refutable. On the other hand, suppose that D n {\displaystyle D_{n}} is not refutable for any n. Then for each n there is some way of assigning truth values to the distinct subpropositions E h {\displaystyle E_{h}} (ordered by their first appearance in D n {\displaystyle D_{n}} ; "distinct" here means either distinct predicates, or distinct bound variables) in B k {\displaystyle B_{k}} , such that D n {\displaystyle D_{n}} will be true when each proposition is evaluated in this fashion. This follows from the completeness of the underlying propositional logic. We will now show that there is such an assignment of truth values to E h {\displaystyle E_{h}} , so that all D n {\displaystyle D_{n}} will be true: The E h {\displaystyle E_{h}} appear in the same order in every D n {\displaystyle D_{n}} ; we will inductively define a general assignment to them by a sort of "majority vote": Since there are infinitely many assignments (one for each D n {\displaystyle D_{n}} ) affecting E 1 {\displaystyle E_{1}} , either infinitely many make E 1 {\displaystyle E_{1}} true, or infinitely many make it false and only finitely many make it true. In the former case, we choose E 1 {\displaystyle E_{1}} to be true in general; in the latter we take it to be false in general. Then from the infinitely many n for which E 1 {\displaystyle E_{1}} through E h − 1 {\displaystyle E_{h-1}} are assigned the same truth value as in the general assignment, we pick a general assignment to E h {\displaystyle E_{h}} in the same fashion. This general assignment must lead to every one of the B k {\displaystyle B_{k}} and D k {\displaystyle D_{k}} being true, since if one of the B k
