Logic, Computability, and Incompleteness

3Completeness

In this chapter, we’re going to meet some important results about the powers and limitations of first-order logic. Our starting point is the completeness theorem, which shows that whenever a first-order sentence is entailed by some premises then it is derivable from these premises in the first-order calculus. We’ll see that this positive result is tightly connected to some negative results: the compactness theorem and the Löwenheim-Skolem theorems. These theorems concern the size of models, by which we mean the size of their domain. To fully appreciate their implications, I’ll begin with some background about the sizes of sets, which will be needed in later chapters anyway.

3.1  Cardinalities
3.2  Planning the completeness proof
3.3  The completeness proof
3.4  Unintended models

3.1Cardinalities

\(\{\) Athens \(\}\) is a set with one member: the city Athens. We say that \(\{\) Athens \(\}\) has size 1. \(\{\) Athens, Berlin \(\}\) has size 2. \(\{\) Athens, Berlin, Cairo \(\}\) has size 3. And so on. It seems straightforward. But now consider the set \(\mathbb {N} = \{ 0, 1, 2, 3, \ldots \}\) of natural numbers. What is its size?

The official set-theoretic word for the size of a set is cardinality. So \(\{\) Athens, Berlin, Cairo \(\}\) has cardinality 3. Finite sets have finite cardinalities, which are natural numbers. But infinite sets also have a cardinality. These aren’t natural numbers, but numbers of a more general sort, called cardinals. The infinite cardinals are also known as the alephs, because they are conventionally written using the Hebrew letter ‘\(\aleph \)’ (“aleph”). For example, the cardinality of \(\mathbb {N}\) is called ‘\(\aleph _0\)’. This is the smallest infinite cardinal. The next larger one is \(\aleph _1\), followed by \(\aleph _2\), and so on.

How do we determine the cardinality of an infinite set? The crucial idea goes back to Galileo and Hume, but was only fully developed by Georg Cantor in the 19th century. Following Galileo and Hume, Cantor stipulates that two sets have the same cardinality iff there is a one-to-one correspondence between their members.

To make this precise, we define the notion of a one-to-one correspondence, or bijection.

Definition 3.1

A function \(f\) from a set \(A\) to a set \(B\) is a bijection if it satisfies the following two conditions.

(i)
For every \(x, y \in A\), if \(f(x) = f(y)\) then \(x = y\). (Injectivity)
(ii)
For every \(y \in B\) there is some \(x \in A\) such that \(f(x) = y\). (Surjectivity)

Intuitively, a bijection pairs up each element of \(A\) with exactly one element of \(B\), and vice versa, so that every element of either set gets a unique partner. As a shorthand, we say that sets \(A\) and \(B\) are equinumerous if there is a bijection from \(A\) to \(B\). (In this case, there is always also a bijection from \(B\) to \(A\).)

The Galileo-Hume-Cantor principle now says that two sets have the same cardinality iff they are equinumerous. Obviously, no finite set of numbers is equinumerous with \(\mathbb {N}\). So \(\mathbb {N}\) has an infinite cardinality. We define ‘\(\aleph _0\)’ to name this cardinality. Using the Galileo-Hume-Cantor principle, we can determine, for any other set, whether it also has cardinality \(\aleph _0\).

Consider, for example, the set of odd numbers \(1, 3, 5, 7, \ldots \). The following function \(f\) is a bijection from \(\mathbb {N}\) to the set of odd numbers: \[ f(n) = 2n + 1. \] The function maps 0 to 1, 1 to 3, 2 to 5, and so on. Every natural number is mapped to a unique odd number, and no odd number is left unmapped. So the set of odd numbers also has cardinality \(\aleph _0\).

Galileo found this paradoxical: how can there be as many odd numbers as natural numbers, given that the odd numbers are a proper subset of the natural numbers? Never mind, said Cantor: the resulting theory of cardinalities is consistent and mathematically fruitful, even if it may initially seem strange.

Sets that are equinumerous with \(\mathbb {N}\) are also called countably infinite or denumerable. A set is countable if it is either finite or countably infinite. The word ‘countable’ alludes to the fact that a bijection between \(\mathbb {N}\) and another set effectively assigns a “counter” to each member of the set. For example, the above bijection between \(\mathbb {N}\) and the odd numbers assigns the counter 0 to 1, 1 to 3, 2 to 5, and so on.

Exercise 3.1

Show that (a) the set of even natural numbers and (b) the set of integers \(\ldots , -2, -1, 0, 1, 2, \ldots \) are both countably infinite.

Are there any uncountable sets? One might suspect that the set of pairs of natural numbers is uncountable. But not so. Cantor’s zig-zag method shows that there is a bijection between \(\mathbb {N}\) and the set of pairs of natural numbers. We begin by arranging all pairs of natural numbers in a two-dimensional grid.

.......
⟨⟨⟨⟨⟨⋅⟨⟨⟨⟨⟨⋅⟨⟨⟨⟨⟨⋅⟨⟨⟨⟨⟨⋅⟨00000⋅11111⋅22222⋅33333⋅4,,,,,⋅,,,,,⋅,,,,,⋅,,,,,⋅,012340123401234012340⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩⟩&#x

We then define a path through this grid that visits each cell exactly once. The orange arrows indicate that path. It effectively enumerates all pairs \(\langle x, y \rangle \), starting with \(\langle 0,0 \rangle \), followed by \(\langle 0,1 \rangle \), \(\langle 1,0 \rangle \), \(\langle 2,0 \rangle \), \(\langle 1,1 \rangle \), \(\langle 0,2 \rangle \), and so on. The enumeration amounts to a lists of all the pairs. We get a bijection to \(\mathbb {N}\) by assigning to each pair its position in the list, starting with position 0. So \(\langle 0,0 \rangle \) is mapped to 0, \(\langle 0,1 \rangle \) to 1, \(\langle 1,0 \rangle \) to 2, and so forth.

(We can find a formula for this bijection. As we follow the arrow, the pairs before any given pair \(\langle x,y \rangle \) comprise all the pairs on the left-to-top diagonals before \(\langle x,y \rangle \), which have 1, 2, 3, etc. pairs, plus the \(y\) pairs on the diagonal containing \(\langle x,y \rangle \) itself. The total number of pairs preceding \(\langle x,y \rangle \) is therefore \((1 + 2 + \ldots + (x+y)) + y\). In exercise 1.3, you showed that \(1+2+ \ldots + (x+y) = (x + y)(x + y + 1)/2\). So the position of any pair \(\langle x,y \rangle \) in the enumeration is \((x+y)(x+y+1)/2 + y\).)

Exercise 3.2

Show that the set of ordered triples of natural numbers is countably infinite.

But it’s true that not all sets are countable. Cantor established this with another powerful technique: diagonalization.

Theorem 3.1: Cantor’s Theorem

The set of all sets of natural numbers is not countable.

