Chapter 30 Extensionality

Recall that TFL is a truth-functional language. Its connectives are all truth-functional, and all that we can do with TFL is key sentences to particular truth values. We can do this directly. For example, we might stipulate that the TFL sentence ‘P’ is to be true. Alternatively, we can do this indirectly, offering a symbolization key, e.g.:


Big Ben is in London.

But recall from chapter 10 that this is just a means of specifying ‘P’s truth value; the symbolization key statement amounts to something like the following stipulation:

  • The TFL sentence ‘P’ is true if⁠f Big Ben is in London.

And we emphasized in chapter 10 that TFL cannot handle differences in meaning that go beyond mere differences in truth value.

30.1 Symbolizing versus translating

FOL has some similar limitations. It gets beyond mere truth values, since it enables us to split up sentences into terms, predicates and quantifiers. This enables us to consider what is true of a particular object, or of some or all objects. But that’s it.

To unpack this a bit, consider this symbolization key:


blankx teaches Logic III in Calgary

This stipulation does not carry the meaning of the English predicate across into our FOL predicate. We are simply stipulating something like this:

  • C(x)’ and ‘blankx teaches Logic III in Calgary’ are to be true of exactly the same things.

So, in particular:

  • C(x)’ is to be true of exactly those things which teach Logic III in Calgary (whatever those things might be).

This is an indirect way of stipulating which things a predicate is true of.

Alternatively, we can stipulate predicate extensions directly. For example, we can stipulate that ‘C(x)’ is to be true of Richard Zach, and Richard Zach alone. As it happens, this direct stipulation would have the same effect as the indirect stipulation, since Richard, and Richard alone, teaches Logic III in Calgary. Note, however, that the English predicates ‘blank is Richard Zach’ and ‘blank teaches Logic III in Calgary’ have very different meanings!

The point is that FOL has no resources for dealing with nuances of meaning. When we interpret FOL, all we are considering is what the predicates are true of, regardless of whether we specify these things directly or indirectly. The things a predicate is true of are known as the extension of that predicate. We say that FOL is an extensional language because FOL does not represent differences of meaning between predicates that have the same extension.

This is why we speak of symbolizing English sentences in FOL. It is doubtful that we are translating English into FOL, for translation should preserve meaning.

30.2 Extensions

We can stipulate directly what predicates are to be true of. And our stipulations can be as arbitrary as we like. For example, we could stipulate that ‘H(x)’ should be true of, and only of, the following objects:

  • Justin Trudeau

  • the number π

  • every top-F key on every piano ever made

Armed with this interpretation of ‘H(x)’, suppose we now add to our symbolization key:


Justin Trudeau


Angela Merkel


the number π

Then ‘H(j)’ and ‘H(p)’ will both be true, on this interpretation, but ‘H(a)’ will be false, since Angela Merkel was not among the stipulated objects.

This process of explicit stipulation is sometimes described as stipulating the extension of a predicate. Note that, in the stipulation we just gave, the objects we listed have nothing particularly in common. This doesn’t matter. Logic doesn’t care about what we humans (at a particular moment) think ‘naturally goes together’; to logic, all objects are on an equal footing.

Any well-defined collection of objects is a potential extension of a one-place predicate. The example above shows one way of stipulating the extension of ‘H(x)’ by enumeration, i.e., we simply list the objects in the extension of ‘H(x)’. We can also stipulate the extension, as we have also already seen, by giving an English predicate, such as ‘blankx teaches Logic III at Calgary’ or ‘blankx is an even integer between 3 and 9’. The latter would specify an extension consisting of, and only of, 4, 6, and 8.

Note that some predicates of English, such as ‘blankx is a round square’, are not true of anything. In this case we say the extension of the predicate is empty. We do allow empty extensions, and we can stipulate that the extension of ‘H(x)’ is to be empty simply by not listing any members. (It may be odd to consider collections of no things, but logic is odd this way sometimes.)

30.3 Many-place predicates

All of this is quite easy to understand when it comes to one-place predicates, but it gets messier when we deal with two-place predicates. Consider a symbolization key like:


blankx loves blanky

Given what we said above, this symbolization key should be read as saying:

  • L(x,y)’ and ‘blankx loves blanky’ are to be true of exactly the same things.

So, in particular:

  • L(x,y)’ is to be true of x and y (in that order) if⁠f x loves y.

It is important that we insist upon the order here, since love—famously—is not always reciprocated. (Note that ‘x’ and ‘y’ on the right here are symbols of augmented English, and that they are being used. By contrast, ‘x’ and ‘y’ in ‘L(x,y)’ are symbols of FOL, and they are being mentioned.)

That is an indirect stipulation. What about a direct stipulation? This is also tricky. If we simply list objects that fall under ‘L(x,y)’, we will not know whether they are the lover or the beloved (or both). We have to find a way to include the order in our explicit stipulation.

