削除された内容 追加された内容
編集の要約なし
編集の要約なし
46行目:
* 定数記号はアリティ 0 の関数記号と呼ばれることもある。
* 上の定義では述語は 1 以上のアリティを持つとされているが、アリティ 0 の述語も考えることができ、それらは「真」や「偽」を意味するものと考えることができる。しかし「真」は ∀''x''(''x'' '''=''' ''x'') などと別の方法で表せるので、アリティ 0 の述語を導入することに大きな意味はない。
* 括弧の使い方の流儀は様々である。ある人は ∀''x'' を '''('''∀''x''''')''' と書く。括弧の代わりにコロンや終止符を使う場合もある。もちろんその場合には、言語にコロンや終止符を含めておく必要がある。非常に珍しい表記法として括弧を全く使わない表記法に[[ポーランド記法]]を使用すと呼ばれ場合ものがある。これは、∧ や ∨ を先頭に書いて φ ∧ ψ を ∧ φ ψ のように書く方法である。ポーランド記法はコンパクトで数学的に取り扱いやすいという利点があるが、可読性が低いという欠点がある。
 
== 項と論理式 ==
53行目:
# ''t''<sub>1</sub> , ..., ''t''<sub>''n''</sub> が項で、''f'' がアリティ ''n'' の関数記号ならば、''f t''<sub>1</sub> … ''t''<sub>''n''</sub> は項である<ref>読みやすさを優先させて ''f t''<sub>1</sub> … ''t''<sub>''n''</sub> の代わりに ''f'' '''('''''t''<sub>1</sub>, …, ''t''<sub>''n''</sub>''')''' を用いる流儀も存在する。その場合は言語にカンマ "," を含めておく必要がある。</ref>。
# 上記の 1. と 2. によって項とされるものだけが項である。
項というのは直観的には議論領域に属するある対象をあらわす"名"の役割をもった記号列である。
 
'''自然数論の言語'''は等号を持つ一階の言語で、非論理記号として、2 変数述語記号 '''&lt;''' 、1 変数関数記号 '''S''' 、2 変数関数記号 '''+''' , '''·''' と定数記号 '''0''' を持つ。定義より、
: ''x''<sub>1</sub> ,  ''x''<sub>5</sub> ,  '''0''' ,  '''+''' ''x''<sub>1</sub>'''0''' ,  '''+ +''' ''x''<sub>1</sub>'''0'''''x''<sub>5</sub>
はすべて項である。 '''+''' ''x''<sub>1</sub>'''0''' や '''+ +''' ''x''<sub>1</sub>'''0'''''x''<sub>5</sub> は極めて読みにくいため、通常、これらの項を表すのに ''x''<sub>1</sub> '''+ 0''' や (''x''<sub>1</sub> '''+ 0''') '''+''' ''x''<sub>5</sub> のような表現が用いられる。
はすべて項である。通常、'''·''' , x + (y + −z) と書かれる。
+(x, y) = 0, ≤ +(x +(y −(z))) +(x, y) は原子論理式であり、通常 x + y = 0, x + y − z ≤ x + y と書かれる。
(∀x ∃y ≤ +(x y) z ∧ ∃x +(x, y) = 0) は論理式であり、通常 (∀x ∃y x + y ≤ z) ∧ (∃x x + y = 0) と書かれる。
 
