Re: 'Unknown' and three-valued logic
- Posted by Juergen Luethje <jluethje at gmx.de> Nov 24, 2002
- 398 views
Derek wrote: <snip> > Looks fine to me, except that 'not U' should be 'U', paradoxically. Because > if A is unknown then 'not A' means that we know what A is, however we don't. I think I now have an idea how it can be interpreted: If the answer to the question "Does it rain tomorrow?" is unknown, then the answer to the question "Does it *not* rain tomorrow?" is also unknown. > Non boolean operations will always produce an unknown value though when at > least one of the operands is unknown. > > A | B | A + B | A - B | A * B | A = B > --+---+-------+---------+--------+-------- > 1 | 1 | 2 | 0 | 1 | 1 > 1 | U | U | U | U | U > U | 1 | U | U | U | U > U | U | U | U | U | U I see. I'd like to implement some of those operations, too. I think I will then use {} for UNKNOWN rather than -1, so that any number is a 'known' value. But if I implement non boolean operations, I can't call the whole stuff 'three-valued logic' any more, can I? What is then a proper name for it? Maybe something like "Arithmetic that can handle 'unknown'"? Many thanks! Best regards, Juergen