In Logic: The Laws of Truth the identity predicate is introduced as an extension of general predicate logic (GPL). The following propositions are given as motivating examples:

(1) "Mark Twain is Samuel Langhorne Clemens."

(2) "Mark Twain is a novelist."

Smith says that while (2) can be translated into GPL, (1) cannot. This is because the "is" in (2) expresses predication (i.e. it is part of the predicate "is a novelist"), whereas the "is" in (1) expresses identity (in this case that Mark Twain and Samuel Langhorne Clemens are one and the same person). GPL has no way of expressing identity and therefore, cannot express the proposition in (1).

To remedy this, the syntax of GPL is augmented with the identity predicate, giving us general predicate logic with identity (GPLI). Given the glossary m: Mark Twain; s: Samuel Langhorne Clemens, (1) can now be translated into GPLI as m = s.

However, it's not clear to me why (1) cannot be adequately translated into GPL. Couldn't we set up the following dictionary:

m: Mark Twain
Sx: x is Samuel Langhorne Clemens 

and translate (1) into GPL simply as Sm? We can think of the name m as picking out the individual referred to by the name "Mark Twain" and the extension of Sx as the set of objects containing that same individual, so that Sm is true. What is wrong with this approach?

The distinction between the "is" of predication and the "is" of identity seems to be attributed to Frege (I think the English translation of the paper is On Concept and Object?), but I'm not able to understand the gist of his arguments.

  • You will have to duplicate every proper name by a predicate, and then add rules connecting predicates to their names that duplicate properties of identity, like substitution and transitivity. A single predicate dispenses with all of that. And it also lets you identify quantified variables, which your procedure does not cover.
    – Conifold
    Nov 12, 2023 at 8:44
  • Thanks @Conifold. When you say we'd need extra rules, do you mean postulates such as Mx ⟷ Sx (where Mx: x is Mark Twain; Sx: x is Samuel Clemens) to establish symmetry, so that if we know Mx, then we can infer Sx (just as if we know m = s, then we can infer s = m)?
    – user51462
    Nov 13, 2023 at 1:47

2 Answers 2


The standard approach in predicate logic is to use names to identify things, and predicates to identify properties. Samuel Clemens is a name, not a property.

It is possible to do as you suggest and use a predicate as a combination of properties that identify a thing. One way to do this would be to treat names as definite descriptions and use Russell's theory of definite descriptions. Quine advocated this approach. Alternatively, we could think of Mx as "x has the property of being called Mark Twain". This approach is sometimes referred to as predicativism or even "being-called predicativism". Both have been debated in the literature of philosophical logic (e.g. references 1 and 2 below).

Potentially these approaches allow us to eliminate names altogether. But it would be incongruent to use Mark Twain as a name and Samuel Clemens as a predicate. If you really wanted to go down this route, a better option would be to treat both as predicates and write their identity as:

(∃x)(Mx ∧ Sx)

The problem then is that this says there is at least one thing that is both Mark Twain and Samuel Clemens. To express uniqueness you would want to write something like:

(∃x)((Mx ∧ Sx) ∧ (∀y)((My ∨ Sy) → (x = y)))

Notice how we still need the identity relation. We can't escape from it: it's just too useful. This is why Logic: The Laws of Truth says that we need identity to express sentences like, There are two dogs, or, There are between ten and twenty dogs (page 299).

Using names in the standard way is more convenient because it is built into the calculus that a name has a unique referent, so it is much simpler to write:

s = m

