「一階述語論理」の版間の差分

削除された内容 追加された内容
編集の要約なし
編集の要約なし
13行目:
のように記号化することができる。ここで、''Px'' と ''Qx'' はそれぞれ「''x'' は人間である」「''x'' は死ぬ」を表し、''a'' はソクラテスを表すことを意図している。上の日本語における推論の妥当性は、一階述語論理において ''Qa'' が { ∀x '''('''''Px'' → ''Qx''''')''' , ''Pa'' } の'''論理的帰結''' (logical consquence) であるという事実に反映されている。一般に、論理式 φ が論理式の集合 Σ の論理的帰結であるとは、Σ の論理式のすべてをみたす解釈は必ず φ もみたすこととして定義され、これは、あるいくつかの前提からある結論が論理的に導かれるという概念の数学的な定式化である。
 
命題論理においては、論理式の解釈とは各命題記号に対する真理値 0 , 1 の割り当てであった。これに対して、一階述語論理の論理式の解釈は'''議論領域'''あるいは'''領域''' (universe, domain) と呼ばれる空でない集合と、それぞれの'''非論理記号'''(述語記号・関数記号・定数記号)の "意味" の割り当てからなる。議論領域とは「すべての ''x'' について」といったときの ''x'' が動きうる値の範囲である。一階述語論理の論理式はこのような解釈を一つ与えることによって真偽が決定される。一階述語論理を改良することによって、議論領域を種 (sort) ごとに分割し、それぞれの領域上を動く種別の変数を導入することもできる(詳細は「[[多種論理]]」を参照)。
 
二階述語論理(およびそれ以上の高階述語論理)では、述語および関数に対する量化を導入する。例えば、同一性 (equality) は二階述語論理においては、''x'' '''=''' ''y'' =<sub>''def''</sub> &forall;''P''(''P''(''x'') &harr; ''P''(''y'')) と定義できる。述語や関数に対する量化は一階述語論理では許されない。
41行目:
* 定数記号はアリティ 0 の関数記号と呼ばれることもある。
* 上の定義では述語は 1 以上のアリティを持つとされているが、アリティ 0 の述語も考えることができ、それらは「真」や「偽」を意味するものと考えることができる。しかし「真」は &forall;''x''(''x'' '''=''' ''x'') などと別の方法で表せるので、アリティ 0 の述語を導入することに大きな意味はない。
* 括弧の使い方の流儀は様々である。ある人は &forall;''x'' を '''('''&forall;''x''''')''' と書く。括弧の代わりにコロンや終止符を使う場合もある。もちろんその場合には、言語にコロンや終止符を含めておく必要がある。括弧を全く使わない表記法に[[ポーランド記法]]と呼ばれるものがある。これは、&and; や &or; を先頭に書いて '''('''&phi; &and; &psi;''')''' の代わりに &and; &phi; &psi; のように書く方法である。ポーランド記法はコンパクトで数学的に取り扱いやすいという利点があるが、可読性が低いという欠点がある。
 
== 項と論理式 ==
56行目:
 
=== 論理式 ===
項が何らかの対象を表す記号列であったのに対して、論理式は何らかの命題を表すものである。論理式は原子論理式と呼ばれる最も基本的な論理式から結合記号と量化記号を繰り返し用いることによって形成される。まず、原子論理式は次のように定義される:
: ある正の整数 ''n'' に対するアリティ ''n'' の述語記号 ''P'' と ''n'' 個の項 ''t''<sub>1</sub> , ..., ''t''<sub>''n''</sub> を用いて ''P t''<sub>1</sub> … ''t''<sub>''n''</sub> と表される記号列を'''原子論理式''' (atomic formula) と呼ぶ。
原子論理式を用いて、'''論理式''' (well-formed formula, wff) あるいは'''式''' (formula) は次のように帰納的に定義される:
68行目:
はすべて原子論理式(したがって論理式)であり、
:'''('''&not; '''=+S0S0SS0)''' ,  '''(=+0'''''x''<sub>5</sub>'''S0''' &and; '''=+S0S0SS0)''' ,  &forall;''x''<sub>1</sub> '''&lt;0S'''''x''<sub>1</sub> ,  &exist;''x''<sub>2</sub> '''(=+0'''''x''<sub>5</sub>'''S0''' &and; '''=+S0S0SS0)'''
はすべて論理式である。'''=+S0S0SS0''' , '''&lt;0S'''''x''<sub>1</sub> などの論理式は分かりやすさのため、述語記号を項の間に書いた '''+S0S0 = SS0''' , '''0 &lt; S'''''x''<sub>1</sub> のような表現で表すことが多い。上で述べた項に関する略記法も用いれば、'''+S0S0 = SS0''' はさらに '''S0 + S0 = SS0''' と表される。
はすべて論理式である。
 