Proof. Assume for reductio that the set of all sets of natural numbers is countable. This means there is a list \(S_0, S_1, S_2, \ldots \) of all these sets. Now consider the set \(D = \{ n \in \mathbb {N} : n \notin S_n \}\) of all natural numbers \(n\) that are not in the \(n\)-th set \(S_n\) of the list. This is a set of natural numbers, so it must be somewhere in the list. That is, there is some \(S_k\) such that \(D = S_k\). Now the number \(k\) is either in \(D\) or not. If \(k\) is in \(D\) then by definition of \(D\), \(k\) is not in \(S_k\). This is impossible, as \(D = S_k\). If \(k\) is not in \(D\), then by definition of \(D\), \(k\) is in \(S_k\). This is impossible, as \(D = S_k\).

We can again picture this technique with a two-dimensional grid.

✓✗✗✓✓⋅✗✗✗✓✓⋅✗✗✓✗✗⋅✓✗✗✓✗⋅✓✗✗✗✗⋅................SSSSS...01234.⋅⋅⋅⋅⋅.01234.⋅⋅⋅⋅⋅..

Each row represents a set of natural numbers. Each column stands for a number. A checkmark indicates that the number is in the set, a cross that it is not. (So \(0\) is in \(S_0\), \(1\) is not in \(S_0\), 2 is not in \(S_{0}\), and so on.) Cantor’s method now looks at the shaded diagonal. It defines the new set \(D\) by inverting the diagonal, swapping crosses and checkmarks. In the picture, the inverted diagonal would begin with …, meaning that \(D\) does not contain \(0\), does contain 1, does not contain 2 and 3, does contain 4, and so on. The so-defined set \(D\) is called the antidiagonal of the grid. It can’t be anywhere in the list \(S_0, S_1, S_2, \ldots \). So there can be no list of all sets of natural numbers.

Theorem 3.1 can be strengthened:

Theorem 3.2: Cantor’s Theorem (general version)

For any set \(A\), the set of subsets of \(A\) has strictly greater cardinality than \(A\).

Proof. The proof proceeds essentially as before. Suppose for reductio that there is a bijection \(f\) from \(A\) to \(\mathcal {P}(A)\), where \(\mathcal {P}(A)\) (called the power set of \(A\)) is the set of all subsets of \(A\). Define the antidiagonal set \(D\) as the set of all members \(X\) of \(A\) such that \(X\) is not in \(f(X)\) – for short: \(D = \{ X \in A : X \notin f(X) \}\). Since \(D\) is a subset of \(A\), it is in \(\mathcal {P}(A)\). But it can’t be an output of \(f\). For suppose it is. That is, suppose \(D = f(X)\) for some \(X \in A\). Either \(X\) is in \(D\) or not. If \(X\) is in \(D\), then by definition of \(D\), \(X\) is not in \(f(X)\). But \(f(X) = D\), so this is impossible. If \(X\) is not in \(D\), then by definition of \(D\), \(X\) is in \(f(X)\). Again, this is impossible.

Cantor’s theorem reveals a hierarchy of infinities. Starting with \(\mathbb {N}\), we can produce larger and larger infinities by taking power sets: \(\mathcal {P}(\mathbb {N})\) is larger than \(\mathbb {N}\), \(\mathcal {P}(\mathcal {P}(\mathbb {N}))\) is even larger, \(\mathcal {P}(\mathcal {P}(\mathcal {P}(\mathbb {N})))\) is larger than that, and so on, without end. There are infinitely many infinite cardinals.

Exercise 3.3

Show that if \(A\) and \(B\) are countably infinite sets, then their union \(A \cup B\) is countably infinite.

Exercise 3.4

Show that if a first-order language has countably many primitive symbols, then the set of all sentences of the language is countably infinite.

Exercise 3.5

Show that the set of real numbers is uncountable. (Hint: use the diagonalization method, assuming, for reductio, that there is a list of all decimal representations of real numbers between 0 and 1.)

3.2Planning the completeness proof

In section 1.4, we showed that all valid sentences in propositional logic are derivable from the axiom schemata A1–A3 by Modus Ponens. This particular result wasn’t easy to foresee, but it wasn’t a surprise that there is some mechanical way of checking if a sentence of propositional logic is valid. Models of propositional logic are essentially finitary. A model is a truth-value assignment to the sentence letters. Since each sentence of propositional logic is composed of finitely many sentence letters, and there are only finitely many ways of assigning truth-values to these sentence letters, it is to be expected that there is a finitary algorithm for deciding whether all of these assignments make the sentence true.

In first-order logic, the situation is very different. A first-order model consists of an arbitrary set \(D\) together with an interpretation of the non-logical vocabulary, where every subset of \(D\) is a possible interpretation of any monadic predicate. Even if \(D\) itself is countable, this means that there are usually uncountably many models with that domain. And \(D\) doesn’t have to be countable. It can have any cardinality whatsoever. The space of first-order models is enormous. The number of first-order models is vastly greater than \(\aleph _0\). There is, in fact, no aleph big enough to measure the number of first-order models. It is therefore astonishing that there is a finitary, mechanical method – a proof system – by which one can find every sentence that is true across the realm of all first-order models. Astonishing, but true – as Kurt Gödel showed in 1929.

Gödel’s completeness theorem (not to be confused with his incompleteness theorems that we’ll discuss in later chapters) is noteworthy for other reasons as well. For example, it supports the hypothesis that all intuitively valid mathematical arguments can be formalized as deductions in the first-order calculus. Let’s grant, for the sake of the argument, that every mathematical statement can be expressed in a first-order language. Now suppose some mathematical argument can’t be replicated in the first-order calculus. By the completeness theorem, it follows that there is a model in which the premises are true but the conclusion false. This strongly suggests that the argument wasn’t valid. We’ll meet further applications of the completeness theorem later. First we need to prove it.

Our proof will follow Henkin’s 1949 method, which we used in chapter 1 to prove the completeness of propositional logic. Let’s recall the key steps.

We want to show that whenever a sentence \(A\) is entailed by a set of sentences \(\Gamma \) (meaning that every model that makes all members of \(\Gamma \) true also makes \(A\) true), then there is a deduction of \(A\) from \(\Gamma \). For short: if \(\Gamma \vDash A\) then \(\Gamma \vdash A\). The proof is by contraposition. We assume \(\Gamma \not \vdash A\) and derive \(\Gamma \not \vDash A\), as follows.

1.
Assume \(\Gamma \not \vdash A\).
2.
Infer that \(\Gamma \cup \{ \neg A \}\) is consistent.
3.
Show that \(\Gamma \cup \{ \neg A \}\) can be extended to a maximal consistent set \(\Gamma ^{+}\).
4.
Construct a model \(\mathfrak {M}\) based on \(\Gamma ^{+}\) in which all members of \(\Gamma ^{+}\) are true.
5.
Infer that \(\Gamma \not \vDash A\).

As in chapter 1, we call a set of sentences consistent if no contradiction can be derived from it. That is, \(\Gamma \) is consistent iff there is no sentence \(A\) such that \(\Gamma \vdash A\) and \(\Gamma \vdash \neg A\). Equivalently (as you showed in exercise 1.8; the proof carries over from propositional logic), \(\Gamma \) is consistent iff \(\Gamma \not \vdash \bot \).

