Post on 29-May-2018
1
一階述語論理(first-order predicate logic)
一階述語論理入門
構文論(論理式の文法)
意味論(論理式の解釈)
認知システム論 知識と推論(4)知識と論理でを組み合わせて問題を解決する
前回までは,「命題論理」の構文と意味,および推論規則について学んだ.今回からは,命題論理よりも表現力の高い「一階述語論理」を学ぶ.今回はその導入部分であり,最初に,命題論理では表現力が不十分であることを理解した後,一階述語論理の構文(論理式の文法)と意味(論理式の解釈)について学ぶ.一階述語論理(first-order predicate logic)は,文献によっては単に,述語論理(predicate logic)あるいは一階論理(first-order logic; FOL)と呼ばれることもある.
2
一階述語論理入門(1/9):命題論理の世界
命題論理の世界(原始命題の世界)
原始命題を論理記号(¬∧∨→)でつないで複雑な命題を表現
PQ
原始命題の真偽しか表現されない
true true
false
原始命題より細かな情報は表現されない
まず,すでに学んだ命題論理の世界の概略を復習しておこう.
命題論理を構成する基本的な要素は原始命題である.これは,P, Q などの1つの命題記号で表現されるものである.命題記号をそれ以上細かな要素に分解することはできない.そして,原始命題について興味のある情報は,真偽のみであり,それ以外の知識を表現することはできない.
原始命題を論理記号で結合することによって,より複雑な命題が表現される.
3
一階述語論理入門(2/9)命題論理の表現力の限界
PP Q⇒
Q
雨が降っているならば道路が濡れている
雨が降っている
道路が濡れている
これはOK
論理的帰結
命題論理がうまくはたらく例を見ておこう.このスライドの例では,雨が降っていることをP,道路が濡れていることをQで表し,Pおよび「PならばQ」という2つの知識から,Qであることを論理的帰結として導いている.いったん,P,Qに置き換えると,もとの意味を知らなくても,機械的にこの推論が可能であることが重要である.
4
一階述語論理入門(3/9)命題論理の表現力の限界
ソクラテスは人間である(Socrates is a human.)
ソクラテスは死ぬ運命にある(Socrates is mortal.)
論理的帰結
これは?
すべての人間は死ぬ運命にある(Every human is mortal.)
P
Q
R
ところが,このスライドの例では,命題論理ではうまくいかない.
「ソクラテスは人間である」は原始命題なのでPで表す.
「すべての人間は死ぬ運命である」は,結構複雑なことを言っている文だが,命題論理の理論体系ではこの文をそれより細かな命題に分解できないので,やはりこれも原始命題なので,Qで表す.
人間なら,この2つの命題から「ソクラテスは死ぬ運命である」という結論を導くことができる.
しかし,コンピュータは機械的にこれを導けるだろうか? 答えは否である.もとの意味を失って,PとQだけにしてしまったので,この2つからは有益な知識は何も導かれない.たとえば,いま議論している「ソクラテスは死ぬ運命である」も原始命題なのでRと表すとして,明らかに,RはP∧Qの論理的帰結ではない.(PとQが真で,Rが偽である解釈が存在する.)
これが命題論理の表現力の限界である.今回学ぶ一階述語論理はこの限界を克服する表現力をもつ.
5
一階述語論理入門(4/9)
一階述語論理の世界(オブジェクトの世界)
SocratesJack Will
Elizabeth
Mickey
Mortal
MortalAibo
Human
Human
オブジェクトの性質(property)を命題として表現できる
オブジェクト(個体)を表現できる
オブジェクト間の関係(relation)を命題として表現できる
オブジェクト間の関数(function)を表現できる
名前のない要素もOK
Human
一階述語論理の世界を構成する基本的な要素はオブジェクトである.オブジェクトは命題ではない.このスライドでは,オブジェクトとして人やアニメキャラクターやロボットを示しているが,応用目的に応じて,オブジェクトは何でも良い.ここでいう「オブジェクト」とは,「オブジェクト指向プログラミング」でいう「オブジェクト」とは関係なく,単に「モノ」という意味である.オブジェクトは有限個であっても無限個であってもよい.
この世界に関する知識として,一階述語論理は,つぎのようなことを表現できる.
- オブジェクトの性質.たとえば,Socrates やWill というオブジェクトはHumanという性質(プロパティ)をもつことを表現できる.
- オブジェクト間の関係.たとえば,JackとWillは友人関係にあることを表現できる.
- オブジェクト間の関数.関数とは,任意にオブジェクト x が与えられると,それに対応したただ1つのオブジェクト y に対応づける写像である.たとえば,Elizabeth をその父親(図では名前はない)に対応づけることができる.
6
一階述語論理入門(5/9)
A BA is a friend of B.
father of AA
AMortal A is mortal.
A
オブジェクトの性質(property)を命題として表現
オブジェクト(個体)を表現
オブジェクト間の関係(relation)を命題として表現
オブジェクト間の関数(function)を表現
A個体記号
A
( )Mortal A
個体記号
述語記号(1変数)
( , )Friend A B
述語記号(2変数)
( )father A
関数記号
名前のない要素
このスライドの右端にある表現が,一階述語論理による具体的な表現である.
1つめは,個体記号を用いて,オブジェクト(個体)を表現している.(オブジェクトは命題ではない.)
2つめは,1変数の述語記号を用いて,オブジェクトの性質を命題として表現している.
3つめは,2変数の述語記号を用いて,オブジェクト間の関係を命題として表現している.
4つめは,関数記号を用いて,オブジェクト間の関数を表現している.(関数の表現は命題ではない.)
7
一階述語論理入門(6/9)
AA is a friend of the father of B.
B
( , ( ))Friend A father B
原始命題は,1つの述語記号とその引数(項)から構成される
項 (term)原子式 (atom)
一階述語論理では,原子式が原始命題を表現する.
以上を組み合わせて,さらに複雑な知識を表現できる.たとえば,このスライドの表現は,「AはBの父の友人である」ことを表す命題である.「Bの父」の名前に言及することなく,その人物とAとの友人関係が表現されている.
ここで,Aやfather(B)は,オブジェクトを表す表現である.このような表現を項(term)という.
また,命題はFriend(A, father(B)) は,これ以上分解すると項になり,命題ではなくな
る.これは原始命題に相当するもので,一階述語論理では原子式と呼んでいる.
8
一階述語論理入門(7/9)
すべての人間は死ぬ運命にある(Every human is mortal.)
( ) ( )x Human x Mortal x∀ →
変数記号変数記号
全称記号
Every human is mortal.
= Everything is mortal if it is human.
= For all object,if it is human, then it is mortal.
∀ と → の組合せは,相性が良い.
さらに,一階述語論理では,全称記号∀と変数を用いて,すべてのオブジェクトが満たしている命題をまとめて表現することができる.このスライドの例では,
「すべてのxについて,もしxが人間ならば,xは死ぬ運命にある」
という一般的な知識が表現されている.この例のように,全称記号(∀)と含意記号(→)は相性が良く,組み合わせて知識が表現されることが多い.まず, (∀x)で「すべてのxについて」と言っておき,その後,実際にはある種の限定された範囲のxであることを含
意(→)の前提で規定するのである.
9
一階述語論理入門(8/9)
ソクラテスは人間である(Socrates is a human.)
ソクラテスは死ぬ運命にある(Socrates is mortal.)
論理的帰結
すべての人間は死ぬ運命にある(Every human is mortal.)
( )Human Socrates
( ) ( )x Human x Mortal x∀ →
( )Mortal Socrates
これは機械的に導出可能!( x = Socrates )
詳しくは次回以降に学ぶが,一階述語論理によって,さきほど命題論理では不可能だった推論が可能となる.
実際,この例では,
「すべての人間は死ぬ運命である」
と
「ソクラテスは人間である」
を一階述語論理で記号化すると,あとは機械的に
「ソクラテスは死ぬ運命である」
という結論を導くことができる.
そのキモは,変数xに自動的にSocratesを代入することによって,命題論理のモーダス・ポネンス(あるいは融合)の推論規則
Human(Socrates)Human(Socrates)→Mortal(Socrates)
-------------------------------------------------------Mortal(Socrates)
が適用できるように論理式を変形することにある.
10
一階述語論理入門(9/9)
ミッキーは,人間の友達をもっている(Mickey has a human friend.)
( ) ( , )x Human x Friend x Mickey∃ ∧存在記号
Mickey has a human friend.
= Mickey has something which is human andhis friend.
= There exists something which is human and which is a friend of Mickey.
∃ と ∧ の組合せは,相性が良い.
また,一階述語論理では,存在記号∃と変数を用いて,指定された条件を満たすあるオブジェクトが少なくとも1つ存在することを表現することができる.このスライドの例では,
「あるxが存在し,そのxは人間であり,かつ,xはミッキーの友人である」
という知識が表現されている.この例のように,存在記号(∃)とAND記号(∧)は相性が良く,組み合わせて知識が表現されることが多い.まず, (∃x)で「あるxが存在して」と言っておき,その後に,そのxが満たすべき条件を AND で結合することによって,xの存在範囲を限定していくのである.
11
述語論理の構文論
論理式の文法
12
構文論(1/6) 一階述語論理の構成要素
個体記号(定数):
変数:
関数記号:
述語記号:
SocratesJohncba ,30,,,,
vuzyx ,,,,
plusagefatherhgf ,,,,,
GREATERMORTALHUMANRQP ,,,,,
一階述語論理の構文要素
))30,()),((())(( aplusJohnfatherageGREATERJohnfatherDOCTOR ∧ジョンの父は医師であり,かつ,その年齢は a+30 より大きい
一階述語論理の構文論(syntax)とは,「論理式」を作るために「記号」を正しく並べるた
めの「文法」を規定するものである.その並べる記号は,このスライドにある4種類に分類できる.(そのほかに,∧∨¬→∀∃など,事前に組み込まれている論理記号がある.)
個体記号(individual symbol)は,定数(constant)とも呼ばれ,個々のオブジェクトを
表す記号である.
変数は,やはり1つのオブジェクトを表す記号なのだが,特定のオブジェクトではなく,
後に,∀∃などの記号とともに,不定のオブジェクトを指すために用いられる.(「変数」といっても,「数」を表すものに限定されない.)
関数記号は,1つ以上のオブジェクトを引数とし,1つのオブジェクトに対応させる関数を表現する.
述語記号は,1つ以上のオブジェクトを引数とし,真理値(真または偽)に対応させる関数(そういう関数を述語という)を表現する.
13
構文論(2/6) 項
定数:特定のオブジェクト
変数:不特定のオブジェクト
項:定数や,変数,関数記号を用いて別のオブジェクトを表現
Johnx
( )father John( ( ))age father John
( ,30)plus a
(項に,述語記号は用いない)
定数や,変数,関数記号を用いて,別のオブジェクトを表現する「項」(term)を構成す
ることができる.たとえば,
father(John) :ジョンの父
age(father(John)) :ジョンの父の年齢
plus(a,30) :a+30がその例である.
項はオブジェクトを表現するものであり,真偽を表現するものではない.したがって,4種類の記号のうち,項には述語記号が用いられないことに注意しよう.
14
構文論(3/6) 項
項
(1) 定数は項である.
(2) 変数は項である.
(3) f が n変数の関数記号, 1, , nt t が項ならば,
1( , , )nf t t は項である.
1つ前のスライドで述べた「項」の正式な文法はこのスライドのとおりである.
15
構文論(4/6) 原子式
原子式:それ以上分解すると命題ではなくなる命題
( )DOCTOR John
( ( ),20)GREATER age John
原子式
Pがn変数の述語記号, 1, , nt t が項ならば,
1( , , )nP t t は原子式である.
「原子式」は,それ以上分解すると命題ではなくなる命題(原始命題)(原子命題と書くこともある)を表すもので,述語記号の引数として項を並べたものである.
16
構文論(5/6) 限量子
限量子:
( )x∀
( )x∃
全称記号「すべての x について」
存在記号「ある x が存在して」
(for all x , …)
(there exists x such that …)
All
Exists
全称記号∀と存在記号∃(この両者をあわせて限量子という)によって,変数xのもつ
不定性の意味を規定する.
∀x は,「すべてのxについて」(for all x),∃xは,「あるxが存在して」(there exists x such that …)のように読む.
17
構文論(6/6) 論理式
論理式:原子式を論理結合子および限量子と組合せて作る命題
原子式 は論理式である.
論理式
が論理式ならば,以下の5つも論理式である.
,P Q
( )P Q∧ ( )P Q∨( )P Q→ ( )P Q↔
が論理式ならば,以下の2つも論理式である.P
( )P¬
( )x P∀ ( )x P∃
原子式を論理結合子や限量子と組み合わせることによって,一階述語論理の「論理式」を作ることができる.このスライドでは,その文法を帰納的に定義している.
18
述語論理の意味論
解釈に基づく論理式の真理値の計算
19
意味論(1/7) 解釈
命題論理:
命題記号への真理値の割り当てを解釈と呼ぶ
QP,一階述語論理:
)(JohnDOCTOR)20),(( JohnageGREATER
定数,変数,関数記号,述語記号がそもそも何を意味するかを決定しなければならない
ここから,一階述語論理の意味論を学ぶ.その中心となる概念が論理式の「解釈」(interpretation)である.
命題論理の場合,「解釈」とは,論理式に現れるP,Qなどの命題記号への真理値(TまたはF)への割り当てのことであった.
それに対し,一階述語論理の場合には,4種類の記号(個体記号,変数,関数記号,述語記号)が含まれるので,それぞれが何を意味するのかを表すものが「解釈」となる.
20
意味論(2/7) 解釈
解釈
論理式Gの解釈は,次の4つのことを具体的に決定することで定義される.
空でない集合D(定義域という)
G中の各個体記号(定数)の意味として,Dの要素を一つ割当てる.
n変数の各関数記号の意味として, nD からDへの写像を割当てる.
n変数の各述語記号の意味として, nD から {T, F} への写像を割当てる.
一階述語論理における「解釈」の定義は,このスライドのとおりである.すなわち,「解釈」とは,まず,空でない集合(定義域)を明確にし,それを基礎として,個体記号,関数記号,述語記号の意味を割り当てたものである.
数学的な言葉で説明しているので,みかけは難解に見えるかもしれないが,言っていることは,これまですでに直観的に述べたとおりの意味を表現しているにすぎない.
21
意味論(3/7) 解釈
),( NineOneGREATER解釈の例
定義域 D={0, 1, 2, …. }
定数への割当て
述語への割当て
91
NineOne
>
GREATER
解釈1
( , ) (1 9)GREATER One Nine F= > =
このスライドは,論理式
GREATER(One,Nine) の一つの例を示している.
定義域Dを非負整数の全体とする.
定数には,それぞれ,Dの要素を割り当てる必要がある.この解釈では,Oneには1,Nineには9を割り当てている.
述語記号は,ただ1つ,GREATERである.これは2変数なので,引数として,2つの非負整数を受け取ったときに,真または偽を返す関数を割り当てる必要がある.ここでは,数学でふつうに使われる大小関係(>)を関数とみなして割り当てている.たとえば,(5>3)=Tである.この解釈によると,冒頭の論理式の値は
GREATER(One,Nine) = (1>9) = Fと計算できる.
22
意味論(4/7) 解釈
( , )GREATER One Nine T= =「尾根さんは,仁根さんより偉大である」
解釈2 定義域 D={尾根さん,仁根さん}
定数への割当て
仁根さん尾根さん
NineOne
述語記号への割当て
仁根さん
尾根さん
仁根さん
尾根さん
y
F
F
T
F
GREATER(x,y)
仁根さん
仁根さん
尾根さん
尾根さん
x
GREATER(x,y): 「xはyよりも偉大である」
もちろん,解釈は自由に与えられるので,1つ前のスライドで示したものが,論理式GREATER(One,Nine) の唯一の解釈というわけではない.たとえば,このスライドに示
した意外な解釈もあり得る.
定義域Dは,2人の人物「尾根さん」と「仁根さん」からなる集合とする.
定数Oneには「尾根さん」,Nineには「仁根さん」を割り当てる.(これは,たまたま,記号をローマ字読みしたものになっているが,本来,別にそのような必要もない.)
述語記号 GREATERは,「より偉大である」という意味なのであろうか.ただし,「より偉大である」という言葉では数学的に厳格な定義とはならないので,この表のように,2つの引数にDの要素を受け取ったときに,TかFの値を返すような関数として定義している.
この解釈によれば,冒頭の論理式の値は
GREATER(One,Nine) = 「尾根さんは,仁根さんより偉大である」 = Tと計算できる.
23
意味論(5/7) 解釈
関数記号を含む場合の解釈
( , ( ))LOVES John father John T=
定義域 D={人物1, 人物2, 人物3, …}
人物5
John
述語記号への割当て
father(人物 i) = 人物(i+1)
関数への割当て定数への割当て
LOVES(人物 i, 人物(i+1)) = T
LOVES(人物 i, 人物(i+2)) = T
それ以外は,LOVES(人物 i, 人物 j) = F
実世界のDBを用いても可
定義域は無限集合でもよい.たとえば,Dを無限の人の集合とし,人を区別するために,1,2,3,…と番号付けることにする.
定数 Johnには,たとえば,人物5を割り当てる.
関数記号 father は,
father(x)=「xの父親」
と解釈する.このスライドの例では,「人物i」の父親は,番号の1つ多い「人物 i+1」であ
るという世界を解釈として与えている.
述語記号 LOVESは,
LOVE(x,y)=「xはyを愛している」
と解釈する.数学的に,厳密にするため, 「人物i」は,番号の1つ多い「人物 i+1」と,番号の2つ多い「人物 i+2」を愛しているという世界を示している.
もちろん,この2つの世界は単なる例であり,実世界の親子関係や恋愛関係のデータベースがあれば,それによって,具体的な解釈の内容を定義してよい.
24
意味論(6/7) 論理式の真理値の計算
原子式の真理値は解釈によって直接定まる.
論理式の真理値
の真理値が定まっていれば,以下の論理式の真理値も計算できる.
,P Q
( )P Q∧ ( )P Q∨ ( )P Q→ ( )P Q↔は,P の真理値がD のすべての要素
x についてT ならばT,さもなくば F .
( )P¬
( )x P∀
( )x P∃ は,P の真理値がD の少なくとも1つの要素x についてT ならばT,さもなくば F .
1つ前のスライドのように,「解釈」を与えて,はじめて論理式の真理値を計算することができる.このスライドは,その計算規則を示している.いずれも,ごく自然な定義になっている.
25
意味論(7/7) 充足不能,充足可能
恒真 どんな解釈のもとでも真
充足不能 どんな解釈のもとでも偽
充足可能 ある解釈のもとで真
論理的帰結
のすべてを真とするどんな解釈のもとでも
が真Q1 2, , , nP P P
1 2 nP P P Q∧ ∧ ∧ ∧ ¬ が充足不能
命題論理と同様に,恒真,充足不能,充足可能,論理的帰結という概念を定義することができる.定義の内容は,表面的には,命題論理のときと同じである.しかし,内容的には,「解釈」の厳格な定義が,命題論理と一階述語論理とでは異なっていることに注意しよう.
また,QがP1,…,Pnの論理的帰結であることは,P1∧…∧Pn∧¬Qが充足不能であることと同値である(背理法)ということが,命題論理と同様に成り立つ.