I’ve been thinking a lot about giving intended models to non-classical logics recently, and this has got me very muddled about truth functionality.

Truth functionality seems like such a simple notion. An *n*-ary connective, , is truth functional just in case the truth value of depends only on the truth values of .

But cashing out what “depends” means here is harder than it sounds. Consider, for example, the following (familiar) connectives.

- iff, necessarily, .
- iff or .

Why, in the second example but not the first, does the truth value of depend on the truth value of *p*? They’ve both been given *in terms* of the truth value of *p*. It would be correct, but circular, to say that the truth value of doesn’t depend on the truth value of *p*, because it’s truth value isn’t definable from the truth value of *p* using only truth functional vocabulary in the metalanguage. But clearly this isn’t helpful – for we want to know what counts as truth functional vocabulary whether in the metalanguage or anywhere. For example, what distinguishes the first from the second example. To say that is truth functional and isn’t because “or” is truth functional and “necessarily” isn’t, is totally unhelpful.

Usually the circularity is better hidden than this. For example, you can talk about “assignments” of truth values to sentence letters, and say that if two assignments agree on the truth values of then they’ll agree on . But what are “assignments” and what is “agreement”? One could simply stipulate that assignments are functions in extension (sets of ordered pairs) and that f and g agree on some sentences if f(p)=g(p) for each such sentence p.

But there must be more restrictions that this: presumably the assignment that assigns p and q F and T is not an acceptable assignment. There are assignments which give the same truth values to p and q, but different truth values to , making disjunction non truth functional. Thus we must restrict ourselves to acceptable assignments; assignments which preserve truth functionality of the truth functional connectives.

Secondly, there needs to be enough assigments. The talk of assignments is only ok if there is an assignment corresponding to the intended assignment of truth values to English sentences. I beleive that it’s vague whether p, just in case it’s vague whether “p” is true (this follows from the assertion that the T-schema is determinate.) Thus if there’s vagueness in our langauge, we had better admit assignments such that it can be vague whether f(p)=T. Thus the restriction to precise assignments is not in general OK. Similarly, if you think the T-schema is necessary, the restriction of assignments to functions in extension is not innocent either – e.g., if p is true but not necessary, we need an assignment such that f(p)=T and that possibly f(p)=F.

Let me take an example where I think it really matters. A non-classical logician, for concreteness take a proponent of Lukasiewicz logic, will typically think there are more truth functional connectives (of a given arity) than the classical logician. For example, our Lukasiewicz logician thinks that the conditional is not definable from negation and disjunction. (NOTE: I do not mean truth functional on the continuum of truth values [0, 1] – I mean on {T, F} in a metalanguage where it can be vague that f(p)=T.)) “How can this be?” you ask, surely we can just count the truth tables: there are truth functional n-ary connectives.

To see why it’s not so simple consider a simple example. We want to calculate the truth table of .

- : reads T just in case the second column reads T, if the the first column does.
- : reads T just in case the first or the second column reads T.
- : reads T if the first column doesn’t read T.

The classical logician claims that the truth table for should be the same as the truth table for . This is because she accepts the equivelance between the “the first column is T if the second is” and “the second column is T or the first isn’t” in the metalanguage. However the non-classical logician denies this – the truth values will differ in cases where it is vague what truth value the first and second columns read. For example, if it is vague whether both columns read T, but the second reads T if the second does (suppose the second column reads T iff 87 is small, and the second column reads T iff 88 is small), then the column for will determinately read T. But the statement that reads T will be equivalent to an instance of excluded middle in the metalanguage which fails. So it will be vague in that case whether it reads T.

The case that is truth functional for this non-classical logician seems to me pretty compelling. But why, then, can we not make exactly the same case for the truth functionality of ? I see almost no disanalogy in the reasoning. Suppose I deny that negation and the truth operator are the only unary truth functional connectives, I claim is a further one. However, the only cases where negation and the truth operator come apart from necessity is when it is contingent what the first column of the truth table reads.

I expect there is some way of unentangling all of this, but I think, at least, that the standard explanations of truth functionality fail to do this.