Steps 2 and 5 are easy. The following lemma establishes step 2, and is proved just as its propositional counterpart, lemma 1.2.

Lemma 3.1

\(\Gamma \not \vdash A\) iff \(\Gamma \cup \{\neg A\}\) is consistent.

Proof. Suppose \(\Gamma \cup \{\neg A\}\) is inconsistent. Then \(\Gamma \vdash \neg \neg A\) by RAA and so \(\Gamma \vdash A\) by DNE. Contraposing, this means that if \(\Gamma \not \vdash A\) then \(\Gamma \cup \{ \neg A \}\) is consistent. Conversely, suppose \(\Gamma \vdash A\). Then \(\Gamma , \neg A \vdash A\) by Mon and \(\Gamma , \neg A \vdash \neg A\) by Mon and Id. So \(\Gamma \cup \{ \neg A \}\) is inconsistent.

It remains to fill in steps 3 and 4: we need to show that every consistent set of sentences is satisfiable.

Here is the plan. Let \(\Gamma \) be a consistent set of sentences in some first-order language \(\mathfrak {L}\) (with identity and function symbols). We’ll show how one can construct a model \(\mathfrak {M}\) in which all members of \(\Gamma \) are true. As in chapter 1, we first extend \(\Gamma \) to a maximal consistent set \(\Gamma ^{+}\) that will guide the construction of the model. For example, if \(\Gamma \) contains \(Fa \lor Gb\), it’s not obvious if our model should satisfy \(Fa\) or \(Gb\) or both. \(\Gamma ^{+}\) will directly contain \(Fa\) or \(Gb\) or both, so it will answer this question.

Suppose we have \(Fa\) in \(\Gamma ^{+}\). Our model \(\mathfrak {M}\) must then contain an object \(⟦ a⟧^{\mathfrak {M}}\) denoted by \(a\) that falls in the extension \(⟦ F ⟧^{\mathfrak {M}}\) of \(F\). The nature of the object \(⟦ a⟧^{\mathfrak {M}}\) is irrelevant. It proves useful to choose the individual constant \(a\) as the object denoted by \(a\). Then we can say that the extension of \(F\) comprises all individual constants \(c\) for which \(Fc \in \Gamma ^{+}\). (It might seem odd to have a model whose domain consists of individual constants, and in which each constant denotes itself. But nothing in the definition of a first-order model prevents us from doing this.)

Unfortunately, there are some complications. Suppose \(\Gamma \) contains \(\exists x Fx\) (which is short for \(\neg \forall x \neg Fx\)). We want all sentences in \(\Gamma \) to be true in our model \(\mathfrak {M}\). So there must be some object in \(⟦ F ⟧^{\mathfrak {M}}\). But if \(⟦ F ⟧^{\mathfrak {M}}\) is defined as the set of individual constants \(c\) for which \(Fc \in \Gamma ^{+}\), there might be no such object, as there might be no constant \(c\) for which \(Fc \in \Gamma ^{+}\). We need to ensure that this doesn’t happen. That is, we need to ensure that for each existential sentence \(\exists x Fx\) in \(\Gamma ^{+}\), there is a “witnessing” sentence \(Fc\) in \(\Gamma ^{+}\). But what if \(\Gamma \) already contains \(\neg Fc\) for every individual constant \(c\)? Then we can’t add the required witness without making \(\Gamma \) inconsistent.

To get around this problem, we’ll construct \(\Gamma ^{+}\) in an extend language \(\mathfrak {L}^{+}\) that adds new individual constants to \(\mathfrak {L}\). We can use these constants to ensure that every existential sentence in \(\Gamma \) has a witness.

Another complication arises from the presence of the identity symbol. If we let each individual constant denote itself, any identity statement involving different individual constants will be false. After all, no constant is identical to any other constant. But \(a=b\) is consistent, and might be in \(\Gamma \) and therefore in \(\Gamma ^{+}\). So we’ll actually let each constant denote a set of terms: the constant \(a\) will denote the set of closed terms \(t\) for which \(a=t\) is in \(\Gamma ^{+}\).

Let’s fill in the details.

3.3The completeness proof

We’ll show that every consistent set of first-order sentences is satisfiable. As we’ve seen above (and as we’ll spell out again below), from this it is only a small step to the completeness theorem.

So let \(\Gamma \) be a consistent set of sentences in a first-order language \(\mathfrak {L}\). Let \(\mathfrak {L}^{+}\) be an extension of \(\mathfrak {L}\) with (countably) infinitely many new individual constants. We’ll extend \(\Gamma \) to a maximal consistent set in \(\mathfrak {L}^{+}\). First, though, we need to confirm that \(\Gamma \) itself is still consistent in the extended language \(\mathfrak {L}^{+}\). Consistency is language-relative because the language determines which instances of the axioms are available. As we switch from \(\mathfrak {L}\) to \(\mathfrak {L}^{+}\), new axioms become available. We need to confirm that these new axioms don’t allow deriving a contradiction from \(\Gamma \).

Lemma 3.2

If \(\Gamma \) is a set of \(\mathfrak {L}\)-sentences that is consistent within \(\mathfrak {L}\), and \(\mathfrak {L}^{+}\) extends \(\mathfrak {L}\) by a set of new individual constants, then \(\Gamma \) is consistent within \(\mathfrak {L}^{+}\).

Proof by contraposition. Assume that \(\Gamma \) is inconsistent within \(\mathfrak {L}^{+}\). Then there is a deduction \(A_{1},\ldots ,A_{n}\) of \(\bot \) from \(\Gamma \), where each \(A_{i}\) is an \(\mathfrak {L}^{+}\)-sentence. Being finite, the deduction only uses finitely many of the new constants: call them \(c_{1},\ldots ,c_{k}\). The deduction also can’t use more than finitely many of the old constants in \(\mathfrak {L}\). Since first-order languages have infinitely many constants, we can choose \(k\) distinct constants \(d_{1},\ldots ,d_{k}\) from \(\mathfrak {L}\) that don’t occur in the deduction. Now consider the sequence of sentences \(A_{1}',\ldots ,A_{n}'\) that results from \(A_{1},\ldots ,A_{n}\) by replacing each \(c_{i}\) by \(d_{i}\). It is easy to see that

