日時 | 火曜日2限(10:30〜12:00) |
場所 | 総合研究7号館情報1 |
担当教員: | 五十嵐 淳 |
オフィスアワー: | 火曜日 17:00〜18:00 (総合研究7号館224) |
(その他の時間は要アポイントメント) | |
担当TA: | 村瀬唯斗(通信情報システム専攻D2) |
数理論理学の基礎と,数理論理学を用いた計算機プログラムの検証について講述する.また,講義を補完するため,証明支援系(計算機上で数学的証明を行うシステム)である Coq を用いた演習を行う.
回数 | date | 内容(予定) | 資料 | 宿題 |
---|---|---|---|---|
1 | 10/1 | 導入, Basics.v | スライド0, スライド1 | Coq 環境の構築,テキストのダウンロード |
2 | 10/8 | Basics.v, Induction.v | スライド2 学生実験2のgitについての資料, GitHub での宿題提出 | 演習問題(締切 10/22 10:30: Basics.v の nandb, andb3, factorial, ltb, plus_id_exercise, zero_nbeq_plus_1, Induction.v の basic_induction, double_plus, eqb_refl, add_comm_informal) |
3 | 10/22 | 単純型付ラムダ計算 | 配布資料1 | |
4 | 10/29 | 単純型付ラムダ計算(つづき) | ||
5 | 11/5 | Lists.v | スライド3 | 演習問題(締切 11/19 10:30: Lists.v の snd_fst_is_swap, list_funs, list_exercises, eqblist, hd_error) |
6 | 11/12 | Poly.v | スライド4 |
演習問題(締切 |
7 | 11/19 | 多相ラムダ計算 System F | 配布資料2 問題集 | |
8 | 11/26 | 演習 | (範囲: 問題集1〜3節) | |
9 | 12/3 | Tactics.v | ||
10 | 12/10 | Logic.v | ||
11 | 12/17 | 自然演繹と Coq | ||
12 | 12/24 | IndProp.v | ||
13 | 1/7 | カリーハワード同型対応,ProofObjects.v | ||
14 | 1/14 | 演習 | (範囲: 問題集全部) | |
期末試験 | ? |
Require Export ....
でエラーが出ます.
Error: Compiled library XXXXX.vo makes inconsistent assumptions over library Coq.Init.Notations
というエラーが出る場合,
ここで読み込もうとしているファイルを再コンパイルして
.vo
ファイルを作り直してください.それでも発生するようなら,再コンパイルした時の coqc
と,
Proofgeneral/CoqIDE から呼んでいる coqc
のバージョン違いの可能性があります.(特に,brew, opam, INRIA からダウンロードした Coq が混在している場合は要注意です.CoqIDE の人はメニューで Compile → Make を使うのがよさそうです.Proofgeneral の場合,メニューから Coq → Auto Compilation → Compile Before Require にチェックを入れておくと吉です.) あと,The file /Users/admin/Desktop/Coq/XXXXX.vo contains library Top.XXXXX and not library XXXXX
の場合,配布した Makefile が壊れている可能性があります.配布した教科書に含まれている Makefile で上書きしてください.
Compute
や Check
コマンドなどを .v ファイルに書くと警告 ``Warning: query commands should not be inserted in scripts.'' が出るのですが.(CoqIDE の場合…かな?)
simpl
を省略して解答を行った場合,演習上・採点時の不都合はありますでしょうか?
Coqtop died badly. Resetting.
というメッセージがでてうまく動作しません.
Require Export ....
で CoqIDE がハングします.
機能 | Proof General | CoqIDE (メニュー操作) |
---|---|---|
一歩読み進める(Coq にテキストの内容を送信) | C-c C-n | Navigation → Forward |
一歩戻る (undo) | C-c C-u | Navigation → Backward |
カーソル位置まで進む(戻る) | C-c RET | Navigation → Go to |
ファイル末尾まで読み込む | C-c C-b | Navigation → End |
証明すべき命題(ゴール)を表示 | C-c C-p | |
既になされた証明・定義を表示 | C-c C-t | |
SearchAbout | C-c C-a C-a | Queries → SearchAbout (F2) |