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

削除された内容 追加された内容
編集の要約なし
編集の要約なし
115行目:
 
=== 論理的帰結 ===
&Sigma; を論理式の集合とし、&phi; を論理式とする。&Sigma; に属するすべての論理式 &psi; に対して ''M''(&psi;, ''s'') = 1 であるような任意の解釈 ''M'' と ''M'' の個体の割り当て関数 ''s'' が ''M''(&phi;, ''s'') = 1 をみたすとき、&phi; は &Sigma; の'''論理的帰結''' (logical consquence) であるといい、<math>\Sigma \vDash \varphi</math> と書く。論理式 &phi; と &psi; が <math>\{\varphi\} \vDash \psi</math> かつ <math>\{\psi\} \vDash \varphi</math> をみたすとき、&phi; と &psi; は'''論理的に同値''' (logically equivalent) であるという。また、&phi; が &empty; の論理的帰結である場合、すなわち任意の解釈 ''M'' と ''M'' の個体の割り当て関数 ''s'' に対して ''M''(&phi;, ''s'') = 1 であるとき、&phi; は'''恒真''' (valid) であるという。&phi; と &psi; が論理的に同値であることは、'''('''&phi; &harr; &psi;''')''' が恒真であることと同値である
 
== 形式的証明 ==
123行目:
 
=== 論理公理 ===
一階述語論理で採用される論理公理は以下のものである:
*すべてのトートロジー(命題論理のトートロジーにおける命題記号を一階の論理式で置き換えたもの)
*量化子についての上述の公理
* ::PRED-1: &forall;''xZ''(''x'') &rarr; ''Z''(''y'')
*同一性についての上述の公理(同一性を論理に含める場合)
* ::PRED-2: ''Z''(''y'') &rarr; &exist;''xZ''(''x'')
* ::PRED-3: &forall;''x''(''W'' &rarr; ''Z''(''x'')) &rarr; (''W'' &rarr; &forall;''xZ''(''x''))
* ::PRED-4: &forall;''x''(''Z''(''x'') &rarr; ''W'') &rarr; (&exist;''xZ''(''x'') &rarr; ''W'')
<!-- * PRED-1: <math> \forall x Z(x) \rightarrow Z(y) </math> -->
<!-- * PRED-2: <math> Z(y) \rightarrow \exists x Z(x) </math> -->
<!-- * PRED-3: <math> \forall x (W \rightarrow Z(x)) \rightarrow (W \rightarrow \forall x Z(x)) </math> -->
<!-- * 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'' で置換したものを表す。
 
=== 推論規則 ===
推論規則とは、あるいくつかの論理式から別の論理式を導出するための規則である。これは正確には、論理式全体の集合の上の関係として定義される。推論規則には様々なものが考えられるが、ここで用いる推論規則は'''モーダス・ポーネンス''' (modus ponens) と呼ばれる規則と'''全称化''' (generalization) と呼ばれる規則の二つである。
ここでの定式化で用いられる命題論理の推論規則は、[[モーダス・ポネンス]]のみである。これは、&phi; と &phi; &rarr; &psi; がともに証明されていれば、&psi; を導いてよいというものである。
 
==== モーダス・ポーネンス (MP) ====
[[全称化]]と呼ばれる推論規則は述語論理に特有のものである。これは、以下のように定義される。
ここでの定式化で用いられる命題論理の推論規則は、[[モーダス・ポネンス]]のみである。これは、&phi; と &phi; &rarr; &psi; がともに証明されていれば、&psi; を導いてよいというものである。
: ├ &phi; ならば ├ &forall;''x''&phi;
<!-- : <math>\mathrm{if} \vdash \phi, \mathrm{then} \vdash \forall x \phi</math> -->
ここで &phi; は証明済みの定理である。
<!-- Universal Generalization が 汎化 でいいのか自信なし(訳者)-->
 
==== 全称化 (GEN) ====
証明可能性については様々な異なる(しかし互いに等価な)定義の方法がある。上述の定義は[[ダフィット・ヒルベルト|ヒルベルト]]流計算の典型例であり、これは異なる公理を多数用意して推論規則を少なくするスタイルをとっている。[[ゲルハルト・ゲンツェン|ゲンツェン]]流の[[シークエント計算|述語計算]]では逆に、公理を少なくして推論規則を豊富に用意している。「[[自然演繹]]」「[[シークエント計算]]」などを参照。
[[全称化]]と呼ばれる推論規則は述語論理に特有のものである。これは、以下のように定義される。
:&phi; ば ├ &forall;''x''&phi; を導いてよい。
 
