# HG changeset patch # User Shinji KONO # Date 1385632094 -32400 # Node ID 888cc58ced9da228b4ddc1663be1ebc951d1b8d8 # Parent aa359e82dab736a836b34288cfa2883b6fc1a493 fix diff -r aa359e82dab7 -r 888cc58ced9d Agda.mm --- a/Agda.mm Thu Nov 28 09:27:34 2013 +0900 +++ b/Agda.mm Thu Nov 28 18:48:14 2013 +0900 @@ -5,12 +5,19 @@ + + + + + + + @@ -18,19 +25,20 @@ + - - - - + + + + @@ -38,8 +46,14 @@ + + - + + + + + @@ -49,11 +63,6 @@ - - - - - @@ -80,12 +89,20 @@ - + + + + + + + + + @@ -103,14 +120,25 @@ - - + + + + + + + + + + + + + @@ -131,5 +159,25 @@ + + + + + + + + + + + + + + + + + + + + diff -r aa359e82dab7 -r 888cc58ced9d agda-prog.ind --- a/agda-prog.ind Thu Nov 28 09:27:34 2013 +0900 +++ b/agda-prog.ind Thu Nov 28 18:48:14 2013 +0900 @@ -32,4 +32,135 @@ また、Agda の特徴である式変形を明示する推論に対するいくつかの手法に 関しても考察する。 +--証明支援系 +Monad とか Kan extension とかを知らないと関数型プログラミングできない + +Monad の結合性を示すだけでも煩雑な計算が必要 + +高階述語論理 + +ハイティング代数 + +Curry Howard 対応 + +Coq + +例題としての圏論 + +--人による証明 + +数学の本に書いてある証明 + +省略された部分 + +問題を解いてわかる部分 + +手書きの証明 + +清書された証明 + +Proof System 上の証明 + +理解するとはどういうこと? + +モデルを理解する + +証明を理解する + +パターンを理解する + +--Agda + +式 + +Lambda 式 + +変数の定義 + +変数の型 + +データ型 + +レコード型 + +等号 + + データ型を使った等号 + 関係を表す集合としての等号 + +集合のレベル + +暗黙の引数 + +emacs との連携 + +--Agda での証明方法 + +? の使い方 + +数式変形 + +数式変形の記述 + +数式変形用に ? を使う + +record の使い方 + +数学的構造の存在を示す + +record での変数の位置の選択 + +これから証明する部分の扱い + +eval の使い方 + +Agda では証明できないもの + +外延性 + +合同性 + +a=b は証明できない。 + +赤を解決する(型の矛盾) + +黄を解決する(十分限定されていない変数) + +暗黙の変数を明示する + +再利用性 + +module parameter と、lemma の入力 + +Mono morphism から来る問題 + +--Agda の有効性 + +Haskell の構文との親和性 + +証明の完成度がわかる + +証明の対称性を視認できる + +Unification により証明を見つけることができる + +すべて人手 + +式変形を明示できる + +証明は極めて個人的 + +勝手な記号 + +勝手なrecord + +勝手な module parameter + +理論の理解に使う Monad とか Kan extension とか + +--今後の展開 + +プログラミングと証明を同時に行う + +