=== 自由変数 ===
自然数論の言語における論理式 '''S0 + S0 = SS0''' の各記号を通常の意味で解釈すれば「1 + 1 = 2」となり、これは正しい命題である。'''('''&not; '''S0 + S0 &ne;= SS0)''' は「1 + 1 &ne; 2」となるので正しい命題でない。また、変数の動く範囲(議論領域)は[[自然数]]全体の集合だとすれば、論理式 &forall;''x''<sub>1</sub> '''0 &lt; S'''''x''<sub>1</sub> は「すべての自然数 ''n'' について 0 &lt; ''n'' + 1」という意味になり、これは正しい命題であることが分かる。一方、論理式 '''0 +'''''x''<sub>5</sub>''' = S0''' の意味を考えてみると、「0 + x<sub>5</sub> = 1」となるがこれは正しいか正しくないかを判断することができない。なぜなら、''x''<sub>5</sub> という変数が何を表しているかが決まっていないからである。このようなとき、''x''<sub>5</sub> は論理式 '''0 +'''''x''<sub>5</sub>''' = S0''' における'''自由変数''' (free variable) であると言われる。正式には、各論理式 &phi; に対して、"&phi; における自由変数全体の集合" fr(&phi;) を次のように再帰的に定義する:
#&phi; が原子論理式ならば、fr(&phi;) は記号列 &phi; に現れるすべての変数からなる集合である。
論理式 &phi; が自由変数を一切持たないとき、つまり fr(&phi;) = &empty; のとき、&phi; は'''閉論理式''' (closed formula) あるいは'''文''' (sentence) と呼ばれる。
#fr('''('''&not; &phi;''')''') = fr(&phi;) 。
#fr('''('''&phi; &and; &psi;''')''') = fr('''('''&phi; &or; &psi;''')''') = fr('''('''&phi; &rarr; &psi;''')''') = fr('''('''&phi; &harr; &psi;''')''') = fr(&phi;) &cup; fr(&psi;) 。
#fr(&forall;''x'' &phi;) = fr(&exist;''x'' &phi;) = fr(&phi;) - { ''x'' } 。
論理式 &phi; が自由変数を一切持たないとき、つまり fr(&phi;) = &empty; のとき、&phi; は'''閉論理式''' (closed formula) あるいは'''文''' (sentence) と呼ばれる。直観的には、文とは記号に解釈を与えて意味を考えたときに正しいか正しくないかが決まるような論理式である。'''S0 + S0 = SS0''' や &forall;''x''<sub>1</sub> '''0 &lt; S'''''x''<sub>1</sub> は文であるが、fr('''0 +'''''x''<sub>5</sub>''' = S0''') = { ''x''<sub>5</sub> } より '''0 +'''''x''<sub>5</sub>''' = S0''' は文でない。
 