=== 証明可能性 ===
論理式 &phi; 論理式の集合 &Sigma; から証明可能であるとは、&Sigma; に属する論理式と論理公理から推論規則の有限回の適用によって &phi; が得られることを意味する。そして、&Sigma; に属する論理式と論理公理から &phi; を導出する仮定を示した論理式の有限列を、&Sigma; からの &phi; の形式的証明とよぶ。これらの概念は次のように厳密に定義することができる。
:&phi; を論理式、&Sigma; を論理式の集合とする。&Sigma; からの &phi; の'''形式的証明''' (formal proof) あるいは'''証明'''あるいは'''導出列''' (proof) とは、論理式の有限列 (&phi;<sub>0</sub>, ..., &phi;<sub>''n''</sub>) で次をみたすものをいう:
:#&phi;<sub>''n''</sub> = &phi; 。
:#
:#''n'' 以下の任意の自然数 ''k'' に対して、次のいずれかが成り立つ:
:#
:::(a) &phi;<sub>''k''</sub> &isin; &Sigma; 。
:&Sigma からの &phi の証明が存在するとき、&phi; は &Sigma; から'''証明可能'''であるといい、<math>\Sigma\vdash\varphi</math> と書く。
:::(b) &phi;<sub>''k''</sub> は論理公理である。
:::(c) ある ''i'', ''j'' &lt; ''k'' が存在して、&phi;<sub>''k''</sub> は &phi;<sub>''i''</sub> , &phi;<sub>''j''</sub> からのモーダス・ポーネンスによる導出である。
:::(d) ある ''i'' &lt; ''k'' が存在して、&phi;<sub>''k''</sub> は &phi;<sub>''i''</sub> からの全称化による導出である。
:&Sigma; からの &phi; の証明が存在するとき、&phi; は &Sigma; から'''証明可能''' (provable) である、あるいは &phi; は &Sigma; の'''定理''' (theorem) であるといい、<math>\Sigma\vdash\varphi</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'' とすることで問題を回避する。これを忘れるとひどい間違いを犯すことになる。
 
=== 同一性に関する公理 ===
一階述語論理での同一性に関する規約には様々なものがあるが、ここではそのうち主なものを要約する。どの規約に従っても同じ結果が(ほぼ同じ手数で)得られ、違うのは主に用語法だけである。
 
162 ⟶ 176行目:
::&exist;''x''(''P''(''x'') &and; &forall;''y''(''P''(''y'') &rarr; (''x'' = ''y'')))
:これは一般に、&exist;!''xP''(''x'') と略記される。
 
=== 量化子の公理 ===
以下の4つの論理公理が述語計算を特徴付けている。
* PRED-1: &forall;''xZ''(''x'') &rarr; ''Z''(''y'')
* PRED-2: ''Z''(''y'') &rarr; &exist;''xZ''(''x'')
* PRED-3: &forall;''x''(''W'' &rarr; ''Z''(''x'')) &rarr; (''W'' &rarr; &forall;''xZ''(''x''))
* PRED-4: &forall;''x''(''Z''(''x'') &rarr; ''W'') &rarr; (&exist;''xZ''(''x'') &rarr; ''W'')
<!-- * PRED-1: <math> \forall x Z(x) \rightarrow Z(y) </math> -->
<!-- * PRED-2: <math> Z(y) \rightarrow \exists x Z(x) </math> -->
<!-- * PRED-3: <math> \forall x (W \rightarrow Z(x)) \rightarrow (W \rightarrow \forall x Z(x)) </math> -->
<!-- * 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'' で置換したものを表す。
 
== 健全性と完全性 ==
証明可能性の定義が持つ明らかな問題点は、それが場当たり的に見えることである。つまり、証明に使用する公理や推論規則はなんとなく選んでいるため、本来必要な公理あるいは推論規則を見逃しているかもしれないのである。[[ゲーデルの完全性定理]]は、実際にはそのような心配は無用であることを保証する。それによれば、任意のモデルで真である文はすべて一階述語論理で証明可能である。一階述語論理における「証明可能性」のいかなる適法な定義も、上述の定義と等価なものでなければならない(ただし証明可能性の定義の仕方によって、証明の長さが大きく異なることはありうるが)。
 
== 一階述語論理に関する定理 ==