Extensionality and Leibniz' Law
Extensional contexts are usually defined as positions in a sentence at which co-refering terms can be substituted without affecting the truth-value of the sentence. So 'Cicero' occupies an extensional position in 'Cicero denounced Catiline', but not in 'Philip said that Cicero denounced Catiline'. One might think that a term t occupies an extensional position in A(t) if and only if all instances of the following schema are true:
(LL) x=y -> A(x) <-> A(y).
'x=y' is true iff 'x' and 'y' co-refer, and 'A(x) <-> A(y)' is true iff 'A(x)' and 'A(y)' have the same truth-value. So to say that all instances of (LL) are true is to say that
(E1) for any terms x and y, A(x) and A(y) have the same truth-value whenever x and y co-refer.
And wasn't this just the definition of an extensional context?
Well, this is one reading of the definition. But there is another, arguably more useful, reading. On this alternative reading, t occupies an extensional context in A(t) iff
(E2) for any terms x and y, A(x) and A(y) have the same truth-value whenever x in A(x) co-refers with y in A(y).
This second definition does not support (LL).
Two definitions -- so two notions of extensionality. They come apart if different occurrences of a term can differ in reference.
For example, let A(t) be the formula (x)(x=t) in a predicate logic in which free variables denote, just like constants. A(x) is true: it says that all things are self-identical. But A(y) may be false, even if x and y corefer: A(y) says that all things are identical to y. So by the standards of (E1), this is not an extensional context. The relevant form of (LL) is invalid:
x=y -> (x)(x=x) <-> (x)(x=y).
On the other hand, according to (E2) the context is extensional: In A(x), x has been captured by the quantifier; since bound variables don't refer, there is no co-refering term y that one could substitute for x in A(x).
This may sound like a technical trick, but the verdict delivered by (E2) seems to me correct: there is an important sense in which ordinary predicate logic has only extensional contexts; so (x)(x=t) should count as extensional.
For another example, let A(t) be 'Philip believes that t denounced Catiline'. A(Cicero) is true and A(Tully) false, although Cicero=Tully. So (LL) fails and the context is non-extensional according to (E1).
However, assume Frege was right about attitude reports. Then 'Philip believes that' opens a scope in which every expression denotes what is ordinarily its sense. So in A(Cicero), 'Cicero' denotes not Cicero, but the sense of 'Cicero'. Since the sense of 'Cicero' differs from the sense of 'Tully', the two names do not co-refer in A(Cicero) and A(Tully). An expression x that co-refers with 'Cicero' in A(Cicero) would have to be an expression whose (ordinary) sense is identical to the (ordinary) sense of 'Cicero'. Presumably, if there is such an expression x, then A(x) is true. So the context is extensional according to (E2).
Again, there is an important sense in which this really should count as extensional. The main point of Frege's theory is to ensure that the truth-value of every sentence is determined by the referents (i.e., extensions) of its parts -- that is, to render all contexts extensional.
So one shouldn't say that Leibniz' Law is valid whenever the relevant context A(t) is extensional.
(Incidentally, (E1) and (E2) can't be quite right, as they wrongly entail that 'Cicero' occupies an extensional position in 'Wo believes that either Cicero denounced Catiline or London has eight railway stations'. I'm not sure how to fix this.)
hey wo,
Cool post and related to some things I've been thinking about. Here are a few thoughts.
I think quantificational contexts are non-extensional contexts in an important sense. `x = x' is true at an assignment g and so is `exists x (x = x)' -- but `x = y' may be true at assignment g, while `\exists x (x = y)' is false at that same assignment. So `\exists x' is not truth-functional. Quantifiers are non-extensional in that sense. So, I'd like to hear more about this "important sense in which ordinary predicate logic has only extensional contexts".
Lets say we are only dealing with predicate logic. There are (at least) two ways to make the semantics of quantification compositional: (i) we assign variables (i.e. the expressions simpliciter) a single semantic value (or denotation if you like), i.e. a function from assignments to individuals, (ii) we assign variables semantic values only relative to a linguistic context. We can think of this second strategy as assigning semantic values to expression-occurrences or <expression, linguistic environment> pairs. Given these two strategies we can state two corollaries of the (relevant) compositionality principle.
(S1) for any terms x and y, A(x) and A(y) have the same truth-value whenever x and y have the same semantic value.
(S2) for any terms x and y, A(x) and A(y) have the same truth-value whenever the semantic value of x in A(x) is the same as the semantic value of y in A(y).
These seem to me to have not much to do with Leibniz's Law anymore since we have ascended to the semantic level.
In any case, I want an unqualified version of Leibniz's Law, i.e. if x and y are the same thing, then they (it) has all the same properties (as itself).
(LL*) x = y --> lambda v. [A(v)] (x) <--> lambda u. [A(u)] (y)
All instances of LL* will be true just in case for any terms x and y, lambda v. [A(v)] (x) and lambda u. [A(u)] (y) have the same truth-value whenever x and y co-refer. I guess what I've done is made the contexts on the rhs extensional...hmm, I can't remember where I was going with that...
I think I'm confused about what purpose your alternative definition of "extensional context" has -- if its just "positions in a sentence at which co-refering terms (relative to that position) can be substituted without affecting the truth-value of the sentence". If we are doing Frege-style compositionality of extension, the fact that all contexts are extensional will just follow from compositionality. Is that your point? Sorry that is a bit all over the place.