項が何らかの対象を表す記号列であったのに対して、'''論理式''' (well-formed formula, wff) は何らかの文を表すものである。論理式は'''原子論理式'''と呼ばれる最も基本的な論理式から結合記号と量化記号を繰り返し用いることによって形成される。原子論理式次のように帰納的に定義される:
#: '''単純な述語と複雑な述語:'''ある正の整数 ''an''<sub>''i''</sub> が項であり、''P'' をに対するアリティ ''n'' &ge; 1 の述語記号とするとき、 ''PaP''<sub>1</sub> , ..., ''a''<sub>''n''</sub> は整論理式である。''a''<sub>''i''</sub> いずれかが自由変を持つなら、それが ''Pat''<sub>1</sub> , ..., ''at''<sub>''n''</sub> の自由変項となる。等号が論理の一部となっを用いいる場合、( ''aP t''<sub>1</sub> = ''at''<sub>2''n''</sub>) は整論理式であと表され。これらはいずれも[[記号列を原子論理式]]と呼ばれる
原子論理式を用いて、'''整論理式''' (well-formed formula, wff) あるいは'''論理式''' (formula) は次のように帰納的に定義される:
# '''帰納節 I: ''' &phi; が整論理式なら &not;&phi; も整論理式である。
# 原子論理式は論理式である。
# '''帰納節 II: ''' &phi; と &psi; が整論理式なら (&phi; &and; &psi;), (&phi; &or; &psi;), (&phi; &rarr; &psi;), (&phi; &harr; &psi;) は全て整論理式である。
# '''帰納節&phi; III: ''' &phipsi; が論理式なら&forall;''x'('''&phinot; &existphi;''x')''' , '''('''&phi; は論理式である(ここで&and; &psi;''x')''' は任意の個体変項)。, '''('''&phi; に含まれる&or; &psi;''x')''' 以外の自由変項がこれらの式の自由変項である。&forall;, '''('x''&phi; &rarr; &existpsi;''x')''' , '''('''&phi; において、&harr; &psi;''x')''' は自由論理式はなく「束縛されている」といわれる。
# &phi; が論理式で ''x'閉包節' が変数ならば、&forall;''x'' 上記以外&phi; , &exist;''x'' &phi; は論理式ではないある
# 上記の 1. と 2. と 3. によって論理式とされるものだけが論理式である。
 
例. 再び自然数論の言語を考える。定義から、
実際には、''P'' がアリティ2の述語である場合に、これを「''P a b''」ではなく「''a P b''」と表記することがある。例えば、&lt;1 2 ではなく 1 &lt; 2 のように書く。同様に ''f'' がアリティ2の関数である場合、これを「''f''(''a b'')」ではなく「''a f b''」と表記することがある。例えば、+(1 2) ではなく 1 + 2 と書く。また、曖昧さが発生しない限り括弧を省略することも一般的である。
:
 
は原子論理式
'''代入: ''' ''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'' とすることで問題を回避する。これを忘れるとひどい間違いを犯すことになる。
 
== 自由変数 ==
77 ⟶ 76行目:
== 論理式の真偽 ==
 
== 論理的帰結 ==
 
== 形式的証明 ==
 
== 代入 ==
'''代入: ''' ''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'' とすることで問題を回避する。これを忘れるとひどい間違いを犯すことになる。
 
== 同一性 ==
98 ⟶ 100行目:
ここでの定式化で用いられる命題論理の推論規則は、[[モーダス・ポネンス]]のみである。これは、&phi; と &phi; &rarr; &psi; がともに証明されていれば、&psi; を導いてよいというものである。
 
[[全称化]]と呼ばれる推論規則は述語論理に特有のものである。これは、以下のように定義される。
: ├ &phi; ならば ├ &forall;''x''&phi;
<!-- : <math>\mathrm{if} \vdash \phi, \mathrm{then} \vdash \forall x \phi</math> -->
104 ⟶ 106行目:
<!-- Universal Generalization が 汎化 でいいのか自信なし(訳者)-->
 
全称規則は[[様相論理学|様相論理]]の必然化規則と似ている点に注意されたい。
: ├ ''P'' ならば ├ □''P''
<!-- :<math>\mathrm{if} \vdash P, \mathrm{then} \vdash \Box P.</math> -->
133 ⟶ 135行目:
証明可能性については様々な異なる(しかし互いに等価な)定義の方法がある。上述の定義は[[ダフィット・ヒルベルト|ヒルベルト]]流計算の典型例であり、これは異なる公理を多数用意して推論規則を少なくするスタイルをとっている。[[ゲルハルト・ゲンツェン|ゲンツェン]]流の[[シークエント計算|述語計算]]では逆に、公理を少なくして推論規則を豊富に用意している。
 
== 健全性と完全性 ==
==
 
 
== 一階述語論理に関する定理 ==
以下、健全性定理と完全性定理以外の重要なメタ論理的定理を列挙する。
# 命題計算とは異なり、一階述語論理は(高々[[アリティ]]2の述語が一つでも含まれていると)決定不能である。つまり、任意の論理式 ''P'' について、''P'' が恒真であるか否かを決定する一般的なアルゴリズムは存在しない([[チューリングマシンの停止問題]]を参照せよ)。この結果は[[アロンゾ・チャーチ]]と[[アラン・チューリング]]がそれぞれ独立に導き出した。
# ただし、与えられた文(論理式)が恒真であるとき、かつそのときにのみ停止するチューリングマシンは存在する。逆に恒真でない論理式の場合は判定が停止しないかもしれない。これを「部分決定性がある」という。