| 講師 | Jacques Garrigue 教授 |
|---|---|
| 開講部局 | 理学部/理学研究科 2024年度春学期 |
| 対象者 | 理学部4年生・理学研究科(博士前期課程・博士後期課程) |
証明の正しさとはどうやって保証されるものなのか。自分が書いた証明に自信が持てないことはないだろうか。 多くの人が確認すれば、少し安心できるようになるが、証明が非常に大きくなるとそれも困難である。 人間と違い、正しくプログラムされた計算機は絶対に間違わない。計算機に論理の基礎を教えると、証明に間違いや不足がないことをチェックしてもらえる。定理証明支援系のCoqはそういうプログラムの一つである。 また、証明が必要なのは数学だけではない。特に、計算機のプログラムも間違いが起きやすく、その正しさを保証するのはまた証明である。プログラムが大きくなると必然的に証明が大きくなるので、ここでも計算機による証明が期待される。
この講義ではCoqを使い、数学の証明や証明付きプログラムを書く方法を習う。同時にその裏付けである関数型プログラミングと型理論にも触れることになる。
Coqは型理論に基づいた論理を基礎とし、同じ言語の中でプログラムと証明が表現できる。証明も人間が書くが、正しさがコンピュータに保証される。プログラム抽出機能により、証明されたプログラムを普通にコンパイルできる形に変換でき、高速に実行することもできる。
証明対象はプログラムに限定されるわけではなく、通常の数学の定理も証明できる。有名なものとして、4色定理や群論のFeit-Thompson定理がCoqで証明された。型理論の表現力を活用し、数論・代数学や解析学も扱える。なお、今回の講義では、この二つの定理に使われたMathCompというライブラリーを最初から使う予定である。
証明の正しさとは何か、そして実際に自分で安全な証明をどう書くのかをテーマにした講義で、実習の部分もあります。 この講義では理論的な面(論理学・型理論・アルゴリズム)と実践(実際にCoqを使ってコンピューターで証明を書く)を並行して進めています。そこで理論と実践がつながることが重要であり、場合によって、実践で扱う内容のために新たに理論(論理体系)を作ることにもなりました。最終的に数学の学生がうまく証明を書けることの助けになったと信じたい。また、扱えうテーマについて、途中から学生と相談して決めています。
詳しい講義予定(シラバス)は第1回の講義で配布する。授業の前半を講義、後半を実習に充てる。
この講義では新しいプログラミング言語と証明言語を習うことになるので、まずはその利用原理を教える。簡単な証明の書き方に慣れて来たら、プログラムの証明方法や様々な概念の扱い方を見る。
特に以下の内容を予定している。
講義資料は以下の URL から入手できる。
https://www.math.nagoya-u.ac.jp/~garrigue/lecture/2024_SS/index.html
この講義は実習時間がとってあるが、課題が時間内に終わらないことが多い。
自分のパソコンで環境を整え、課題を解く時間が必要になる。それに関して講義内で指示する。

この 作品 は クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスの下に提供されています。
February 20, 2026