情報数学 I
第十二回: 証明の方法 (2010年 1月
8日)
Martin J. Dürst
http://www.sw.it.aoyama.ac.jp/2009/Math1/lecture12.html
© 2006-10 Martin
J. Dürst 青山学院大学
今日の予定
- これからの予定
- 前回の復習
- 証明の方法
- 授業改善のための学生アンケート
参考書
参考書のリスト
これからの予定
- 1月15日 (金): 最後の授業 (補講)
- 1月22日: 期末試験 11:10-12:35
- 期末試験の内容:
授業・プリントの全ての内容
- 過去の試験の例:
前々回の宿題の解答
Q: Why do computer scientist always think Christmas and Halloween are the
same ?
質問:
なぜ情報テクノロジーの専門家はクリスマスとハロウィーンをいつも誤解するか。
Halloween |
October 31 |
oct 31 |
八進数で 31 |
Christmas |
December 25 |
dec 25 |
十進数で 25 |
もう一つの冗談
質問: 情報テクノロジーで還暦は何歳か
64 = 26
前回の復習
- 記号論理の種類: 命題論理、述語論理など
- 述語は命題と違って、引数を取る
- 述語では命題より一般的な記述、推論が可能
- 全称限量子 (∀) と存在限量子 (∃)
量記号の復習
量記号の場合の注意点:
- 全集合の把握
- 書き方 (コロン、括弧など)
- 使用する述語の定義
- 自由変数の存在
量記号の性質の具体例
- ∀x: P(x) ∧ ∀x: R(x) =
∀x: (P(x) ∧ R(x))
例:
全ての学生において、30歳以下である、かつ全ての学生において、理工学部在籍である
=
全ての学生において、30歳以下かつ理工学部在籍である
- ∀x: P(x) ∨ ∀x: R(x) →
∀x: (P(x) ∨ R(x))
左から右への例:
全ての学生において、30歳以上である、又は全ての学生において、理工学部在籍である
→
全ての学生において、30歳以上又は理工学部在籍である
右から左への反例:
全ての学生において、男性である又は女性である
しかし、全ての学生が男性である、又は全ての学生が女性であるが偽
- ∃x: P(x) ∨ ∃x: R(x) =
∃x: (P(x) ∨ R(x))
例:
ある学生において、東京都出身である、又はある学生において神奈川県出身である
=
ある学生において、東京都出身である又は神奈川県出身である
- ∃x: P(x) ∧ ∃x: R(x) ←
∃x: (P(x) ∧ R(x))
右から左への例:
ある学生において、広島県出身であるかつ女性である
→
ある学生において、広島県出身である、かつある学生において、女性である
左から右へな反例:
ある学生において、北海道出身であるかつある学生において女性である
ある学生において北海道出身であるかつ女性であるとは限らない
証明の大切さ
- 数学の中心的道具
- 情報テクノロジー
- データ構造の性質の証明
- アルゴリズムの正しさや性質の証明
- プログラムの正しさや性質の証明
- プログラムの変換の正しさの証明
配布テキストについて
- (有名な) 言語理論の教科書から
言語理論やオートマトン理論についての語句は無視してよい
- 一般的で分かりやすいので配布
- たまに違う「方言」を使用
- 試験の範囲に含む
どこまで証明すればよいか
証明の方法
- 演繹的証明 (deductive proof, proof
by deduction)
- 帰納的証明 (inductive proof, proof by induction)
- 背理法 (proof by contradiction)
- 反例による証明 (proof by counterexample)
- 集合についての証明 (proof about sets)
- 列挙による「証明」(proof by enumeration)
証明と記号論理
- 演繹的証明: (H ∧ (H→C)) ⇒
C など
- 帰納的証明: (S(b) ∧ ∀n≥b:
S(n)→S(n+1)) ⇒ ∀n≥b:
S(n)
- 背理法: (S→¬S) ⇒ ¬S
- 反例による証明: ∃x: ¬P (x) ⇒ ¬∀x: P(x)
- 列挙による「証明」: 例: 真理表
演繹と帰納
演繹 (deduction): 一般の原理から特定な場合を推論する
帰納 (induction): 少数の事実から一般の原理を推測する
数学的帰納法 (mathematical induction)
目的: ある構造の部分の (殆ど)
全てについて何かを証明する
「ある構造」は整数が多いが、木などもありうる
数学的帰納法は一般の分類では帰納では無く演繹である
情報テクノロジーでの数学的帰納法の応用
- アルゴリズムやデータ構造の設計や性質の証明
- プログラムについての証明
数学的帰納法の二つのステップ
- 基底 (base)
- 帰納 (induction)
整数の場合:
- P(0) が成り立つことを証明する
- P(k) が成り立てば P(k+1)
も成り立つことを証明する
数学的帰納法の種類・変更
- 基底を P(0) ではなくて P(1) や P(2) などにする
- P(n+1) の証明に k≤n
の一部又は全てのP(k) を使う
- 一部の整数に限る
(例えば偶数だけ、2n など)
- 整数そのものではなく、整数で整理できるものに応用する
- 枝分かれや他の構造を許す (条件: (半)順序)
演習題
次の証明のどこがおかしいのかを見つけてください。
- 全てのお互いに平行ではない平面上の直線 n
本は全て一つの点を共有する。
証明:
- 基底: n=2 の場合に明らかである。
- 帰納: n+1 本の場合、最初の n
本にも、最後の n
本にも共通点があるので全ての n+1
本に共通点がある。
授業改善のための学生アンケート
お願い:
できるだけ自由記述を使って、具体的に書いてください