In the previous post, I said “I get the funny feeling that for him [C.J. Date] a sentence or expression functions normally at first, but when he stares at it too long it suddenly loses its transparency….” Here I want to unpack that doubtlessly cryptic statement a bit. I am doing this as a kind of finger-exercise, mainly for the fun of it, and not necessarily because it will help resolve some important issue.

In “SOME OPERATORS ARE MORE EQUAL THAN OTHERS”, the second chapter of his *LOGIC AND DATABASES: THE ROOTS OF RELATIONAL THEORY*, C.J. Date introduces the names NAME(‘TRUE’) and NAME(‘FALSE’) to use as symbols for BOOLEAN(NAME(‘TRUE’) ) and BOOLEAN(NAME(‘FALSE’)). He doesn’t use, of course, the selectors I am using (to avoid ambiguity); instead, he *mentions* the names. That is to say, he is talking about the symbols TRUE and FALSE. All page references will be to* LOGIC AND DATABASES*:

If *p* is a proposition, it has a truth value. For the purposes of this chapter, if *p* is true, I’ll denote its truth value by TRUE; it it’s false, I’ll denote its truth value by FALSE. In computing terms, we might say we have a data type called BOOLEAN that contains just these two truth values, and the literal representations of those values are TRUE and FALSE, respectively.

(p. 42)

Then for a moment, he *uses* the symbols to talk about the truth values themselves. For a moment, the symbols stop being the things seen, and function transparently as windows through which we see the things denoted. But, feeling conflicted, he immediately labels his* use* of the symbols as a kind of perhaps-understandable confusion:

We might also say, more simply but less accurately, that the legal values of type BOOLEAN just are TRUE and FALSE; strictly speaking, however, TRUE and FALSE aren’t values as such — rather, they’re literals, or symbols, that denote certain values, just as, e.g., the numeral 3 isn’t a number as such but rather a literal, or symbol (more colloquially, a digit or numeral) that denotes a certain number.

(p. 42)

But no, when ‘TRUE’ and ‘FALSE’ are being *used* to denote truth values, it is perfectly accurate to say that the legal values of type BOOLEAN just are TRUE and FALSE. Likewise, when ‘3’ is being *used* to denote a number, 3 is a number as such. It is as if Date were peering through the symbol-as-window, so to speak, letting it perform its function of letting us see the thing the symbol denotes….when, all of a sudden, the window going all milkily opaque on him, all he sees is the now suddenly non-transparent glass. It is as if he said, first, ‘Cleopatra was a Ptolemaic ruler of Egypt’, but then immediately felt the need to correct himself and say, ‘Well, this is a bit inaccurate, since the name ‘Cleopatra’ wasn’t a Ptolemaic ruler of Egypt’.

Similarly, Date is brought up short when he sees the expressions *x* + 4 and 2*x* – 1 in the equation *x* + 4 = 2*x* – 1:

But the trouble is, we use the symbol “=” to mean other things as well — other things, that is, in addition to identity as such…. By way of illustration, consider the following equation:

*x* + 4 = 2*x* -1

The symbol x here is meant to denote some number, and it’s easy to see by solving the equation that the number in question is five. But the expressions on the two sides of the “=” symbol are self-evidently not identical: that is, the “=” symbol here does *not* denote identity. Rather, it is the *values denoted by* the expressions on the two sides of the “=” symbol that are identical.

(p. 45)

But the “=”, rather, MATH_CONSTANT(‘=’), *does* denote identity, because the expressions are being* used* to denote the number that each expression resolves to, given the expression on the other side. The expressions are not being *mentioned* — for example, the author of the equation is not talking about the fact that each expression contains the symbol ‘*x*‘ and references at least one number. ‘*x* + 4′ names a quantity when made resolvable by equating it with ‘2*x* – 1′, and *vice versa*. MATH_VARIABLE(‘x’) MATH_OPERATOR(‘+’) NUMBER(NUMERAL(‘4’)) MATH_CONSTANT(‘=’) NUMBER(NUMERAL(‘2’)) MATH_OPERATOR(‘*’) MATH_VARIABLE(‘x) MATH_OPERATOR(‘-‘) NUMBER(NUMERAL(‘1’)). The quantity named by the one expression is identical with the quantity named by the other expression. The hermeneutical principle of charity compels us to interpret the expressions this way: otherwise, we don’t get a symbol “=” that means something other than identity; instead, we simply get a blatantly false statement when there is an absurdly easy path to getting a true statement.

Not so, then, that “…we use the symbol ‘=’ to mean other things as well — other things, that is, in addition to identity as such…” It is used to mean just identity. It would continue to denote identity even if, perversely, we chose to *mention* the expressions instead of *using* them, for we would end up with, not a true statement that relied on a different meaning of ‘=’, but with a false statement using ‘=’ to denote identity. Notice that I am not exercising enough control here to avoid vacillating between using single quotation marks and double quotation marks to indicate I am talking about the symbol for the equals constant.

In spite of saying a number of false things on the way towards his conclusion, it’s hard to argue with that conclusion: But saying this does not commit me to asserting that nothing is subtly wrong with it. I am too lazy now to try to dig and see if there is a subtle, non-obvious but not necessarily unimportant way in which Date is going wrong here; and anything I came up with would probably seem rather scholastic anyhow.

To sum up: Equality means identity. An expression of the form *x* = *y* is almost always shorthand for one of the form value_of(*x*) = value_of(*y*).

(p. 47)

Except I would add that even in the case of expression(*x*) = expression(*y*) — for example, ‘2*x* -1′ = ‘2*x* – 1′, equality also means identity.

We can perhaps forgive Date for using (with whatever qualms) one moment the symbol as a window through which he sees the thing denoted, but seeing the next moment nothing but a window become thoroughly milky and completely opaque. For ordinary language can start out using a name, then shift mid-stream to mentioning the same occurrence of the name by the time one gets to the middle of the sentence. I think the example is Quine’s:

Giorgione was so called because of his size.

And on that note, I will show one of Giorgione’s paintings:

and since we are now on the topic of beauty, I will go all Plato’s SYMPOSIUM on my few (0, 1, 2…) readers:

*Maganda si Brad Pit*. Being that gorgeous should be illegal. I will attempt to say that in Tagalog this way: *Dapat ilegal ang magiging ganoong maganda*, but that is almost certainly either ungrammatical or unidiomatic (*hindi pangwikian*). Perhaps someone with better Tagalog may correct me.

Update: 12/18/2012: Made various corrections.