Use and Mention

Many logical fallacies arise due to the confusion of use and mention, even though the topic is pretty simple. It's a good distinction to master. It shows up in programming, too, and by the way, plays a central role in Gödel's Incompleteness Theorem due to the fact that it allows the construction of a particular kind of self-referential statement.

What's the Difference?

Go through the following sentences, making sure you understand them. (Some sentences were borrowed from Smullyan's Satan, Cantor, and Infinity.)

The uses are unquoted and the mentions are quoted.

Here's another example, inspired by a question asked by Jimmy Kimmel. One of the following questions is a question about branding, and the other one is useful to show people that they might not be as informed as they thought they might be. Which is which?

Quining

xkcdquine.png

Now let's define the quine of a phrase as the phrase followed by its quotation, i.e., a use followed by its mention. So the quine of the word "woot" is:

Look at these two sentences. The second is... self-referential!

Wow. We got self-reference without the use of an indexical (such as the word "this"). That is, the following sentences are self-referential, but only because they have an indexical:

Sometimes indexicals are self-referential, but sometimes they are not.

See how the indexical doesn't refer to the whole sentence but rather to a part of it? The quining trick is stronger in a way; there is no ambiguity.

A famous quine:

And another:

You can also do quining by preceding with a quotation, as is done in Gödel, Escher, Bach. That makes some quines sound a little better in English. From this book: (heh, I said "this")

Oh, I got one:

Woah! If we can just find a way to represent the notion of quining within TNT, we can create a statement expressing its own non-theoremhood, and that would show TNT to be either inconsistent or incomplete! Wait.... I think someone beat me to that idea.... What was his name again?

Use-Mention in Programming

Here is a Python script:

print(3 + 4)
print("3 + 4")

The first line prints a line with one character: 7 and the second prints the five characters 3   +   4. See the use and mention here?