Warning : Undefined variable $type in /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php on line 3
Warning : "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/includes/json/FormatJson.php on line 297
Warning : Trying to access array offset on value of type bool in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 660
Warning : session_name(): Session name cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/Setup.php on line 834
Warning : ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 126
Warning : ini_set(): Session ini settings cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 127
Warning : session_cache_limiter(): Session cache limiter cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 133
Warning : session_set_save_handler(): Session save handler cannot be changed after headers have already been sent in /home/users/1/sub.jp-asate/web/wiki/includes/session/PHPSessionHandler.php on line 140
Warning : "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/1/sub.jp-asate/web/wiki/languages/LanguageConverter.php on line 773
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 294
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/Feed.php on line 300
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46
https:///mymemo.xyz/wiki/api.php?action=feedcontributions&feedformat=atom&user=2400%3A4050%3AA3C1%3A1B00%3A547D%3A9670%3AA066%3ADEFC
miniwiki - 利用者の投稿記録 [ja]
2024-06-24T23:52:01Z
利用者の投稿記録
MediaWiki 1.31.0
3値論理
2018-02-02T21:46:04Z
<p>2400:4050:A3C1:1B00:547D:9670:A066:DEFC: /* 概要 */</p>
<hr />
<div>'''3値論理''' ({{lang-en-short|ternary}}, {{En|three-valued or trivalent logic}}) とは、通常の真 ({{En|true}}) と偽 ({{En|false}}) から成る'''真偽値'''の他に、第3の[[真理値]]を持つ論理体系。[[多値論理]]のひとつである。<br />
<br />
== 概要 ==<br />
[[古典論理]]では[[真理値]]は真と偽の2値(真偽値)である。しかし哲学や数学などを論理で扱うに際し、「可能性」や「未定義」などのために、真理値として真でも偽でもない値が必要なことがある。例えば「明日は雨が降る」という命題は、明日になるまでは真とも偽とも言えない、と考えるのが妥当である。そこで、もうひとつの値を追加した論理の体系が3値論理である。[[非古典論理]]の子分野の[[多値論理]]の子分野でもある。<br />
<br />
古くから漠然とは考えられていたことであり、[[古代ギリシア]]の[[アリストテレス]]は未来の出来事を表すには真でも偽でも無い可能性(未来偶然命題)として第3の値について言及している。しかし、現代的な3値論理は、1920年に[[ヤン・ウカシェヴィチ]](Jan Łukasiewicz)が発表した {{En|"On 3-valued logic"}} から始まるとされる。<br />
<br />
== コンピュータとの関連 ==<br />
{{see|多値論理#コンピュータとの関連|三進法#3値論理との関連}}<br />
<br />
== 3値論理の種類と特徴 ==<br />
3値論理は真 {{math|T}} でも偽 {{math|F}} でもない第3の値をとるが、この3番目の値の解釈についてしばしば意見が分かれており、別々の形でいくつかの形式化が行われている。ここではその中でも比較的有名なものを取り上げる。どれが正しいとか間違っているとかいうようなものではなく、目的に合うものを使えばよい。<br />
<br />
=== ウカシェヴィッチの3値論理 ===<br />
ウカシェヴィッチの3値論理は1920年にヤン・ウカシェヴィチにより提案された 3値論理である<ref>Lukasiewicz, J.(1920). "On 3-valued logic" S.McCall(ed.), Polish Logic, Oxford University Press, 1967.</ref>。ウカシェヴィチはアリストテレス未来偶然命題を形式化するためにこの論理を提案したとされている。具体的には<br />
* 未来偶然命題の真理値は真でも偽でもない第3の値を取る。<br />
という条件のもと、自身の提唱した[[命題論理]]の公理体系<br />
* {{math|''p'' → (''q'' → ''p'')}}<br />
* {{math|(''p'' → (''q'' → ''r'')) → ((''p'' → ''q'') → (''p'' → ''r''))}}<br />
* {{math|(¬''p'' → ¬''q'') → (''q'' → ''p'')}}<br />
を満たす新たな論理体系を考案した。この真偽の決まらない第3の真理値を定め、その記号に {{math|I}} を使った。{{En|indeterminate}}(不定)から来ており、未来偶然命題の真理値は {{math|I}} であるとする。<br />
<br />
具体的にはこの {{math|I}} を含めた論理を以下のような条件を満たす真理関数 {{math|''v''(''x'')}} を用いて定義した。<br />
:{{math|''v''(T) {{=}} 1}}<br />
:{{math|''v''(F) {{=}} 0}}<br />
:{{math|''v''(I) {{=}} 0.5}}<br />
:{{math|''v''(''A'') {{=}} ''v''(''B'') &harr; ''A'' {{=}} ''B''}}<br />
<br />
この真理関数を用いて、以下のように論理演算を定義している。<br />
:{{math|''v''(''A'' &and; ''B'') {{=}} min(''v''(''A''), ''v''(''B''))}}<br />
:{{math|''v''(''A'' &or; ''B'') {{=}} max(''v''(''A''), ''v''(''B''))}}<br />
:{{math|''v''(&#xAC;''A'') {{=}} 1 - ''v''(''A'')}}<br />
:{{math|''v''(''A'' &rarr; ''B'') {{=}} min(1, 1 - ''v''(''A'') + ''v''(''B''))}}<br />
<br />
これを[[真理値表]]で表すと以下のようになる。<br />
{| class="wikitable" style="width:60%"<br />
! {{mvar|A}} !! {{mvar|B}}<br />
! {{math|''A'' &and; ''B''}}<br />
! {{math|''A'' &or; ''B''}}<br />
! {{math|''A'' &rarr; ''B''}}<br />
! {{math|&#xAC;''A''}}<br />
|- align="center"<br />
| {{math|T}} || {{math|T}} || {{math|T}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|F}}<br />
|- align="center"<br />
| {{math|T}} || {{math|F}} || {{math|F}} || {{math|T}} || {{math|F}}<br />
|- align="center"<br />
| {{math|T}} || {{math|I}} || {{math|I}} || {{math|T}} || {{math|I}}<br />
|- align="center"<br />
| {{math|F}} || {{math|T}} || {{math|F}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|T}}<br />
|- align="center"<br />
| {{math|F}} || {{math|F}} || {{math|F}} || {{math|F}} || {{math|T}}<br />
|- align="center"<br />
| {{math|F}} || {{math|I}} || {{math|F}} || {{math|I}} || {{math|T}}<br />
|- align="center"<br />
| {{math|I}} || {{math|T}} || {{math|I}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|I}}<br />
|- align="center"<br />
| {{math|I}} || {{math|F}} || {{math|F}} || {{math|I}} || {{math|I}}<br />
|- align="center"<br />
| {{math|I}} || {{math|I}} || {{math|I}} || {{math|I}} || {{math|T}}<br />
|}<br />
ウカシェヴィチの3値論理は[[排中律]]および[[無矛盾律]]が成り立たない点に注意が必要である。<br />
<br />
この3値論理は古典論理学では解決できない[[ラッセルのパラドックス]]が解消されることが知られている。具体的には<br />
:{{math|''X'' {{=}} {{mset|''x'' | ''x'' &notin; ''x''}}}}<br />
という集合があった場合 {{math|''X'' &isin; ''X'' {{=}} I}} とおくとラッセルのパラドックスにおける矛盾が発生しなくなる。<br />
<br />
==== 無限値論理 ====<br />
ウカシェヴィチの3値論理の特徴として、論理値の数を容易に拡張可能なことがある。例えば真理値 {{math|T、F、I1、I2}} の4値をもつ論理システムを作成する場合は<br />
:{{math|''v''(T) {{=}} 1, ''v''(F) {{=}} 0, ''v''(I1) {{=}} 1/3, ''v''(I2) {{=}} 2/3}}<br />
と定義することで同様に真理値体系を構築することが可能である。ウカシェヴィチはこのことを応用し1930年に {{closed-closed|0, 1}} の任意の値を真理値とする[[無限値論理]]を提唱している。<br />
<br />
==== 莫少揆 (Moh Shaw-Kwei) のパラドックス ====<br />
ウカシェヴィチの3値論理はラッセルのパラドックスにおける解法を示したが、以下に示すような新たな[[パラドックス]]を導出してしまうことでも知られている([[莫少揆]]のパラドックス)<ref>Moh Shaw-Kwei(1954). "Logical paradoxes for many-valued systems", Journal of Symbolic Logic, 19(1), 37-40, 1954 </ref>。具体的には以下のような集合があったとする、<br />
:{{math|''X'' {{=}} {{mset|''x'' | ''x'' &isin; ''x'' &rarr; &not; (''x'' &isin; ''x'')}}}}.<br />
このとき {{math|''X'' &isin; ''X''}} を考えると、この値は {{math|T}} でも {{math|F}} でも {{math|I}} でも矛盾が発生する。<br />
<br />
=== クリーネの3値論理 ===<br />
クリーネの3値論理は 1952年[[スティーヴン・コール・クリーネ]]によって[[アルゴリズム]]の停止性についての議論の中で[[帰納関数]]の理論における「未定義」 ({{En|undefinedness}}) を表現するために提唱された。<ref>Kleene, S.(1952). "Introduction to Metamathematics", North-Holland, Amsterdam, 1952.</ref><br />
なおクリーネは強3値論理と弱3値論理の2種類の3値論理を提唱しているが、ここでは強3値論理について述べる。弱3値論理は後述するボフバールの3値論理と同様の体系である。<br />
<br />
クリーネの3つめの値 {{math|U}} は「未定義」または「計算中」である。この値は直感的には {{math|U}} は {{math|T}} か {{math|F}} のどちらかではあるが、どちらであるかわからない値といえる。この3値論理の公理化は帰結関係をベースに[[シークエント計算]]で行われる。<br />
<br />
具体的な例として、以下のような論理式を考える。<br />
:{{math|U &and; F}}<br />
この時、仮に {{math|U}} の部分が {{math|T}} か {{math|F}} の場合でも、結果は {{math|F}} にしかならない。よってこの論理式の真理値は {{math|F}} である。反対に<br />
:{{math|U &and; T}}<br />
とした場合、この論理式の真理値は {{math|U}} が {{math|T}} だったら {{math|T}} となり {{math|F}} だったら {{math|F}} となる。よってこの論理式の真理値は {{math|T}} か {{math|F}} かわからない、すなわち {{math|U}} である。<br />
<br />
以上を踏まえると、この3値論理の真理値表は以下のようになる。<br />
{| class="wikitable" style="width:60%"<br />
! {{mvar|A}} !! {{mvar|B}}<br />
! {{math|''A'' &and; ''B''}}<br />
! {{math|''A'' &or; ''B''}}<br />
! {{math|''A'' &rarr; ''B''}}<br />
! {{math|&not;''A''}}<br />
|- align="center"<br />
| {{math|T}} || {{math|T}} || {{math|T}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|F}}<br />
|- align="center"<br />
| {{math|T}} || {{math|F}} || {{math|F}} || {{math|T}} || {{math|F}}<br />
|- align="center"<br />
| {{math|T}} || {{math|U}} || {{math|U}} || {{math|T}} || {{math|U}}<br />
|- align="center"<br />
| {{math|F}} || {{math|T}} || {{math|F}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|T}}<br />
|- align="center"<br />
| {{math|F}} || {{math|F}} || {{math|F}} || {{math|F}} || {{math|T}}<br />
|- align="center"<br />
| {{math|F}} || {{math|U}} || {{math|F}} || {{math|U}} || {{math|T}}<br />
|- align="center"<br />
| {{math|U}} || {{math|T}} || {{math|U}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|U}}<br />
|- align="center"<br />
| {{math|U}} || {{math|F}} || {{math|F}} || {{math|U}} || {{math|U}}<br />
|- align="center"<br />
| {{math|U}} || {{math|U}} || {{math|U}} || {{math|U}} || {{math|U}}<br />
|}<br />
クリーネの 3値論理は {{math|U &rarr; U {{=}} U}} であることを除けばウカシェヴィチの3値論理と同様である。<br />
<br />
この {{math|U &rarr; U {{=}} U}} という定義は、しばしば批判されることがある。 これは {{math|''A'' {{=}} U}} とした場合、{{math|''A'' &rarr; ''A'' {{=}} U}} となり古典論理学では[[恒真式]]とされていた {{math|''A'' &rarr; ''A'' {{=}} T}} が成り立たなくなるためである。実際この式は「{{mvar|A}} が未定義であるならば {{mvar|A}} は未定義である」ということを意味しており、これを真としないのは直感に反しているといえる。<br />
<br />
1984年、レイモンド・ターナー(Raymond Turner)はクリーネの3値論理をベースに[[非単調論理#デフォルト推論|デフォルト推論]]の理論を展開している<ref>Turner, R.(1984). "Logics for Aritifical Interigence", Ellis Horwood, Chichester, 1984.</ref>。<br />
<br />
クリーネの 3値論理は[[SQL]]等にも応用されている、SQLでは比較式に[[Null|NULL]]が入った場合、真 ({{En|true}}) でも偽 ({{En|false}}) でもない不明 ({{En|unknown}}) という値を返す。<br />
<br />
=== ボフバールの3値論理 ===<br />
ボフバール(Bochvar)の3値論理は「嘘つきのパラドックス」に代表される意味論的[[自己言及のパラドックス]]の解決として1939年に考案された<ref>Bochvar, D.(1939). "On a 3-valued logical calculus and its application to the analysis of contradictions", Mathematiceskij sbornik, 4, 353-369, 1939.</ref>。<br />
<br />
ボフバールは 3番目の真理値として {{math|M}} を提唱した、この {{math|M}} は「無意味」({{En|meaningless}}) と解釈される。<br />
ボフバールの3値論理は[[命題]]の構成要素に {{math|M}} があった場合、その真理値は無条件に {{math|M}} であると定義した。具体的には真理値は以下のようになる。<br />
{| class="wikitable" style="width:60%"<br />
! {{mvar|A}} !! {{mvar|B}}<br />
! {{math|''A'' &and; ''B''}}<br />
! {{math|''A'' &or; ''B''}}<br />
! {{math|''A'' &rarr; ''B''}}<br />
! {{math|&not;''A''}}<br />
|- align="center"<br />
| {{math|T}} || {{math|T}} || {{math|T}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|F}}<br />
|- align="center"<br />
| {{math|T}} || {{math|F}} || {{math|F}} || {{math|T}} || {{math|F}}<br />
|- align="center"<br />
| {{math|T}} || {{math|M}} || {{math|M}} || {{math|M}} || {{math|M}}<br />
|- align="center"<br />
| {{math|F}} || {{math|T}} || {{math|F}} || {{math|T}} || {{math|T}} ||rowspan=3| {{math|T}}<br />
|- align="center"<br />
| {{math|F}} || {{math|F}} || {{math|F}} || {{math|F}} || {{math|T}}<br />
|- align="center"<br />
| {{math|F}} || {{math|M}} || {{math|M}} || {{math|M}} || {{math|M}}<br />
|- align="center"<br />
| {{math|M}} || {{math|T}} || {{math|M}} || {{math|M}} || {{math|M}} ||rowspan=3| {{math|M}}<br />
|- align="center"<br />
| {{math|M}} || {{math|F}} || {{math|M}} || {{math|M}} || {{math|M}}<br />
|- align="center"<br />
| {{math|M}} || {{math|M}} || {{math|M}} || {{math|M}} || {{math|M}}<br />
|}<br />
<br />
ボフバールはこの 3値論理に言明オペレータ {{math|T}} を追加している {{math|T}} は以下のようになる<br />
<br />
{| class="wikitable" style="width:30%"<br />
! {{mvar|A}} !! {{math|T''A''}}<br />
|- align="center"<br />
| {{math|T}} || {{math|T}}<br />
|- align="center"<br />
| {{math|M}} || {{math|F}}<br />
|- align="center"<br />
| {{math|F}} || {{math|F}}<br />
|}<br />
<br />
この 3値論理では「この文は偽である」といった命題の真理値を {{math|M}} とした場合、嘘つきのパラドックスは起こらなくなる。ただし、以下のような強嘘つき文 ({{En|strengthened liar sentence}}) の場合やはりパラドックスが起こる。<br />
# この文は偽 ({{math|F}}) か無意味 ({{math|M}}) である。<br />
<br />
== 脚注 ==<br />
{{Reflist}}<br />
<br />
== 参考文献 ==<br />
* 赤間世紀、宮本定明、『ソフトコンピューティングのロジック』、[[工学社]]、2008年、ISBN 978-4-7775-1345-1<br />
<br />
== 関連項目 ==<br />
* [[ブール代数]]<br />
* [[論理式]]<br />
* [[2値論理]]<br />
* [[ブール論理]]<br />
* [[ファジィ論理]]<br />
<br />
{{DEFAULTSORT:さんちろんり}}<br />
[[Category:多値論理]]<br />
[[Category:数学に関する記事|/3さんちろんり]]</div>
2400:4050:A3C1:1B00:547D:9670:A066:DEFC
Warning : Cannot modify header information - headers already sent by (output started at /home/users/1/sub.jp-asate/web/wiki/extensions/HeadScript/HeadScript.php:3) in /home/users/1/sub.jp-asate/web/wiki/includes/WebResponse.php on line 46