情報数学 I
第十二回: 述語論理
Martin J. Dürst
duerst@it.aoyama.ac.jp
O 棟 529号室
http://www.sw.it.aoyama.ac.jp/2006/Math1/lecture12.html
© 2005-2007 Martin J. Dürst 青山学院大学
今日の予定
- 去年の宿題と復習
- ミニテストについて
- これからの予定
- 述語論理
- 授業調査 (最後の 15分)
冗談の宿題
Q: Why do computer scientists always think Christmas and Halloween are the
same ?
質問:
なぜで情報テクノロジーの専門家はクリスマスとハロウィーンをいつも誤解するか。
A: Christmas is Dec 25 (十進数 25), Halloween is Oct 31 (八進数
31)
もう一つの冗談
質問: 情報テクノロジーで還暦は何歳か。
解答: 64歳 (26歳)
ミニテストについて
- 採点が終了
- 解答例 (正解を見るには Opera,
Firefox, IE7
等、スタイルシートを変更できるブラウザを使う)
- 返却: 今日14:00からO-529号室の前
- コメント
- 準備不足の学生が多かった
- 質問をよく読むこと
例: 計算、説明、証明などの違い
これからの予定
- 1月19日 (金): 最後の授業
- 1月26日 (金)、11:10-12:35: 期末試験
記号論理
(symbolic logic)
- 論理のモデルを作って、記号演算だけで論理ができるようにする。
- 論理にはいくつかの種類がある。例えば:
- 二値論理 (真と偽だけ)
- 多値論理 (真と偽以外の値がある)
- ファジィ論理 (曖昧さの計算を含む)
- 命題論理 (propositional logic, 命題だけを使う)
- 述語論理 (predicate logic, 一階 (first order) 等)
- 時間など他の要素を取り入れた論理
命題の制限と述語
各々の事実は別物として表わされてる
例: 今日は晴れ、明日は晴れ、明後日は晴れ、2
が偶数、5 が偶数
「今日は晴なら明日も晴れ」とか「2が偶数なら3が偶数ではない」は書けますが、「ある日が晴なら次の日も晴れ」とか「x
が偶数なら x+2 も偶数」は書けません。
述語の例
晴 (今日)、 晴 (明日) 、偶数 (2)、偶数 (5) 等
述語によって以前書けなかったものが書けるようになる:
晴 (x) → 晴 (x の次の日)
偶数 (x) → 偶数 (x+2)
述語は性質とか関係を表す
述語は命題と同じように真か偽であることもあるが、命題と違って未定であることもありうる。
一個の述語が未定であってもそれを含む論理式は未定ではないこともある。
述語と関数・関係
関数の例: father (x) = y
述語の例: father (y, x) (y は
x の父)
関係と述語は非常に近い概念で、内容より分野の違いが強い
一項述語はあるが、一項関係はない
一階述語論理
first order predicate logic
- 述語の値には変数、関数、式などが使える
- しかし、述語の中に述語が使えない
反例: says(z, father (y, x))
(z は「y が x
の父である」と言う)
- 高階述語論理は一階述語と違って、述語の中に述語を許す
(全称記号、universal quantifier)
ある論理式がある変数の対称とする全ての値 (個体)
に対して記述したいときに使う。
記号の由来: "for All" の A を逆さまにした
例: ∀x: P (x); ∀n∈ℕ: even
(n) → even(n+2)
読み方: For all x, P(x); 全ての x
において、P(x); 任意の x において、P(x)
存在限量子
(存在記号、existential quantifier)
ある論理式がある変数の少なくとも一つの値 (個体)
について記述したいときに使う。
記号の由来: "there Exists" の E
を逆さまにした
例: ∃y: P (y); ∃y∈ℕ: odd
(y)
読み方: There exists a y so that P(y);
P(y) が成立する y が存在する; ある
y について P(y)
応用例
father(x, y) が「x が y
の父である」と同じように、mother, parent, grandparent,
grandfather, grandmother
等の述語を使って、次のことを記述してください:
- 誰にも親がいる: ∀x: ∃y:
parent(y, x)
- 全ての人間において、誰かの父であるならその人の親である:
∀x: (father(x, y) →
parent(x, y))
- 全ての人間において、同じ人は父と母ではありえない:
∀x: ∀y: (¬father(x, y)
∨ ¬mother(x, y))
- 父の母は祖母である: ∀x: ∀y:
∀z: (mother(x, y) ∧
father(y, z) →grandmother(x,
z))
変数の使い方
- 束縛変数 (bound variable):
- 量記号を伴っている変数
例: ∀x: (P(x) ∧ Q(y)) の
x
- 自由変数 (free variable):
- 量記号を伴っていない変数
例: ∀x: (P(x) ∧ Q(y)) の
y
- 閉論理式 (closed formula):
- 自由変数を含まない論理式
- 作用領域 (スコープ、scope)
- 束縛変数 (やその量記号) の影響範囲
束縛変数はスコープ内に書き換えてもよい
束縛変数はスコープ外に現れると間違い
量記号の組み合わせ
素数の数が無限である:
∀x: ∃y: (y > x ∧
素数 (y))
順番を入れ替えると意味が変わる:
∃y: ∀x: (y > x ∧
素数 (y))
述語論理式と量記号の性質
- ¬∀x: P(x) = ∃x: ¬P
(x)
- ¬∃x: P(x) = ∀x: ¬P
(x)
- ∀x: P(x) → ∃x: P
(x)
- (∀x: P(x)) ∧ Q(y) =
∀x: (P(x) ∧ Q(y))
- (∃x: P(x)) ∧ Q(y) =
∃x: (P(x) ∧ Q(y))
- (∀x: P(x)) ∨ Q(y) =
∀x: (P(x) ∨ Q(y))
- (∃x: P(x)) ∨ Q(y) =
∃x: (P(x) ∨ Q(y))
- ∀x: P(x) ∧ ∀x: R(x) =
∀x: (P(x) ∧ R(x))
- ∀x: P(x) ∨ ∀x: R(x) →
∀x: (P(x) ∨ R(x))
- ∃x: P(x) ∨ ∃x: R(x) =
∃x: (P(x) ∨ R(x))
- ∃x: P(x) ∧ ∃x: R(x) ←
∃x: (P(x) ∧ R(x))
- P(x) が恒真 ↔∀x: P(x) が恒真
授業調査
- 鉛筆 (できれば HB) で記入
- 科目名 (情報数学 I)、担当教員 (Martin J.
Dürst)、曜日、時限を必ず記入
- 自分の名前、学籍番号は絶対記入しない
- 残りの記入は自由
- 自由欄には是非沢山具体的に書いてください
- 持ち帰り禁止; 必ず指定の学生に返却
- 教員は結果を成績決定後にしか読めない