You've all seen it. Sentences like "this sentence is false": if they're false, they're true, and vice versa, so they can't be either true or false. Some people solve this problem by doing something really complicated: they introduce infinite type hierarchies wherein every sentence you can express is given a "type", which is an ordinal number, and every sentence can only refer to sentences of lower type. "This sentence is false" is not a valid sentence there, because it refers to itself, but no ordinal number is less than itself. Eliezer Yudkowsky mentions but says little about such things. What he does say, I agree with: ick!
In addition to the sheer icky factor involved in this complicated method of making sure sentences can't refer to themselves, we have deeper problems. In English, sentences can refer to themselves. Heck, this sentence refers to itself. And this is not a flaw in English, but something useful: sentences ought to be able to refer to themselves. I want to be able to write stuff like "All complete sentences written in English contain at least one vowel" without having to write it in Spanish or as an incomplete sentence.1 How can we have self-referential sentences without having paradoxes that result in the universe doing what cheese does at the bottom of the oven? Easy: use fuzzy logic.
Now, take a nice look at the sentence "this sentence is false". If your intuition is like mine, this sentence seems false. (If your intuition is unlike mine, it doesn't matter.) But obviously, it isn't false. At least, it's not completely false. Of course, it's not true, either. So it's not true or false. Nor is it the mythical third truth value, clem2, as clem is not false, making the sentence indeed false, which is a paradox again. Rather, it's something in between true and false--"of medium truth", if you will.
So, how do we represent "of medium truth" formally? Well, the obvious way to do that is using a real number. Say that a completely false sentence has a truth value of 0, a completely true sentence has a truth value of 1, and the things in between have truth values in between.3 Will this work? Why, yes, and I can prove it! Well, no, I actually can't. Still, the following, trust me, is a theorem:
Suppose there is a set of sentences, and there are N of them, where N is some (possibly infinite) cardinal number, and each sentence's truth value is a continuous function of the other sentences' truth values. Then there is a consistent assignment of a truth value to every sentence. (More tersely, every continuous function [0,1]^N -> [0,1]^N for every cardinal number N has at least one fixed point.)
So for every set of sentences, no matter how wonky their self- and cross-references are, there is some consistent assignment of truth values to them. At least, this is the case if all their truth values vary continuously with each other. This won't happen under strict interpretations of sentences such as "this sentence's truth value is less than 0.5": this sentence, interpreted as black and white, has a truth value of 1 when its truth value is below 0.5 and a truth value of 0 when it's not. This is inconsistent. So, we'll ban such sentences. No, I don't mean ban sentences that refer to themselves; that would just put us back where we started. I mean we should ban sentences whose truth values have "jumps", or discontinuities. The sentence "this sentence's truth value is less than 0.5" has a sharp jump in truth value at 0.5, but the sentence "this sentence's truth value is significantly less than 0.5" does not: as its truth value goes down from 0.5 down to 0.4 or so, it also goes up from 0.0 up to 1.0, leaving us a consistent truth value for that sentence around 0.49.
Edit: I accidentally said "So, we'll not ban such sentences." That's almost the opposite of what I wanted to say.
Now, at this point, you probably have some ideas. I'll get to those one at a time. First, is all this truth value stuff really necessary? To that, I say yes. Take the sentence "the Leaning Tower of Pisa is short". This sentence is certainly not completely true; if it were, the Tower would have to have a height of zero. It's not completely false, either; if it were, the Tower would have to be infinitely tall. If you tried to come up with any binary assignment of "true" and "false" to sentences such as these, you'd run into the Sorites paradox: how tall would the Tower be if any taller tower were "tall" and any shorter tower were "short"? A tower a millimeter higher than what you say would be "tall", and a tower a millimeter shorter would be "short", which we find absurd. It would make a lot more sense if a change of height of one millimeter simply changed the truth value of "it's short" by about 0.00001.
Second, isn't this just probability, which we already know and love? No, it isn't. If I say that "the Leaning Tower of Pisa is extremely short", I don't mean that I'm very, very sure that it's short. If I say "my mother was half Irish", I don't mean that I have no idea whether she was Irish or not, and might find evidence later on that she was completely Irish. Truth values are separate from probabilities.
Third and finally, how can this be treated formally? I say, to heck with it. Saying that truth values are real numbers from 0 to 1 is sufficient; regardless of whether you say that "X and Y" is as true as the product of the truth values of X and Y or that it's as true as the less true of the two, you have an operation that behaves like "and". If two people have different interpretations of truth values, you can feel free to just add more functions that convert between the two. I don't know of any "laws of truth values" that fuzzy logic ought to conform to. If you come up with a set of laws that happen to work particularly well or be particularly elegant (percentiles? decibels of evidence?), feel free to make it known.
1. ^ The term "sentence fragment" is considered politically incorrect nowadays due to protests by incomplete sentences. "Only a fragment? Not us! One of us standing alone? Nothing wrong with that!"
2. ^ I made this word up. I'm so proud of it. Don't you think it's cute?
3. ^ Sorry, Eliezer, but this cannot be consistently interpreted such that 0 and 1 are not valid truth values: if you did that, then the modest sentence "this sentence is at least somewhat true" would always be truer than itself, whereas if 1 is a valid truth value, it is a consistent truth value of that sentence.
I don't think it's fair to demand a full explanation of a topic that's been around for over two decades (though a link to an online treatment would have been nice). Warrigal didn't 'come up with' fractional values for truth. It's a concept that's been around (central?) in Eastern philosophy for centuries if not millenia, but was more-or-less exiled from Western philosophy by Aristotle's Law of the Excluded Middle.
Fuzzy logic has proven itself very useful in control systems and in AI, because it matches the way people think about the world. Take Hemingway's Challenge to "write one true [factual] sentence" (for which you would then need to show 100% exact correspondence of words to molecules in all relevant situations) and one's perspective can change to see all facts as only partially true. ie, with a truth value in [0,1].
The statement "snow is white" is true if and only if snow is white, but you still have to define "snow" and "white". How far from 100% even reflection of the entire visible spectrum can you go before "white" becomes "off-white"? How much can snow melt before it becomes "slush"? How much dissolved salt can it contain before it's no longer "snow"? Is it still "snow" if it contains purple food colouring?
The same analysis of most concepts reveals we inherently think in fuzzy terms. (This is why court cases take so damn long to pick between the binary values of "guilty" and "not guilty", when the answer is almost always "partially guilty".) In fuzzy systems, concepts like "adult" (age of consent), "alive" (cryonics), "person" (abortion), all become scalar variables defined over n dimensions (usually n=1) when they are fed into the equations, and the results are translated back into a single value post-computation. The more usual control system variables are things like "hot", "closed", "wet", "bright", "fast", etc., which make the system easier to understand and program than continuous measurements.
Bart Kosko's book on the topic is Fuzzy Thinking. He makes some big claims about probability, but he says it boils down to fuzzy logic being just a different way of thinking about the same underlying math. (I don't know if this gels with the discussion of 'truth functionalism' above) However, this prompts patterns of thought that would not otherwise make sense, which can lead to novel and useful results.