== 論理式の真偽 ==
=== 解釈 ===
はじめに述べたように、一階述語論理の論理式の解釈は、議論領域とそれぞれの非論理記号に対する "意味" の割り当てからなる。正式には、解釈は次のように定義される。
: 一階の言語に対する'''解釈''' (interpretation) あるいは'''構造''' (structure) とは、空でない集合 ''D'' と、非論理記号全体の集合を[[写像|定義域]]とする関数 ''F'' の組 ''M'' = (''D'', ''F'') で次をみたすものをいう:
:#''P'' がアリティ ''n'' の述語記号ならば、''F''(''P'') &sube; ''D''<sup>''n''</sup> 、すなわち ''F''(''P'') は ''D'' 上の ''n'' 項関係である。
:#''f'' がアリティ ''n'' の関数記号ならば、''F''(''f'') : ''D''<sup>''n''</sup> → ''D'' 、すなわち ''F''(''f'') は ''D'' 上の ''n'' 項演算である。
90 ⟶ 94行目:
 
== 形式的証明 ==
命題論理においては、'''論理公理'''とよばれる論理式の集合と、ある論理式たちから新たな論理式を導出する規則('''推論規則''')を導入し、論理公理から推論規則の有限回の適用によって得られる論理式全体と[[トートロジー]]全体が一致するようにすることができる([[命題論理#規則の健全性と完全性|命題論理の完全性定理]])。一階述語論理においても、適切に論理公理と推論規則を導入することで、論理公理から推論規則を使って導出される論理式全体と恒真論理式全体が一致するようにできる。
 
形式的証明の定義の仕方はひとつに限定されない。ここで用いる公理や推論規則は必ずしも規範的な例ではなく、同一の論理を別の形式で表現することも可能である(その場合、与えられた公理から同じ定理が導出される)。
 
=== 論理公理 ===
一階述語論理で採用される公理は以下のものである:
*命題論理の全ての恒真文(命題変項は論理式に置き換える)
*量化子についての上述の公理
*同一性についての上述の公理(同一性を論理に含める場合)
ある文が'''一階述語論理で証明可能'''と言えるのは、述語計算の公理系から始めて推論規則(モーダス・ポネンスと全称化)を繰り返し適用して、その文が得られる場合である。
 
=== 推論規則 ===
101 ⟶ 114行目:
<!-- Universal Generalization が 汎化 でいいのか自信なし(訳者)-->
 
証明可能性については様々な異なる(しかし互いに等価な)定義の方法がある。上述の定義は[[ダフィット・ヒルベルト|ヒルベルト]]流計算の典型例であり、これは異なる公理を多数用意して推論規則を少なくするスタイルをとっている。[[ゲルハルト・ゲンツェン|ゲンツェン]]流の[[シークエント計算|述語計算]]では逆に、公理を少なくして推論規則を豊富に用意している。「[[自然演繹]]」「[[シークエント計算]]」などを参照
全称化規則は[[様相論理学|様相論理]]の必然化規則と似ている点に注意されたい。
: ├ ''P'' ならば ├ □''P''
<!-- :<math>\mathrm{if} \vdash P, \mathrm{then} \vdash \Box P.</math> -->
 
=== 代入に関して ===
'''代入: ''' ''t'' を項、 &phi;(''x'') を(''x''を自由変項として含む)論理式とする。このとき &phi;(''t'') は、&phi;(''x'') 中の ''x'' の自由な出現すべてを ''t'' で置き換えたものと定義される。'''ただしここで、''t'' に含まれるいかなる自由変項も、この置き換えによって束縛されてしまうことがないようにしなければならない'''。もし ''t'' の自由変項が束縛されるなら、''x'' を ''t'' で置換する前に &phi; 内の[[束縛変項]]名を ''t'' 内の自由変項名以外のものに変更しなければならない。この条件が必要となる理由を説明するために、以下のような場合を考えてみよう。論理式 &phi;(''x'') の中身が &forall;''y'' ''y'' &le; ''x''(これは「''x'' は最大値」を意味する)だとする。''t'' が ''y'' を自由変項として持たない項であれば、&phi;(''t'') はまさに ''t'' が最大値であると主張していることになる。しかし、もし ''t'' が ''y'' である場合、&phi;(''t'') は &forall;''y'' ''y'' &le; ''y'' となり、主張することが変わってしまう。この問題は、自由変項 ''x'' に ''y'' を代入したときに、&phi;(''x'') の中で ''t'' の自由変項 ''y'' が束縛されてしまうために発生する。そこで、事前に束縛変項 ''y'' を他の名前、例えば ''z'' に変えて、&forall;''z'' ''z'' &le; ''y'' とすることで問題を回避する。これを忘れるとひどい間違いを犯すことになる。
 
=== 同一性 ===
一階述語論理での同一性に関する規約には様々なものがあるが、ここではそのうち主なものを要約する。どの規約に従っても同じ結果が(ほぼ同じ手数で)得られ、違うのは主に用語法だけである。
 
122 ⟶ 133行目:
:これは一般に、&exist;!''xP''(''x'') と略記される。
 
=== 量化子の公理 ===
以下の4つの論理公理が述語計算を特徴付けている。
* PRED-1: &forall;''xZ''(''x'') &rarr; ''Z''(''y'')
133 ⟶ 144行目:
<!-- * PRED-4: <math> \forall x (Z(x) \rightarrow W) \rightarrow (\exists x Z(x) \rightarrow W) </math> -->
これらは実際には公理図式である。ここで、表現 ''W'' は任意の整論理式であり、''x'' は自由変項ではない。また、表現 ''Z''(''x'') は任意の整論理式であり、''Z''(''y'') は同じ論理式中の ''x'' の自由な出現を全て ''y'' で置換したものを表す。
 
== 述語計算 ==
述語計算は命題計算を拡張したもので、一階述語論理のどの文が証明可能なのかを定義するものである。命題計算が適当な公理系と唯一の推論規則(モーダス・ポネンス)で定義されているとき(これには様々なやり方がある)、述語計算はそれにいくつかの公理と汎化の推論規則を追加することで定義される。より正確にいえば、述語計算で採用される公理は以下のものである。
*命題論理の全ての恒真文(命題変項は論理式に置き換える)
*量化子についての上述の公理
*同一性についての上述の公理(同一性を論理に含める場合)
ある文が'''一階述語論理で証明可能'''と言えるのは、述語計算の公理系から始めて推論規則(モーダス・ポネンスと全称化)を繰り返し適用して、その文が得られる場合である。
 
理論 ''T''(公理と呼ばれる文の集合)が与えられたとき、文 &phi; が'''理論 ''T'' 内で証明可能'''であるとは、''a'' &and; ''b'' &and; ... &rarr; &phi;(ただしここで、''a'', ''b'', ... は理論 ''T'' の有限個の公理とする)が一階述語論理で証明可能であることとして定義される。
 
形式的証明の定義の仕方はひとつに限定されない。ここで用いる公理や推論規則は必ずしも規範的な例ではなく、同一の論理を別の形式で表現することも可能である(その場合、与えられた公理から同じ定理が導出される)。
 
この証明可能性の定義が持つ明らかな問題点は、それが場当たり的に見えることである。つまり、証明に使用する公理や推論規則はなんとなく選んでいるため、本来必要な公理あるいは推論規則を見逃しているかもしれないのである。[[ゲーデルの完全性定理]]は、実際にはそのような心配は無用であることを保証する。それによれば、任意のモデルで真である文はすべて一階述語論理で証明可能である。一階述語論理における「証明可能性」のいかなる適法な定義も、上述の定義と等価なものでなければならない(ただし証明可能性の定義の仕方によって、証明の長さが大きく異なることはありうるが)。
 
証明可能性については様々な異なる(しかし互いに等価な)定義の方法がある。上述の定義は[[ダフィット・ヒルベルト|ヒルベルト]]流計算の典型例であり、これは異なる公理を多数用意して推論規則を少なくするスタイルをとっている。[[ゲルハルト・ゲンツェン|ゲンツェン]]流の[[シークエント計算|述語計算]]では逆に、公理を少なくして推論規則を豊富に用意している。
 
== 健全性と完全性 ==
この証明可能性の定義が持つ明らかな問題点は、それが場当たり的に見えることである。つまり、証明に使用する公理や推論規則はなんとなく選んでいるため、本来必要な公理あるいは推論規則を見逃しているかもしれないのである。[[ゲーデルの完全性定理]]は、実際にはそのような心配は無用であることを保証する。それによれば、任意のモデルで真である文はすべて一階述語論理で証明可能である。一階述語論理における「証明可能性」のいかなる適法な定義も、上述の定義と等価なものでなければならない(ただし証明可能性の定義の仕方によって、証明の長さが大きく異なることはありうるが)。
 
 
== 一階述語論理に関する定理 ==
以下、健全性定理と完全性定理以外の重要なメタ定理を列挙する。
# コンパクト性定理 : 論理式の集合 &Sigma; のすべての有限[[部分集合]]が充足可能ならば、&Sigma; は充足可能である。
# コンパクト性定理
# レーヴェンハイム・スコーレムの定理 : &kappa; が[[濃度 (数学)|無限基数]]のとき、非論理記号全体の集合の[[濃度 (数学)|濃度]]が &kappa; であるような一階の言語における文の集合がモデルを持つなら、それは濃度 &kappa; 以下のモデルも持つ。
# レーヴェンハイム・スコーレムの定理
# 命題計算とは異なり、一階述語恒真論理式全体の集合は(言語に高々[[アリティ]]2の述語が一つでも含まれていると)[[決定]]あるない。つまり、任意論理式 ''P'' についてが与えられたとき''P'' それが恒真であるか否かを定する一般的な[[アルゴリズム]]は存在しない([[チューリングマシンの停止問題]]を参照せよ。正確には、恒真論理式の[[ゲーデル数]]全体の集合は[[帰納的関数|帰納的]]でない。この結果は[[アロンゾ・チャーチ]]と[[アラン・チューリング]]がそれぞれ独立に導き出した。
# ただしそれでも、与えられた文(論理式が恒真であるとき、かつそのときにのみ 1 (yes) を出力して停止するチューアルゴングマシンズムは存在する。逆にただし、恒真でない論理式の場合は判定がこのアルゴリズムは停止しないかもしれない。これを「恒真論理式全体の集合は部分決定性が可能である」という。
# 単項1 変数述語記号だけを非論理(単項記号に持つ言語述語だけからなる述語恒真論理式全体の集合[[決定可能]]である。
 
== 一階の理論 ==
'''一階の理論''' (first-order theory) は以下の要素から構成される:
* ある一つの一階の言語、
* '''固有の公理'''と呼ばれる文の集合。
 
固有の公理は論理公理のように恒真である必要はない。
 
固有の公理の集合が無限の場合、任意の整論理式が公理か否かを判定する[[アルゴリズム]]が存在しなければならない。さらに言えば、推論規則の各々の適用が正しいものか否かを判定するアルゴリズムも存在すべきである。
 
一階の理論の例.
*ロビンソン算術 (Q)
*ペアノ算術 (PA)
*ツェルメロ・フレンケル集合論 (ZF)
 
== 他の論理との比較 ==
185 ⟶ 167行目:
* '''新たな量化子を加えた一階述語論理'''は、例えば「……であるような多くの ''x'' が存在する」といった意味の新たな量化子 ''Qx'', ..., を持つ。
 
こうした論理の多くは、一階述語論理の何らかの拡張と言える。これらは、一階述語論理の論理演算子と量化子を全て含んでいて、それらの意味も同じである。リンドストレムは、一階述語論理の拡張には、レーヴェンハイムスコーレムの下降定理とコンパクト性定理の両方を満足するものが存在しないことを示した。この定理の内容を精確に述べるには、論理が満たしていなければならない条件を数ページにわたって列挙する必要がある。例えば、言語の記号を変更しても各文の真偽が基本的に変わらないようになっていなければならない。
 
一階述語論理のいくぶんエキゾチックな等価物には、次のものがある。順序対構成をもつ一階述語論理は、特別な関係として順序対の射影を持つ[[関係代数 (数学)|関係代数]](これは[[アルフレト・タルスキ|タルスキ]]と Givant によって構築された)と精確に等価である。