To do this, we can specify that two-place predicates are true of pairs of objects, where the order of the pair is important. Thus we might stipulate that ‘B(x,y)’ is to be true of, and only of, the following pairs of objects:

  • Lenin, Marx

  • de Beauvoir, Sartre

  • Sartre, de Beauvoir

Here the angle-brackets keep us informed concerning order. Suppose we now add the following stipulations:






de Beauvoir



Then ‘B(l,m)’ will be true, since Lenin, Marx is in our explicit list, but ‘B(m,l)’ will be false, since Marx, Lenin is not in our list. However, both ‘B(b,r)’ and ‘B(r,b)’ will be true, since both de Beauvoir, Sartre and Sartre, de Beauvoir are in our explicit list.

To make these ideas more precise, we would need to develop some very elementary set theory. Set theory has formal apparatus which allows us to deal with extensions, ordered pairs, and so forth. However, set theory is not covered in this book. So I shall leave these ideas at an imprecise level. Nevertheless, the general idea should be clear.

30.4 Semantics for identity

Identity is a special predicate of FOL. We write it a bit differently than other two-place predicates: ‘x=y’ instead of ‘I(x,y)’ (for example). More important, though, is that its interpretation is fixed, once and for all.

If two names refer to the same object, then swapping one name for another will not change the truth value of any sentence. So, in particular, if ‘a’ and ‘b’ name the same object, then all of the following will be true:

A(a) A(b)
B(a) B(b)
R(a,a) R(b,b)
R(a,a) R(a,b)
R(c,a) R(c,b)
xR(x,a) xR(x,b)

Some philosophers have believed the reverse of this claim. That is, they have believed that when exactly the same sentences (not containing ‘=’) are true of a and b, then a and b are the very same object. This is a highly controversial philosophical claim—sometimes called the identity of indiscernibles—and our logic will not subscribe to it; we allow that exactly the same things might be true of two distinct objects.

To bring this out, consider the following interpretation:


P. D. Magnus, Tim Button


P. D. Magnus


Tim Button


For every primitive predicate we care to consider, that predicate is true of nothing.

Suppose ‘A’ is a one-place predicate; then ‘A(a)’ is false and ‘A(b)’ is false, so ‘A(a)A(b)’ is true. Similarly, if ‘R’ is a two-place predicate, then ‘R(a,a)’ is false and ‘R(a,b)’ is false, so that ‘R(a,a)R(a,b)’ is true. And so it goes: every atomic sentence not involving ‘=’ is false, so every biconditional linking such sentences is true. For all that, Tim Button and P. D. Magnus are two distinct people, not one and the same!

30.5 Interpretations

We defined a valuation in TFL as any assignment of truth and falsity to sentence letters. In FOL, we are going to define an interpretation as consisting of four things:

  1. 1.

    the specification of a domain;

  2. 2.

    each sentence letter we care to consider is assigned a truth value;

  3. 3.

    each name that we care to consider is assigned exactly one object within the domain;

  4. 4.

    for each predicate that we care to consider (apart from ‘=’), a specification of what things (in what order) the predicate is to be true of.

We don’t need to specify anything for ‘=’, since it has a fixed meaning, namely that of identity. Everything is identical to itself, and only to itself.

The symbolization keys that we considered in part V consequently give us one very convenient way to present an interpretation. We will continue to use them in this chapter. Following the discussion of section 30.2, we now also allow extensions specified by enumerations on the right side, e.g.,


heads of state, numbers


Justin Trudeau, Angela Merkel, π

is a perfectly good way of specifying an interpretation, as is


0, 1, 2


0,1, 0, 2, 1, 2

We could have specified the same extension (on this particular domain) by giving the English predicate ‘blankx is less than blanky’.

However, it is sometimes also convenient to present an interpretation diagrammatically. To illustrate (literally): suppose we want to consider just a single two-place predicate, ‘R(x,y)’. Then we can represent it just by drawing an arrow between two objects, and stipulate that ‘R(x,y)’ is to hold of x and y if⁠f there is an arrow running from x to y in our diagram. As an example, we might offer:

This diagram could be used to describe an interpretation whose domain is the first four positive whole numbers, and which interprets ‘R(x,y)’ as being true of and only of:

1, 2, 2, 3, 3, 4, 4, 1, 1, 3

Equally we might offer this diagram:

The interpretation specified by this diagram can also be given by listing what’s in the domain and in the extension of ‘R(x,y)’:


1, 2, 3, 4


1, 3, 3, 1, 3, 4, 1, 1, 3, 3

If we wanted, we could make our diagrams more complex. For example, we could add names as labels for particular objects. Equally, to symbolize the extension of a one-place predicate, we might simply draw a circle around some particular objects and stipulate that the thus encircled objects (and only them) are to fall under the predicate ‘H(x)’, say. To specify multiple predicates we could use colored (or dashed, dotted) lines for arrows and circles.