情報数学 I

第十一回 (12月12日)

述語論理

Martin J. Dürst

http://www.sw.it.aoyama.ac.jp/2008/Math1/lecture11.html

AGU

© 2005-8 Martin J. Dürst 青山学院大学

今日の予定

記号論理

(symbolic logic)

命題の制限と述語

命題は各々の事実は別物として表わされてる

例: 今日は晴れ、明日は晴れ、明後日は晴れ、
2 が偶数、5 が偶数

「今日は晴なら明日も晴れ」とか「2が偶数なら3が偶数ではない」とは書けますが、「ある日が晴なら次の日も晴れ」とか「x が偶数なら x+2 も偶数」とは書けません。

述語は命題と同様、客観的に真偽が分かるものが対象

命題と違って、引数をとる (命題は引数 0 の述語)

引数が決定されない場合、述語の真偽も分からない

述語の例

晴 (今日)、 晴 (明日) 、偶数 (2)、偶数 (5) 等

一般的: 晴(x)、偶数(y) 等

述語によって以前書けなかったものが書ける:

晴 (x) → 晴 (x の次の日)

偶数 (x) → 偶数 (x+2)

述語は性質とか関係を表す

述語は命題と同じように真か偽であることがあるが、命題と違って未定であることもありうる。

一個の述語が未定であってもそれを含む論理式は未定ではないこともある。

 

述語と関数・関数

関数の例: father (x) = y

述語の例: Father (y, x)

関係と述語は非常に近い概念

内容より分野の違いが強い

一項述語はあるが、一項関係はない

一階述語論理

first order predicate logic

全称限量子

(全称記号、universal quantifier)

ある論理式がある変数の対象とする全ての値 (個体) に対して記述したいときに使う。

記号の由来: "for All" の A を逆さまにした

例: ∀x: P (x); ∀n∈ℕ: even (n) → even(n+2)

読み方:

存在限量子

(存在記号、existential quantifier)

ある論理式がある変数の少なくとも一つの値 (個体) について記述したいときに使う。

記号の由来: "there Exists" の E を逆さまにした

例: ∃y: P (y); ∃y∈ℕ: odd (y)

読み方:

応用例

father(x, y) が「xy の父である」と同じように、
mother, parent, grandparent, grandfather, grandmother 等の述語を使って、次のことを記述してください:

  1. 誰にも親がいる: ∀x: ∃y: parent(y, x)
  2. 全ての人間において、誰かの父であるならその人の親である: ∀x: (father(x, y) → parent(x, y))
  3. 全ての人間において、同じ人は父と母ではありえない: ∀x: ∀y: (¬father(x, y) ∨ ¬mother(x, y))
  4. 父の母は祖母である: ∀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))

述語論理式と量記号の性質

  1. ¬∀x: P(x) = ∃x: ¬P (x)
  2. ¬∃x: P(x) = ∀x: ¬P (x)
  3. x: P(x) → ∃x: P (x)
  4. (∀x: P(x)) ∧ Q(y) = ∀x: (P(x) ∧ Q(y))
  5. (∃x: P(x)) ∧ Q(y) = ∃x: (P(x) ∧ Q(y))
  6. (∀x: P(x)) ∨ Q(y) = ∀x: (P(x) ∨ Q(y))
  7. (∃x: P(x)) ∨ Q(y) = ∃x: (P(x) ∨ Q(y))
  8. x: P(x) ∧ ∀x: R(x) = ∀x: (P(x) ∧ R(x))
  9. x: P(x) ∨ ∀x: R(x) → ∀x: (P(x) ∨ R(x))
  10. x: P(x) ∨ ∃x: R(x) = ∃x: (P(x) ∨ R(x))
  11. x: P(x) ∧ ∃x: R(x) ← ∃x: (P(x) ∧ R(x))
  12. P(x) が恒真 ↔∀x: P(x) が恒真