So, finally, I'm getting around to three-valued logic!
To start, why are we even looking at three-valued logic? We want to get to fuzzy reasoning, and three valued logic really doesn't do the job. But it's a useful starting point, because in general, most of us have only worked with standard logics where statements are either true or false. In Fuzzy logic, we're don't have that - and that can lead to a lot of complexity. So looking at something simple that shows us how something either than "true" or "false" can actually make sense in logic.
The idea of three-valued logic is, quite simply, to add an alternative to true or false: neither. We usually abbreviate the truth values to T, F, and N. What does N mean? It depends on exactly which three-valued logic you choose. And already, we can start to see where some of the complexity is going to come from.
In traditional propositional or predicate logic, we can take statements, and assign them a truth value: either they're true, or they're false. Once we know whether they're true or false, we can use that knowledge to infer whether other statements are true or false. In general, in classical logic, the inference rules seem obvious. If you know that is true, then you know is true. It doesn't matter what is; if is false, then is true; if is true, then is true. No matter what, if you know that is true, then must be true.
In a three valued logic, that isn't necessarily the case. It all depends on what means. For example, you can define a three-valued logic where means "I don't know". In that case, you'd have inference rules like - meaning that if I know that is true, then I can infer that is also true. If means "I don't know", then is still true.
But doesn't have to mean "I don't know". It could mean "maybe". It could mean "neither" (in the sense of vagueness; Ann isn't really tall, but she isn't really not tall either). Or it could mean "nonsense", as in an invalid statement that can't be assigned a truth value. If it means "nonsense", then - that is, or meaningless nonsense is meaningless nonsense.
So there are many three-valued logics, depending on exactly what you want to mean, and how you want it to behave. Let's look at one particular three-valued logic, just to see how it works. We'll start with Kleene's strong three valued logic - generally written . is a three valued logic where means "unknown" or "uncertain". The basic logical operators in behave according to the truth table below:
So N behaves pretty much as you'd expect unknown to behave. If you know something is true, then true or unknown is true, because the unknown could be true or it could be false - and in either case, it makes sense that the result of a logical or should result in true.
Setting things up this way has some interesting effects. In , there are no tautologies. (A tautology is a statement that is always true.) Take a look at one of the classic ones: . If is true, then it's true. If is false, then it's true. But if $A$ is , then it's . Similarly, there are no contradictions: isn't false when is .
So just by adding this simple value, some of the most basic things that we've come to expect from logical reasoning, some of our most basic logical intuitions no longer work. We're going to have to get used to that as we get fuzzier.
So there are some unexpected things in our three-valued logic. But some things continue to work as we expect. One of the nice properties of is that its connectives are normal - which just means that if we limit ourselves to true and false, they'll behave the same way as they do in two-valued logic.
But normality doesn't give us as much as it might seem. We can take some pretty innocuous looking proofs from two-valued logic, and they'll fall apart in , even though they're built on normal connectives.
Consider one simple argument from propositional argument. Suppose that we know . In two-valued propositional logic, from that, we can infer that for any proposition P, either , or . That's not true in : suppose that A is N, and B is T. P could then be F.
This is, obviously, just a quick taste. But is pretty simple - you can figure out most of its properties just from this little bit here. But there are several other ways of defining three-valued logics. In the next post, we'll take a quick look at two others: , which is similar to but modifies the definition of implication so that is true; and , which is built on the idea that means something like undefined. also builds up some more interesting structure around the three-valued logic.