△述語理論の3値化
一階述語論理(FOL)を3値論理;既存のもの
一階述語論理(FOL)を3値論理に拡張した体系あるかchatGPTで調べてみました。
- クレーネの3値論理(Kleene’s Three-Valued Logic)
- ウカシェヴィッチの3値論理(Łukasiewicz’s Three-Valued Logic)
とのことで、まずクレーネの3値論理の確認を行いました。
ところが、途中途中での検証がコロコロ変わります。例えば、対偶も成り立つと言ったり成り立たないと言ったり、真偽値表を求めると矛盾したものが出されたりしました。
この方向で調べるのは断念しました。
3値の演算法を定める処から、自作?
真、偽、不明の3値の論理積と論理和を設計します。
先ず、2値の場合は次のようになります。
- T ∧ T = T
- T ∧ F = F
- F ∧ F = F
- T ∨ T = T
- T ∨ F = T
- F ∨ F = F
演算時の強度/優先度を表すと
- ∧演算 F>T
- ∨演算 T>F
この演算にUを導入するにあたって、FとTの関係を保持すると∧演算、∨演算には次の優先度が想定できます。
- ∧演算
- U>F>T
- F>U>T
- F>T>U
- ∨演算
- U>T>F
- T>U>F
- T>F>U
∧演算、∨演算の組み合わせは次の9タイプとなります。
-
- - - ∧∨とも Uを先頭、中央、最後に追加
- type1 ∧演算 U>F>T 、∨演算 U>T>F
- type2 ∧演算 F>U>T 、∨演算 T>U>F
- type3 ∧演算 F>T>U 、∨演算 T>F>U - - - F>Uを壊さない形で追加
- type4 ∧演算 F>U>T 、∨演算 T>F>U - - -
- type5 ∧演算 U>F>T 、∨演算 T>U>F
- type6 ∧演算 U>F>T 、∨演算 T>F>U
- type7 ∧演算 F>U>T 、∨演算 T>F>U
- type8 ∧演算 F>T>U 、∨演算 U>T>F
- type9 ∧演算 F>T>U 、∨演算 T>U>F
どのような理論体系があるか調べる
この9タイプに則った理論を調べます。
chatGPTの回答は次の通り。
Type | ∧ 優先度 | ∨ 優先度 | 対応論理 | 備考 |
---|---|---|---|---|
type1 | U > F > T | U > T > F | Bochvar’s Internal Logic | |
type2 | F > U > T | T > U > F | ・Kleene’s Weak 3‑Valued Logic (K3) ・Strong Kleene’s Logic ・Łukasiewicz’s 3‑Valued Logic (Ł₃) | |
type3 | F > T > U | T > F > U | ― | 対応体系無し※ |
type4 | F > U > T | T > F > U | ― | 対応体系無し |
type5 | U > F > T | T > U > F | ― | 対応体系無し |
type6 | U > F > T | T > F > U | ― | 対応体系無し |
type7 | F > U > T | U > T > F | ― | 対応体系無し |
type8 | F > T > U | U > T > F | ― | 対応体系無し |
type9 | F > T > U | T > U > F | ― | 対応体系無し |
当初、
- type2:Kleene’s Weak 3‑Valued Logic (K3)
- type4:Strong Kleene’s Logic
※さらに、当初type3とされたŁukasiewicz’s 3‑Valued Logic (Ł₃)も調べが進むうちにtype2であることが分かりました。
それぞれの真偽値表
chatGPTにそれぞれの真偽表を作成させましたが、出鱈目なものしかできませんでしたので、wikipediaを参考にし、自作しました。
Type1: AND = U > F > T, OR = U > T > F, 含意 = Bochvar
A | B | A∧B | A∨B | ¬A∨B | A→B | ¬B→¬A |
---|---|---|---|---|---|---|
T | T | T | T | ¬T∨T=F∨T=T | T | ¬T→¬T=F→F=T |
T | F | F | F | ¬T∨F=F∨F=F | F | ¬F→¬T=T→F=F |
T | U | U | T | ¬T∨U=F∨U=U | U | ¬U→¬T=U→F=U |
F | T | F | F | ¬F∨T=T∨T=T | T | ¬T→¬F=F→T=T |
F | F | F | F | ¬F∨F=T∨F=T | T | ¬F→¬F=T→T=T |
F | U | U | U | ¬F∨U=T∨U=U | U | ¬U→¬F=U→T=U |
U | T | U | U | ¬U∨T=U∨T=U | U | ¬T→¬U=F→U=U |
U | F | U | U | ¬U∨F=U∨F=U | U | ¬F→¬U=T→U=U |
U | U | U | U | ¬U∨U=U∨U=U | U | ¬U→¬U=U→U=U |
Type2: AND = F > U > T, OR = T > U > F, 含意 = Kleene 弱三値論理 (K3)
A | B | A∧B | A∨B | ¬A∨B | A→B | ¬B→¬A |
---|---|---|---|---|---|---|
T | T | T | T | ¬T∨T=F∨T=T | T | ¬T→¬T=F→F=T |
T | F | F | F | ¬T∨F=F∨F=F | F | ¬F→¬T=T→F=F |
T | U | U | T | ¬T∨U=F∨U=U | U | ¬U→¬T=U→F=T |
F | T | F | F | ¬F∨T=T∨T=T | T | ¬T→¬F=F→T=T |
F | F | F | F | ¬F∨F=T∨F=T | T | ¬F→¬F=T→T=T |
F | U | F | U | ¬F∨U=T∨U=T | T | ¬U→¬F=U→T=T |
U | T | U | T | ¬U∨T=U∨T=T | T | ¬T→¬U=F→U=T |
U | F | F | U | ¬U∨F=U∨F=U | U | ¬F→¬U=T→U=U |
U | U | U | U | ¬U∨U=U∨U=U | U | ¬U→¬U=U→U=U |
Kleene 弱三値論理 (K3)はA=T,B=Uで対偶が成り立っていません。(赤で表示)
Type2: AND = F > U > T, OR = T > U > F, 含意 = Strong Kleene
A | B | A∧B | A∨B | ¬A∨B | A→B | ¬B→¬A |
---|---|---|---|---|---|---|
T | T | T | T | ¬T∨T=F∨T=T | T | ¬T→¬T=F→F=T |
T | F | F | F | ¬T∨F=F∨F=F | F | ¬F→¬T=T→F=F |
T | U | U | T | ¬T∨U=F∨U=U | T | ¬U→¬T=U→F=T |
F | T | F | F | ¬F∨T=T∨T=T | T | ¬T→¬F=F→T=T |
F | F | F | F | ¬F∨F=T∨F=T | T | ¬F→¬F=T→T=T |
F | U | F | U | ¬F∨U=T∨U=T | T | ¬U→¬F=U→T=T |
U | T | U | T | ¬U∨T=U∨T=T | T | ¬T→¬U=F→U=T |
U | F | F | U | ¬U∨F=U∨F=U | U | ¬F→¬U=T→U=U |
U | U | U | U | ¬U∨U=U∨U=U | U | ¬U→¬U=U→U=U |
Strong Kleeneでは対偶を成り立たせるためA=T,B=Uだけ特殊な扱いを行っています。基本計算は¬A∨Bですが、A=T,B=UのみUで決め打ちです。
Kleene 弱三値論理 (K3)との違いはA=T,B=Uの場合です。
Type2: AND=F>U>T,OR=T>U>F, 含意=min(1,1-v(A)+v(B))[T=1,U=0.5,F=0] Łukasiewicz
A | B | A∧B | A∨B | min(1,1-v(A)+v(B)) | A→B | ¬B→¬A |
---|---|---|---|---|---|---|
T | T | T | T | m(1,1-1+1)=1=T | T | ¬T→¬T=F→F=T |
T | F | F | F | m(1,1-1+0)=0=F | F | ¬F→¬T=T→F=F |
T | U | U | T | m(1,1-1+0.5)=0.5=U | U | ¬U→¬T=U→F=U |
F | T | F | F | m(1,1-0+1)=1=T | T | ¬T→¬F=F→T=T |
F | F | F | F | m(1,1-0+0)=1=T | T | ¬F→¬F=T→T=T |
F | U | F | U | m(1,1-0+0.5)=1=T | T | ¬U→¬F=U→T=T |
U | T | U | T | m(1,1-0.5+1)=1=T | T | ¬T→¬U=F→U=T |
U | F | F | U | m(1,1-0.5+0)=0.5=U | U | ¬F→¬U=T→U=U |
U | U | U | U | m(1,1-0.5+0.5)=1=T | T | ¬U→¬U=U→U=T |
Łukasiewicz(ウカシェヴィッチ)の3値理論では含意を特別な計算式で得ており、A=U,B=UがTとなるようにしています。
Strong Kleeneとの違いはA=U,B=Uの場合です。
Kleene 弱三値論理 (K3)との違いはA=T,B=UおよびA=U,B=Uの場合です。
type3理論
type3
- ∧: F > T > U ∨:T > F > U
AIと論理学は相性が悪いか?
計算し表を作る機械的作業はchatGPTで実施すればよいと考えたのですが、なかなかうまく行きませんでした。計算結果がでたらめになるのです。修正を要求すると修正されるのですが、他がおかしくなる等の問題が発生し、結局採用しませんでした。
間違いの原因を聞くと「計算に直感が混ざった」という答えが。おそらく実際に計算するのではなく、元の式と似た式の結果を拾ってきているのかもしれません。
| 固定リンク