(i)
if \(A_{i}\) is an axiom then so is \(A_{i}'\);
(ii)
if \(A_{i} \in \Gamma \) then \(A_{i}' \in \Gamma \) (sentences in \(\Gamma \) don’t contain any new constants);
(iii)
if \(A_{i}\) follows from \(A_{1},\ldots ,A_{i-1}\) by MP or Gen, then \(A_{i}'\) follows from \(A_{1}',\ldots ,A_{i-1}'\) by MP or Gen.

So \(A_{1}',\ldots ,A_{n}'\) is a deduction of \(\bot \) from \(\Gamma \), showing that \(\Gamma \) is inconsistent within \(\mathfrak {L}\).

Next, we show that \(\Gamma \) can be extended to a maximal consistent set \(\Gamma ^{+}\) in which every existential sentence \(\exists x A\) has a witness \(A(x/c)\). Such sets are called Henkin sets.

Definition 3.2

A set of sentences \(\Gamma \) in a first-order language \(\mathfrak {L}\) is a Henkin set in \(\mathfrak {L}\) if it satisfies the following conditions.

(i)
\(\Gamma \) is consistent (within \(\mathfrak {L}\)).
(ii)
For every \(\mathfrak {L}\)-sentence \(A\), either \(A \in \Gamma \) or \(\neg A \in \Gamma \). (Maximality)
(iii)
Whenever \(\Gamma \) contains a sentence of the form \(\neg \forall x A\) then it also contains \(\neg A(x/c)\) for some individual constant \(c\). (Witnessing)

In the presence of the other conditions, (iii) is equivalent to the requirement that if \(\Gamma \) contains \(\neg \forall x \neg A\) then it contains \(A(x/c)\) for some \(c\).

Exercise 3.6

Show that if \(\Gamma \) is a Henkin set and \(\Gamma \vdash A\), then \(A \in \Gamma \).

Exercise 3.7

Show that if \(\Gamma \) is a Henkin set (in a first-order language with identity) then for every closed term \(t\) of the language there is an individual constant \(c\) such that \(t=c\) is in \(\Gamma \).

Exercise 3.8

Show that if \(\Gamma \) is a Henkin set in some language \(\mathfrak {L}\) then \(\Gamma \) contains \(\forall x A\) iff \(\Gamma \) contains \(A(x/c)\) for every individual constant \(c\) in \(\mathfrak {L}\).

Lemma 3.3

Every consistent set of \(\mathfrak {L}\)-sentences \(\Gamma \) can be extended to a Henkin set \(\Gamma ^+\) in any language \(\mathfrak {L}^{+}\) that adds infinitely many individual constants to \(\mathfrak {L}\).

Proof. Let \(\Gamma \) be a consistent set of \(\mathfrak {L}\)-sentences. Let \(A_{1}, A_{2}, \ldots \) be a list of all \(\mathfrak {L}^{+}\)-formulas with exactly one free variable. We define a sequence of sets \(\Gamma _{0}, \Gamma _{1}, \ldots \) as follows: \begin {align*} \Gamma _{0} & := \Gamma \\[0.5em] \Gamma _{n+1} & := \Gamma _{n} \cup \{ \neg \forall x A_{n} \to \neg A_{n}(x/c_{n}) \}, \end {align*}

where \(x\) is the free variable in \(A_{n}\) and \(c_{n}\) is a new \(\mathfrak {L}^{+}\)-constant that does not occur in \(\Gamma _{n}\). (There must be some such constant because \(\mathfrak {L}^{+}\) contains infinitely many constants that don’t occur in \(\Gamma \).) Let \(\Gamma '\) be the union \(\bigcup _{n} \Gamma _{n}\) of all sets in this sequence. (That is, a sentence \(A\) is in \(\Gamma '\) iff it is in some \(\Gamma _{n}\).)

We show that \(\Gamma '\) is consistent. Suppose not. Then there is a derivation of \(\bot \) from \(\Gamma \) and the “Henkin sentences” \(\neg \forall x A_{n} \to \neg A_{n}(x/c_{n})\). This derivation can use only finitely many of the Henkin sentences. So one of the \(\Gamma _{n}\) must be inconsistent. But we can show by induction on \(n\) that each \(\Gamma _{n}\) is consistent.

The base case, for \(n=0\), holds by assumption: \(\Gamma \) is consistent.

For the inductive step, assume \(\Gamma _{n}\) is consistent and suppose for reductio that \(\Gamma _{n+1}\) is inconsistent. By RAA, we then have \begin {flalign} \quad & \Gamma _{n} \vdash \neg (\neg \forall x A_{n} \to \neg A_{n}(x/c_{n})). \tag {1} & \end {flalign}

It’s easy to show that if \(\Gamma _n \vdash \neg (A \to B)\) then \(\Gamma _n \vdash A\) and \(\Gamma _n \vdash \neg B\). (Both \(\neg (A \to B) \to A\) and \(\neg (A \to B) \to \neg B\) are truth-functional tautologies.) So (1) implies \begin {flalign} \quad & \Gamma _{n} \vdash \neg \forall x A_{n}, \text { and} \tag {2} &\\[0.5em] \quad & \Gamma _{n} \vdash \neg \neg A_{n}(x/c_{n}). \tag {3} & \end {flalign}

From (3), we get \(\Gamma _{n} \vdash A_{n}(x/c_{n})\) by DNE. As \(c_{n}\) does not occur in \(\Gamma _{n}\), Gen yields \begin {flalign} \quad & \Gamma _{n} \vdash \forall x A_{n}. \tag {4} & \end {flalign}

(2) and (4) show that \(\Gamma _{n}\) is inconsistent, which contradicts the induction hypothesis.

Next, we extend \(\Gamma '\) to a maximal consistent set \(\Gamma ^{+}\). The construction follows the proof of Lindenbaum’s Lemma (lemma 1.4). Let \(S_{1}, S_{2}, \ldots \) be a list of all \(\mathfrak {L}^{+}\)-sentences. Starting with \(\Gamma '\), we define another sequence of sets \(\Gamma '_{0}, \Gamma '_{1}, \ldots \): \begin {align*} \Gamma '_{0} & := \Gamma ' \\[0.5em] \Gamma '_{n+1} & := \begin {cases} \Gamma '_{n} \cup \{ S_{n} \} & \text {if } \Gamma '_{n} \cup \{ S_{n} \} \text { is consistent,} \\[0.5em] \Gamma '_{n} \cup \{ \neg S_{n} \} & \text {otherwise.} \end {cases} \end {align*}

We show by induction that each \(\Gamma '_{n}\) is consistent. The base case, for \(n=0\), holds because \(\Gamma '_0\) is \(\Gamma '\), which we’ve just shown to be consistent. For the inductive step, assume that a set \(\Gamma '_n\) in the list is consistent. By lemma 1.3 (which only depends on RAA and therefore also holds for the first-order calculus), either \(\Gamma '_n \cup \{ S_n \}\) or \(\Gamma '_n \cup \{ \neg S_n \}\) is consistent. If \(\Gamma '_n \cup \{ S_n \}\) is consistent, then \(\Gamma '_{n+1}\) is \(\Gamma '_n \cup \{ S_n \}\) (by construction), so \(\Gamma '_{n+1}\) is consistent. If \(\Gamma '_n \cup \{ S_n \}\) is not consistent, then \(\Gamma '_{n+1}\) is \(\Gamma '_n \cup \{ \neg S_n \}\), so again \(\Gamma '_{n+1}\) is consistent.

Let \(\Gamma ^{+}\) be the union \(\bigcup _{n} \Gamma '_{n}\) of \(\Gamma '_{0}, \Gamma '_{1}, \ldots \). Evidently, \(\Gamma \) is a subset of \(\Gamma ^{+}\). We show that \(\Gamma ^{+}\) is a Henkin set.

Maximality holds because for each sentence \(S_n\), one of \(S_n\) or \(\neg S_n\) is in \(\Gamma '_{n+1}\) and therefore in \(\Gamma ^{+}\).

To show consistency, suppose that \(\Gamma ^{+}\) is inconsistent. Then there are sentences \(A_1,\ldots ,A_n\) in \(\Gamma ^+\) from which \(\bot \) is deducible. All of these sentences have to occur somewhere on the list \(S_1,S_2,\ldots \). Let \(S_j\) be the first sentence from \(S_1,S_2,\ldots \) that occurs after all the \(A_1,\ldots ,A_n\). Then all \(A_1,\ldots ,A_n\) are in \(\Gamma '_j\). So \(\Gamma '_j\) is inconsistent. But we’ve seen that all of the \(\Gamma '_n\) are consistent.

It remains to show that \(\Gamma ^{+}\) has the witnessing property: whenever \(\neg \forall x A\) is in \(\Gamma ^{+}\) then \(\Gamma ^+\) contains a corresponding sentence \(\neg A(x/c)\). Let \(A\) be any formula in which \(x\) is the only free variable. By construction, \(\Gamma '\) contains \(\neg \forall x A \to \neg A(x/c)\), for some constant \(c\). Since \(\Gamma ^{+}\) extends \(\Gamma '\), it also contains this sentence. So if \(\Gamma ^{+}\) contains \(\neg \forall x A\) then it contains \(\neg A(x/c)\), by MP and exercise 3.6.

Next, we show how to read off a model from a Henkin set. The model’s domain will consist of sets of closed terms, so that we can stipulate that each constant \(c\) denotes the set of all terms \(t\) for which \(c=t\) is in the Henkin set. Let’s have a closer look at these sets.

Definition 3.3

A binary relation \(R\) on some domain \(D\) is an equivalence relation if it is

(i)
reflexive: for every \(x \in D\), \(x R x\);
(ii)
symmetric: for every \(x, y \in D\), if \(x R y\) then \(y R x\); and
(iii)
transitive: for every \(x, y, z \in D\), if \(x R y\) and \(y R z\) then \(x R z\).

Lemma 3.4

If \(\Gamma \) is a Henkin set in a language \(\mathfrak {L}\) then the relation \(R\) that holds between \(\mathfrak {L}\)-terms \(t,s\) iff \(t=s \in \Gamma \) is an equivalence relation.

Proof. By A6, \(\vdash t=t\). So \(t=t \in \Gamma \) by exercise 3.6. Symmetry and transitivity follow similarly from exercise 2.13.

An equivalence relation partitions the domain over which it is defined into distinct cells so that within each cell, all objects stand in the relation to one another. These cells are called equivalence classes. If \(R\) is an equivalence relation and \(x\) an object in the domain, we write ‘\([x]_{R}\)’ for the equivalence class of \(R\) that contains \(x\). That is, \([x]_{R} = \{ y \in D \,:\, x R y \}\). If the relation \(R\) is clear from the context, we may simply write ‘\([x]\)’.

When we’re talking about a Henkin set \(\Gamma \), the relevant equivalence relation is the one defined in lemma 3.4. In what follows, ‘\([t]\)’ therefore denotes the set of all terms \(s\) for which \(t=s \in \Gamma \).

Exercise 3.9

Which of these are equivalence relations on the set of natural numbers? (a) \(x R_1 y\) iff \(x > y\); (b) \(x R_2 y\) iff \(x > y\) or \(y > x\); (c) \(x R_3 y\) iff there are natural numbers \(m,n\) such that \({x \times 2^m} = {y \times 2^n}\).

Describe the equivalence classes of the relations that are equivalence relations.

The model \(\mathfrak {M}\) that we’ll construct from a Henkin set \(\Gamma \) will have as its domain the set of all equivalence classes \([t]\), where \(t\) is a closed term in the language of \(\Gamma \). By exercise 3.7, \([t]\) always contains an individual constant. So we can also say that \(D\) is the set of all \([c]\) where \(c\) is an individual constant in the language of \(\Gamma \).

We’ll stipulate that the interpretation function \(I\) of \(\mathfrak {M}\) assigns \([c]\) to each constant \(c\). So we’ll have \(⟦ c ⟧^{\mathfrak {M}} = [c]\). We’ll extend this to function terms, so that \(⟦ f(c) ⟧^{\mathfrak {M}} = [f(c)]\). But we can’t directly stipulate this, because interpretation functions don’t assign denotations to complex terms. We have to interpret \(f\) as denoting a function on \(D\). By definition 2.9, The denotation of \(f(c)\) is the denotation of \(f\) applied to the denotation of \(c\). Since the denotation of \(c\) is \([c]\), we want the denotation of \(f\) to be a function that returns \([f(c)]\) for input \([c]\). So we’ll stipulate that for any one-place function symbol \(f\) and constant \(c\), \(I(f)\) is the function that maps \([c]\) to \([f(c)]\). Similarly for many-place function symbols.

This kind of stipulation can go wrong. Suppose \([c]\) contains two constants \(c\) and \(d\), and \([f(c)] \neq [f(d)]\). Our stipulation would entail that \(I(f)\) returns \([f(c)]\) for input \([c]\) and \([f(d)]\) for input \([d]\). But if \(c\) and \(d\) are both in \([c]\) then \([c] = [d]\). And a function can’t return two different values for the same input. We must show that this problem can never arise.

A similar issue arises for the interpretation of predicates. To ensure that \(Ft\) is in \(\Gamma \) iff \(\mathfrak {M} \Vdash Ft\), we’ll stipulate that \(I(F)\) is the set of all \([t]\) for which \(Ft \in \Gamma \). This set isn’t well-defined if there are cases where \([t]\) contains two terms \(t\) and \(s\) for which \(Ft \in \Gamma \) but \(Fs \notin \Gamma \).

The following lemma shows that neither problem can arise.

Lemma 3.5

If \(f\) is an \(n\)-ary function symbol, \(P\) an \(n\)-ary predicate symbol, and \(s_{1}, \ldots , s_{n}, t_{1}, \ldots , t_{n}\) are terms such that \([s_{1}] = [t_{1}], \ldots , [s_{n}] = [t_{n}]\), then

(i)
\([f(s_1,\ldots ,s_n)] = [f(t_{1},\ldots ,t_{n})]\);
(ii)
\(P(s_1,\ldots ,s_n) \in \Gamma \; \text {iff} \; P(t_1,\ldots ,t_n) \in \Gamma \).

Proof. Assume \([s_{i}] = [t_{i}]\) for each \(i=1,2,\ldots ,n\). That is, \(\Gamma \) contains \(s_{i}\!=\!t_{i}\), for each \(i=1,2,\ldots ,n\).

(i). By A6 (and exercise 3.6), \(f(s_{1},\ldots ,s_{n})=f(s_{1},\ldots ,s_{n})\) is in \(\Gamma \). By \(n\) instances of A7 and MP (and exercise 3.6), it follows that \(f(s_{1},\ldots ,s_{n})=f(t_{1},\ldots ,t_{n})\) is in \(\Gamma \), which entails that \([f(s_1,\ldots ,s_n)] = [f(t_{1},\ldots ,t_{n})]\).

(ii). Assume \(P(s_{1},\ldots ,s_{n})\) is in \(\Gamma \). By \(n\) instances of A7 and MP (and exercise 3.6), \(P(t_{1},\ldots ,t_{n})\) is in \(\Gamma \). The converse holds by the same reasoning.

Lemma 3.5 ensures that the following definition is legitimate.

Definition 3.4

If \(\Gamma \) be a Henkin set in a language \(\mathfrak {L}\) then the Henkin model \(\mathfrak {M}_{\Gamma }\) of \(\Gamma \) is defined as follows.

The domain \(D\) of \(\mathfrak {M}_{\Gamma }\) is the set \(\{ [c] \,:\, c \text { is an individual constant of } \mathfrak {L} \}\).

The interpretation function \(I\) of \(\mathfrak {M}_{\Gamma }\) maps

(i)
each individual constant \(c\) to \([c]\),
(ii)
each \(n\)-ary function symbol \(f\) to the function on \(D\) that maps any \(n\) objects \([t_1],\ldots ,[t_n]\) in \(D\) to \([f(t_1,\ldots ,t_n)]\),
(iii)
each (non-logical) \(n\)-ary predicate symbol \(P\) to the set of all \(n\)-tuples \(\langle [t_1],\ldots ,[t_n] \rangle \) such that \(P(t_1,\ldots ,t_n) \in \Gamma \).

Now remember what we’re trying to achieve. We want to show that every consistent set of sentences is satisfiable. We’ve shown in lemma 3.3 that every such set can be extended to a Henkin set. Definition 3.4 tells us how to construct a model from this Henkin set. It remains to show that all members of the Henkin set (and therefore all members of the original set) are true in this model.

We’ll need the following two facts.

Lemma 3.6

If \(\mathfrak {M}\) is a Henkin model and \(t\) a closed term then \(⟦ t ⟧^{\mathfrak {M}} = [t]\).

Proof. The proof is by induction on complexity of \(t\). The base case is covered by clause (i) in definition 3.4. So let \(t\) be \(f(t_{1},\ldots ,t_{n})\). Then \begin {align*} ⟦ f(t_{1},\ldots ,t_{n})⟧^{\mathfrak {M}} &= ⟦ f⟧^{\mathfrak {M}}(⟦ t_{1}⟧^{\mathfrak {M}},\ldots ,⟦ t_{n}⟧^{\mathfrak {M}}) &&\text { by def.\ 2.10}\\[0.5em] &= ⟦ f⟧^{\mathfrak {M}}([t_{1}],\ldots ,[t_{n}]) &&\text { by ind.\ hyp.}\\[0.5em] &= [f(t_{1},\ldots ,t_{n})] &&\text { by def.~3.4.(iii)} \qed \end {align*}

Lemma 3.7

If \(\mathfrak {M}\) is a Henkin model and \(A\) a formula then \(\mathfrak {M} \Vdash \forall x A\) iff \(\mathfrak {M} \Vdash A(x/c)\) for all individual constants \(c\).

Proof. We first show that if \(\mathfrak {M}^{d:[c]}\) is a model just like \(\mathfrak {M}\) except that it assigns \([c]\) to \(d\), and \(d\) does not occur in \(A\), then \begin {equation} \tag {1} \mathfrak {M}^{d:[c]} \Vdash A(x/d)\text { iff }\mathfrak {M} \Vdash A(x/c). \end {equation} There are two cases to consider. If \(d\) is \(c\) then \(\mathfrak {M}^{d:[c]}\) is \(\mathfrak {M}\) and (1) holds trivially. If \(d\) is a constant other than \(c\), then \(d\) does not occur in \(A(x/c)\). So \(\mathfrak {M}^{d:[c]}\) and \(\mathfrak {M}\) agree on the interpretation of all symbols in \(A(x/c)\) and we have \(\mathfrak {M}^{d:[c]} \Vdash A(x/c)\) iff \(\mathfrak {M} \Vdash A(x/c)\) by the coincidence lemma (lemma 2.1). Also, by the extensionality lemma (lemma 2.2), \(\mathfrak {M}^{d:[c]} \Vdash A(x/d)\) iff \(\mathfrak {M}^{d:[c]} \Vdash A(x/c)\). So (1) holds.

Now, by definition 2.10, \(\mathfrak {M} \Vdash \forall x A\) iff \(\mathfrak {M}' \Vdash A(x/d)\) for every model \(\mathfrak {M}'\) that differs from \(\mathfrak {M}\) at most in the object assigned to \(d\), where \(d\) is the alphabetically first constant that does not occur in \(A\). Since each such \(\mathfrak {M}'\) has the same domain as \(\mathfrak {M}\), the set of such \(\mathfrak {M}'\) is precisely the set of variants \(\mathfrak {M}^{d:[c]}\) of \(\mathfrak {M}\). So \(\mathfrak {M} \Vdash \forall x A\) iff \(\mathfrak {M}^{d:[c]} \Vdash A(x/d)\) for every constant \(c\), which, by (1), is the case iff \(\mathfrak {M} \Vdash A(x/c)\) for every constant \(c\).

Lemma 3.8: Truth Lemma

If \(\mathfrak {M}\) is the Henkin model of a Henkin set \(\Gamma \) in a language \(\mathfrak {L}\), then for every \(\mathfrak {L}\)-sentence \(A\), \(\mathfrak {M} \Vdash A\) iff \(A \in \Gamma \).

Proof by induction on complexity of \(A\).

Base case: \(A\) is atomic. There are two subcases.

Assume that \(A\) is an identity sentence \(s=t\). Then \(\mathfrak {M} \Vdash s=t\) iff \(⟦ s⟧^{\mathfrak {M}} = ⟦ t⟧^{\mathfrak {M}}\) by definition 2.10, iff \([s] = [t]\) by lemma 3.6, iff \(s=t \in \Gamma \) by definition of the equivalence classes.

Assume next that \(A\) is an atomic sentence \(P(t_{1},\ldots ,t_{n})\), where \(P\) is non-logical. Then \(\mathfrak {M} \Vdash P(t_{1},\ldots ,t_{n})\) iff \((⟦ t_{1}⟧^{\mathfrak {M}},\ldots ,⟦ t_{n}⟧^{\mathfrak {M}}) \in ⟦ P⟧^{\mathfrak {M}}\) by definition 2.10, iff \(([t_{1}],\ldots ,[t_{n}]) \in ⟦ P⟧^{\mathfrak {M}}\) by lemma 3.6, iff \(P(t_{1},\ldots ,t_{n}) \in \Gamma \) by definition 3.4.

Inductive step: \(A\) is composed of other sentences. We have three subcases. The first two, where \(A\) is \(\neg B\) or \(B \to C\), are easy and go exactly as in lemma 1.6. I’ll skip them.

For the final subcase, assume that \(A\) is \(\forall x B\), for some formula \(B\). We have: \(\mathfrak {M} \Vdash \forall x B\) iff \(\mathfrak {M} \Vdash B(x/c)\) for every constant \(c\) by lemma 3.7, iff \(B(x/c) \in \Gamma \) for every constant \(c\) by induction hypothesis, iff \(\forall x B \in \Gamma \) by exercise 3.8.

With that, we have all the ingredients for the completeness proof.

Theorem 3.3: Completeness of the first-order calculus (Gödel 1929)

If \(\Gamma \vDash A\) then \(\Gamma \vdash A\).

Proof. We argue by contraposition. Assume \(\Gamma \not \vdash A\). Then \(\Gamma \cup \{\neg A\}\) is consistent, by lemma 3.1. By lemma 3.3, \(\Gamma \cup \{ \neg A \}\) can be extended to a Henkin set \(\Gamma ^{+}\) in an extended language \(\mathfrak {L}^{+}\). By the Truth Lemma, the Henkin model of \(\Gamma ^{+}\) satisfies every sentence in \(\Gamma ^{+}\), and therefore every sentence in \(\Gamma \cup \{\neg A\}\). So there is a model that satisfies all sentences in \(\Gamma \) but doesn’t satisfy \(A\). So \(\Gamma \not \vDash A\).

Technically, the model that figures in this proof is not a model for the original language \(\mathfrak {L}\) of \(\Gamma \) and \(A\), because it also interprets the added individual constants. If this bothers you, we can define an \(\mathfrak {L}\)-model that falsifies \(\Gamma \vDash A\) by restricting the interpretation function of the Henkin model to \(\mathfrak {L}\)-constants, without changing the domain. This is called the reduct of the Henkin model to \(\mathfrak {L}\).

Exercise 3.10

Assume that \(\Gamma _{0}, \Gamma _{1}, \ldots \) are consistent sets of sentences in a first-order language \(\mathfrak {L}\), and that each \(\Gamma _{i}\) is a subset of \(\Gamma _{i+1}\). Show that their union \(\bigcup _{i} \Gamma _{i}\) is consistent.

3.4Unintended models

We’ve now shown that the first-order calculus is both sound (theorem 2.4) and complete (theorem 3.3): \(\Gamma \vDash A\) iff \(\Gamma \vdash A\). As Gödel pointed out, this has a curious consequence:

Theorem 3.4: Compactness of first-order logic (Gödel 1929)

If every finite subset of a set of sentences is satisfiable then the set itself is satisfiable.

Proof. Let \(\Gamma \) be a set of first-order sentences. Assume that \(\Gamma \) is not satisfiable. So \(\Gamma \vDash \bot \). By completeness, it follows that \(\Gamma \vdash \bot \): there is a deduction of \(\bot \) from \(\Gamma \). This deduction can only use finitely many sentences from \(\Gamma \). So there is a finite subset \(\Gamma '\) of \(\Gamma \) for which \(\Gamma ' \vdash \bot \). By soundness, \(\Gamma ' \vDash \bot \).

Why is this curious? Well, for one, it is easy to come up with cases where a conclusion is entailed by infinitely many premises, but not by any finite subset of those premises. For example, consider the premises ‘I like the number 0’, ‘I like the number 1’, ‘I like the number 2’, and so on, for all natural numbers. Together, these premises entail ‘I like all natural numbers’. But no finite subset of the premises does. This doesn’t contradict the compactness theorem because the inference isn’t logically valid: it depends on the interpretation of ‘0’, ‘1’, ‘2’, …, and ‘natural number’. Still, it’s curious that first-order logic doesn’t allow any such inference to be valid. More directly, compactness implies that there is no way to fully pin down the interpretation of ‘0’, ‘1’, ‘2’, etc. in a first-order language. Let’s think through this more carefully.

Many branches of mathematics can be seen as studying certain mathematical structures. A mathematical structure consists of a set of objects together with some operations and relations on these objects. For example, arithmetic studies operations and relations on the natural numbers. A formalized, first-order theory of arithmetic will have nonlogical symbols for, say, addition (‘\(+\)’), multiplication (‘\(\times \)’), and the less-than relation (‘\(<\)’). We might add an individual constant ‘\(n\)’ for each number \(n\), but for the sake of economy we can instead have a single constant ‘0’ for 0 and another symbol ‘\(s\)’ for the successor function that maps each number \(n\) to its successor \(n+1\). Instead of ‘1’, we can then write ‘\(s(0)\)’; ‘2’ is ‘\(s(s(0))\)’, and so on.

In logic, we abstract away from the meaning of the nonlogical symbols. In arithmetic, we don’t. In arithmetic, ‘\(1+2=3\)’ (that is, ‘\(s(0) + s(s(0)) = s(s(s(0)))\)’) is a definite claim about the natural numbers. We say that it has an intended interpretation, or an intended model.

The intended model of arithmetic, also known as the standard model of arithmetic, or \(\mathfrak {N}\), has as its domain the set of natural numbers \(\mathbb {N}\); it interprets ‘0’ as denoting 0, ‘+’ as denoting the addition function +, ‘\(\times \)’ as denoting the multiplication function \(\times \), ‘\(s\)’ as denoting the successor function \(s\), and ‘\(<\)’ as denoting the less-than relation \(<\). We can represent this as a list: \(\langle \mathbb {N}, 0, +, \times , s, < \rangle \). The list represents the “structure” of the natural numbers. It identifies a set \(\mathbb {N}\) and some operations and relations on that set that are picked out by the nonlogical symbols of the language. (0 counts as a zero-ary operation.)

Of course, the language of arithmetic also has unintended models. For example, we can let the domain be \(\{\) Athens, Berlin \(\}\) and use an interpretation function that maps ‘0’ to Athens, ‘+’ and ‘\(\times \)’ to the function that maps any pair of cities to Athens, ‘\(s\)’ to the function that maps each city to itself, and ‘<’ to the empty relation. In this model, ‘\(s(0) + s(s(0)) = s(s(s(0)))\)’ is true, but so is ‘\(s(0) = 0\)’.

Exercise 3.11

Is Lagrange’s Theorem (every natural number is the sum of four squares) true in this model?

We might hope that such unintended models can always be ruled out by laying down sufficiently many postulates in the formal language of arithmetic. For example, if our theory of arithmetic contains ‘\(s(0) \ne 0\)’ then the above model (with Athens and Berlin) is no longer a model of the theory. So we can rule out some unintended models. The compactness theorem dashes any hope of ruling out all unintended models. Let \(\mathrm {Th}(\mathfrak {N})\) be the set of all sentences true in the standard model \(\mathfrak {N}\). This is called the theory of \(\mathfrak {N}\). It contains all postulates we could possibly lay down, assuming that they should all be true in the standard model. By compactness, there is a model of \(\mathrm {Th}(\mathfrak {N})\) whose domain includes junk elements that clearly aren’t natural numbers.

Theorem 3.5: Non-standard Models of Arithmetic

\(\mathrm {Th}(\mathfrak {N})\) has models in which some object is not reachable from 0 by finitely many applications of the successor function. (Such models are called non-standard models of arithmetic.)

Proof. Let \(\mathfrak {L}_A^+\) be the language of arithmetic with an added individual constant \(c\). Let \(\mathrm {Th}(\mathfrak {N})^+\) be the set of sentences that extends \(\mathrm {Th}(\mathfrak {N})\) by \[ c \ne 0, \quad c \ne s(0), \quad c \ne s(s(0)), \quad c \ne s(s(s(0))), \quad \ldots . \] So \(\mathrm {Th}(\mathfrak {N})^+\) says that \(c\) is different from 0, 1, 2, and so on, for all natural numbers. Every finite subset of \(\mathrm {Th}(\mathfrak {N})^+\) is obviously satisfiable: it is true in the standard model \(\mathfrak {N}\), interpreting \(c\) as a sufficiently large number. By the compactness theorem, it follows that \(\mathrm {Th}(\mathfrak {N})^+\) is satisfiable. Any model of \(\mathrm {Th}(\mathfrak {N})^+\) must have an element (denoted by \(c\)) that is not identical to any natural number: it can’t be reached from 0 by finitely many applications of the successor function. The reduct of any such model to the original language of arithmetic (discarding the interpretation of \(c\)) is a model of \(\mathrm {Th}(\mathfrak {N})\).

Compactness thus reveals a deep expressive limitation of first-order logic: the structure of the natural numbers can’t be captured in a first-order language.

Here is a simpler example of this kind of limitation. For each \(n>0\), it is easy to find a first-order sentence \(S_n\) that is true in all and only the models with exactly \(n\) elements. For example, \(\exists x \exists y (x \ne y \land \forall z (z=x \lor z=y))\) is true in all and only models with exactly two elements. (Compare exercise 2.16.) In that sense, we can capture the intended size of a domain, as long as that size is a fixed finite number. But there is no first-order sentence that is true in all and only the models with infinitely many elements.

To see why, let \(S_\infty \) be such a sentence. Its negation \(\neg S_\infty \) would be true in all and only the finite models. Now consider the set consisting of \(\neg S_\infty \) together with \(\neg S_1, \neg S_2, \neg S_3, \ldots \). All finite subsets of this set are satisfiable. By compactness, the whole set is satisfiable. But there is no model whose domain not infinite, and yet also has no finite size.

The following theorems show that the situation is even worse. In section 3.1, we saw that there are many levels of infinity: many infinite cardinalities. None of them can be captured in first-order logic, insofar as there is no sentence (nor even a set of sentences) that would force a model to have a particular infinite cardinality, or even to fall in any non-trivial range of infinite cardinalities.

Theorem 3.6: The (Downward) Löwenheim-Skolem Theorem

If a set of sentences in a countable first-order language has a model, then it has a countable model.

Proof. Let \(\Gamma \) be such a set. By lemma 3.3, \(\Gamma \) can be extended to a Henkin set \(\Gamma ^{+}\). By lemma 3.8, the Henkin model of \(\Gamma ^{+}\) is a model of \(\Gamma \). Its domain consists of equivalence classes of closed terms in the language of \(\Gamma ^{+}\). If the language of \(\Gamma \) is countable, then so is the language of \(\Gamma ^{+}\). So the domain of the Henkin model is countable.

Theorem 3.7: The Upward Löwenheim-Skolem Theorem (Tarski 1935)

If a set of sentences in a countable first-order language has an infinite model, then it has models of every infinite cardinality.

Proof sketch. The proof requires relaxing our stipulation that a first-order language must only have countably many individual constants. The completeness theorem can be proved without this assumption (although the proof becomes more complicated, as we can no longer appeal to enumerations of the sentences in the language). Compactness still follows from completeness, and we get a slightly generalized downward Löwenheim-Skolem theorem according to which every satisfiable set of sentences has a model whose cardinality is at most equal to the cardinality of the language.

Now let \(\Gamma \) be a set of first-order sentences in a countable language with an infinite model. From the downward theorem, we know that \(\Gamma \) has a countably infinite model \(\mathfrak {M}\). Let \(\kappa \) be any cardinal greater than \(\aleph _0\). Expand the language of \(\Gamma \) by \(\kappa \) new individual constants. For each pair of these constants \(c_{i}\) and \(c_{j}\), add the sentence \(c_{i} \neq c_{j}\) to \(\Gamma \), thereby creating the set \(\Gamma ^{+}\). All finite subsets of \(\Gamma ^{+}\) are satisfied in \(\mathfrak {M}\), with the (finitely many) new constants in the set interpreted as distinct objects in \(\mathfrak {M}\). By the compactness theorem (for uncountable languages), \(\Gamma ^{+}\) has a model \(\mathfrak {M}^{+}\). All the \(\kappa \) new constants denote distinct objects in this model, so \(\mathfrak {M}^+\) has at least \(\kappa \) objects. By the generalized downward theorem, it follows that \(\Gamma ^{+}\) has a model whose cardinality is exactly \(\kappa \). The reduct of that model to the language of \(\Gamma \) is a model of \(\Gamma \) with cardinality \(\kappa \).

The downward theorem was proved by Thoralf Skolem in 1920, building on an earlier proof sketch by Leopold Löwenheim. The (ill-named) upward theorem, due to Alfred Tarski, requires compactness and could only be proved after 1929. It entails, among other things, that \(\mathrm {Th}(\mathfrak {N})\) has non-standard models of every infinite cardinality.

Exercise 3.12

(a) Can you find a first-order sentence that is only true in infinite models? (Hint: let \(f\) be a function that is injective, but not surjective.) (b) Is the negation of this sentence only true in finite models?

Exercise 3.13

Consider a first-order language with a binary predicate symbol ‘\(P\)’ for the “parent” relation, so that \(Pxy\) means (on its intended interpretation) that \(x\) is a parent of \(y\). We can then define the “grandparent” relation \(P^2(x,y)\) as \(\exists z_1 (Pxz_1 \land Pz_1y)\), the “great-grandparent” relation \(P^3(x,y)\) as \(\exists z_1 \exists z_2 (Pxz_1 \land Pz_1z_2 \land Pz_2y)\), and so on. Show that there is no way to define the “ancestor” relation (no matter what other nonlogical symbols we add to the language): there can be no formula \(A(x,y)\) that is equivalent to the infinite disjunction \(P(x,y) \lor P^2(x,y) \lor P^3(x,y) \lor \ldots \).

Exercise 3.14

Let \(\mathfrak {N}^{c}\) be exactly like the standard model of arithmetic \(\mathfrak {N}\), except that the number 2 is replaced by Julius Caesar: the domain of \(\mathfrak {N}^c\) is \(\{ 0, 1, \text {Caesar}, 3, 4, \ldots \}\); ’\(s\)’ denotes a function that maps 0 to 1, 1 to Caesar, Caesar to 3, …; ‘\(+\)’ denotes a function that maps 1 and 1 to Caesar, 1 and Caesar to 3, and so on. Is \(\mathfrak {N}^{c}\) a model of \(\mathrm {Th}(\mathfrak {N})\)? In what way is it less interesting than the non-standard models of theorem 3.5?

Exercise 3.15

Explain why every satisfiable set of first-order sentences has a model whose domain is a set of natural numbers.

Next chapter: 4 Theories