3値論理
ウカシェヴィッチの3値論理(英語版)は1920年にヤン・ウカシェヴィチにより提案された3値論理である。ウカシェヴィチは、アリストテレス未来偶然命題を形式化するためにこの論理を提案したとされている。具体的には、
未来偶然命題の真理値は真でも偽でもない第3の値を取る
という条件のもと、自身の提唱した命題論理の公理体系
p → (q → p)
(p → (q → r)) → ((p → q) → (p → r))
(¬p → ¬q) → (q → p)
を満たす新たな論理体系を考案した。この真偽の決まらない第3の真理値を定め、その記号に I を使った。これはindeterminate(不定)から来ており、未来偶然命題の真理値は I であるとする。
具体的にはこの I を含めた論理を以下のような条件を満たす真理関数 v(x) を用いて定義した。
v(T) = 1
v(F) = 0
v(I) = 0.5
v(A) = v(B) ↔ A = B
この真理関数を用いて、以下のように論理演算を定義している。
v(A ∧ B) = min(v(A), v(B))
v(A ∨ B) = max(v(A), v(B))
v(¬A) = 1 - v(A)
v(A → B) = min(1, 1 - v(A) + v(B))
これを真理値表で表すと以下のようになる。
ウカシェヴィチの3値論理は排中律および無矛盾律が成り立たない点に注意が必要である。
この3値論理は古典論理学では解決できないラッセルのパラドックスが解消されることが知られている。具体的には
X = {x | x ∉ x}
という集合があった場合 X ∈ X = I とおくとラッセルのパラドックスにおける矛盾が発生しなくなる。
よってこの論理式の真理値は T か F かわからない、すなわち U である。
以上を踏まえると、この3値論理の真理値表は以下のようになる。
クリーネの 3値論理は U → U = U であることを除けばウカシェヴィチの3値論理と同様である。
この U → U = U という定義は、しばしば批判されることがある。 これは A = U とした場合、A → A = U となり古典論理学では恒真式とされていた A → A = T が成り立たなくなるためである。実際この式は「A が未定義であるならば A は未定義である」ということを意味しており、これを真としないのは直感に反しているといえる。
1984年、レイモンド・ターナー(Raymond Turner)はクリーネの3値論理をベースにデフォルト推論の理論を展開している。
クリーネの 3値論理はSQL等にも応用されている、SQLでは比較式にNULLが入った場合、真 (true) でも偽 (false) でもない不明 (unknown) という値を返す。