Another drawback of identifying individuals using a predicate is that the identity relation has properties that we usually take to hold universally: it is reflexive, symmetric and transitive. So, for example, from s = m together with m = b we can infer s = b. If we wished to use predicates instead, we would have to write these relations out in full. Not impossible, just extra work.

  1. Delia Graff Fara, "Names Are Predicates", Philosophical Review, Vol. 124, 2015, pp 59-117.

  2. Michael Rieppel, "Quinean Predicativism". Philosophical Studies, Vol. 178, 2021, pp. 23-44.

  • Thank you @Bumble. Would object anonymity be another reason that necessitates the identity predicate? In the example in this post, the objects in the domain (the ys) don't have names, so the approach proposed in my post falls apart as we wouldn't even be able to create the name predicates. (I don't know if that means that it is impossible to express the claim of injectivity in plain GPL though?)
    – user51462
    Nov 13, 2023 at 1:30
  • Potentially, yes. One might wish to say that there is a single individual that is both King of the UK and King of Australia, without naming him. You would need the identity predicate to express uniqueness. Also, you might want to express a general principle such as "everything is identical with itself" which would be tricky to write in first order logic without an identity predicate.
    – Bumble
    Nov 13, 2023 at 5:15

Edit: the answer below address the question whether the identity predicate is needed in first-order logic. On re-reading the OP's post, that might not have been exactly what they were asking.

Yes, you can express the proposition "Mark Twain is S. L. Clemens" as "S(m)" if you like. This trades a single binary predicate symbol for many unary predicates (perhaps infinitely many). But just because you eliminated this particular use of equality does not at all mean that you have shown that we can eliminate all uses of equality.

Suppose you want to say that a real-valued function f: R→R is injective (i.e. distinct inputs yield distinct outputs). With equality, this is simple: the proposition "f is injective" can be expressed as

∀x ∀y (f(x) = f(y) → x = y),

the universe of quantification being the set of real numbers R.

How do you propose to eliminate this use of the equality symbol?

If your solution is to have a predicate Y(x) for each variable y to express "y=x", observe that such predicates would not behave like ordinary unary predicates. In particular, for an ordinary unary predicate P(x) the proposition "P(x)" and "∀y P(x)" are equivalent, but not so for Y(x). This indicates that "Y(x)" must be treated as a binary predicate, and you end up with a binary equality predicate "Eq(x,y)" anyway.

In other words, yes, in the simplest kinds of sentences which consist of nothing but an equality and two constant terms, you can instead of saying "t=u" get by with adding a unary predicate T for each term t and say "T(u)". However, as soon as quantification enters the picture (and quantification is very much the point of doing first-order logic in the first place), this approach falls apart.

  • I'm not sure I follow your reasoning for Y(x) being binary. Presumably "have a predicate Y(x) for each variable y" means that you have a large number of Y_y(x) predicates, one for each y - and not that you have a 'generic' Y(x) that changes definition as you work. In that case Y_y(x) is unary, as it is fixed to its specific y, and only depends on the single input variable.
    – Birjolaxew
    Nov 12, 2023 at 19:34
  • Yes, I intended to indicate the relation between the variable y and the "unary predicate" Y by the lower-case vs. upper-case relation, just like with the term t and the predicate T. Of course, you could also indicate it by writing, say E_y(x). My point is that E_y(x) is not a unary predicate (a predicate containing only the variable x) because it does not behave like unary predicates (predicates containing only the variable x) under quantification. Nov 12, 2023 at 20:17
  • Does it not? A specific predicate (e.g. Y_10(x), defined as "x is 10") behaves like a unary predicate under quantification (Y_10(x) is equivalent to ∀y Y_10(x)). We are simply defining one of these for each y, each of which behave unary under quantification.
    – Birjolaxew
    Nov 12, 2023 at 21:01
  • @Birjolaxew I explain it the answer why E_y(x) does not behave like a unary predicate P(x) if y is a variable: namely, ∀y P(x) is equivalent to P(x0, but ∀y E_y(x) is not equivalent to E_y(x). This shows that E_y(x) needs to be treated as a binary predicate Eq(y,x) where the variable y also occurs free. As you say, E_10(x) is a unary predicate, but that's a different matter. Nov 12, 2023 at 21:03
  • 1
    It is your explanation in the answer that I am not following. You seem to be using the term "Y(x)" for the binary predicate Y(x,y), where y is not fixed - but I believe OP is asking about the specific implementation Y_y(x) (i.e. why can't we just define E_1(x), E_2(x), E_3(x), ..., if y ∈ ℤ⁺). I cannot see how your argument applies to the latter.
    – Birjolaxew
    Nov 12, 2023 at 21:13

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .