3値論理

3値論理 (英: ternary, three-valued or trivalent logic) とは、通常の真 (true) と偽 (false) から成る真偽値の他に、第3の真理値を持つ論理体系。多値論理のひとつである。 古典論理は排中律を前提としているが、クルト・ゲーデルによって「正しいが証明できない命題」が存在することが証明されたため、「二重否定の除去」を認めない直観主義論理などが成立した。これは様相論理学の一種ともいえ、「真であることが証明可能である」「偽であることが証明可能である」「真であるか偽であるかが証明不能である」の三つの真偽値を考える必要があった。 古典論理では真理値は真と偽の2値（真偽値）である。しかし哲学や数学などを論理で扱うに際し、「可能性」や「未定義」などのために、真理値として真でも偽でもない値が必要なことがある。例えば「明日は雨が降る」という命題は、明日になるまでは真とも偽とも言えない、と考えるのが妥当である。そこで、もうひとつの値を追加した論理の体系が3値論理である。非古典論理の子分野の多値論理の子分野でもある。 古くから漠然とは考えられていたことであり、古代ギリシアのアリストテレスは未来の出来事を表すには真でも偽でも無い可能性（未来偶然命題）として第3の値について言及している。しかし、現代的な3値論理は、1920年にヤン・ウカシェヴィチ（Jan Łukasiewicz）が発表した "On 3-valued logic" から始まるとされる。 3値論理は真 T でも偽 F でもない第3の値をとるが、この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 とおくとラッセルのパラドックスにおける矛盾が発生しなくなる。 ウカシェヴィチの3値論理の特徴として、論理値の数を容易に拡張可能なことがある。例えば真理値 T、F、I1、I2 の4値をもつ論理システムを作成する場合は、 v(T) = 1, v(F) = 0, v(I1) = 1/3, v(I2) = 2/3 と定義することで、同様に真理値体系を構築することが可能である。ウカシェヴィチは、このことを応用し、1930年に [0, 1] の任意の値を真理値とする無限値論理（英語版）を提唱している。 ウカシェヴィチの3値論理はラッセルのパラドックスにおける解法を示したが、以下に示すような新たなパラドックスを導出してしまうことでも知られている（莫少揆のパラドックス）。具体的には以下のような集合があったとする、 X = {x  |  x ∈ x → ¬ (x ∈ x)}. このとき X ∈ X を考えると、この値は T でも F でも I でも矛盾が発生する。 クリーネの3値論理は 1952年スティーヴン・コール・クリーネによってアルゴリズムの停止性についての議論の中で帰納関数の理論における「未定義」 (undefinedness) を表現するために提唱された。 なおクリーネは強3値論理と弱3値論理の2種類の3値論理を提唱しているが、ここでは強3値論理について述べる。弱3値論理は後述するボフバールの3値論理と同様の体系である。 クリーネの3つめの値 U は「未定義」または「計算中」である。この値は直感的には U は T か F のどちらかではあるが、どちらであるかわからない値といえる。この3値論理の公理化は帰結関係をベースにシークエント計算で行われる。 具体的な例として、以下のような論理式を考える。 U ∧ F この時、仮に U の部分が T か F の場合でも、結果は F にしかならない。よってこの論理式の真理値は F である。反対に U ∧ T とした場合、この論理式の真理値は U が T だったら T となり F だったら F となる。よってこの論理式の真理値は 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) という値を返す。 ボフバール（Bochvar）の3値論理は「嘘つきのパラドックス」に代表される意味論的自己言及のパラドックスの解決として1939年に考案された。 ボフバールは 3番目の真理値として M を提唱した、この M は「無意味」(meaningless) と解釈される。 ボフバールの3値論理は命題の構成要素に M があった場合、その真理値は無条件に M であると定義した。具体的には真理値は以下のようになる。 ボフバールはこの 3値論理に言明オペレータ T を追加しており、T は以下のようになる。 この 3値論理では「この文は偽である」といった命題の真理値を M とした場合、嘘つきのパラドックスは起こらなくなる。ただし、以下のような強嘘つき文 (strengthened liar sentence) の場合やはりパラドックスが起こる。 この文は偽 (F) か無意味 (M) である。