情報数学 I
第十二回: 数学的帰納法
Martin J. Dürst
duerst@it.aoyama.ac.jp
O 棟 529号室
テュールスト マーティン ヤコブ
http://www.sw.it.aoyama.ac.jp/2005/Math%20I/lecture12.html
© 2005 Martin
J. Dürst 青山学院大学
先週の宿題
提出: 1 月13日 (月曜日)、授業前、A4 一枚
father(x, y) が x が y
の父であると同じように、mother, parent, grandparent, grandfather,
grandmother
等の述語を使って、次のことを記述してください:
- 誰にも親がいる: ∀x: ∃y:
parent(y, x)
- 誰かの父であるならその人の親である: ∀x:
∀y: 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)
それ以外にも恒真であることを四つ記述して、何を記述したのかを説明してください。
述語論理式と量記号の性質
- ¬∀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) が恒真
変数の使い方
- 束縛変数 (bound variable):
- 量記号を伴っている変数
- 自由変数 (free variable):
- 量記号を伴っていない変数
- 閉論理式 (closed formula):
- 自由変数を含まない論理式
- 作用領域 (スコープ、scope)
- 束縛変数の影響範囲。束縛変数をスコープ内に書き換えてもよい。
高階述語
1
階述語と違って、高階述語は述語の引数として述語を許す。
例: x は「y が z の父である」と知っている。
know (x, father(y, z))
数学的帰納法
(mathematical induction)
目的: 正の整数の全てについて何かを証明する
述語論理でいうと正の整数において ∀n:
P(n) を証明したい。
帰納 (induction): 少数の事実から一般の原理を推測する
演繹 (deduction): 一般の原理から特定な場合を推測する
数学的帰納法の二つのステップ
- P(0) が成り立つことを証明する (基底の証明)
- P(k) が成り立てば P(k+1)
も成り立つことを証明する (帰納の証明)
数学的帰納法の種類・変更
- P(n+1) の証明に k≤n
の全てのP(k) の証明を使う
- 基底を P(0) ではなくて P(1) とか P(2) にする
- 一部の整数に限る
(例えば偶数だけ、2n など)
- 整数そのものではなくても、整数で整理できるものに応用する
- 枝分かれを許す
情報テクノロジーでの数学的帰納法の応用
- アルゴリズムやデータ構造の設計や性質の証明
- プログラムについての証明
宿題
次の証明のどこがおかしいのかを見つけてください。
- 全てお互いに平行ではない平面上の直線 n
本は全て一つの点を共通する。
証明:
- 基底: n=1 と n=2
の場合に明らかである。
- 帰納: n+1 本の場合、最初の n
本にも、最後の n
本にも共通点があるので全ての n+1
本に共通点がある。