情報数学 I
第十三回:
証明の方法(2012年1月18日)
Martin J. Dürst
http://www.sw.it.aoyama.ac.jp/2011/Math1/lecture13.html
© 2006-12 Martin
J. Dürst 青山学院大学
今日の予定
これからの予定
- 1月20日 (金): 14回目の授業
- 1月27日(金曜日2限、11:10-12:35): 期末試験
前回からの宿題
九去法の応用例:
次の二つの計算のうち、一つだけ正しいが、どちらでしょうか:
2485938 · 4962483 = 12336425064054
3 · 0 ≡(mod 9) 0 ⇒ 正しい可能性がある
(実際に正しい)
2354987 · 2498472 = 5883469079864
2 · 0 ≢(mod 9) 5 ⇒ 正しくない (正解は
5883869079864)
配布テキストについて
- (有名な) 言語理論の教科書から
言語理論やオートマトン理論についての語句は無視してよい
- 一般的で分かりやすいので配布
- たまに違う「方言」を使用
- 試験の範囲内
証明の大切さ
- 数学の重要な道具
- 情報テクノロジー
- データ構造の性質の証明
- アルゴリズムの正しさや性質の証明
- プログラムの正しさや性質の証明
- プログラムの変換の正しさの証明
どこまで証明すればよいか
証明の方法
- 演繹的証明 (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
本に共通点がある。
復習
次回の授業の後半にみなさんの希望に応じて復習を予定している
質問、疑問などなんでも結構