議題
名前空間を完全に分離したいときは、ファイルを分けるのが無難。
Coq内でのLoad Pathの設定方法
Add LoadPath "~/src/coq/ConCaT" as ConCaT. Print LoadPath. Require Export ConCaT.SETOID.Map2.
structureをlocalにできるのか?
ConCaTのインストール
makeの動作がおかしい。直接contribフォルダにConCaTをコピーして解決した。
coqmakefileを使ってみる?
Constructorの使い方は?
Definition x:int := 3.
CategoryTheoryのONEにいろいろ例がある。
Hint Resolveってなに?
Build_Equivarenceって何?
これがコンストラクタ。
Coqで2つゴールが出たときに変更する方法は?
trivialはちょっとだけ自動化してくれる。
redはreduction。何かをreductionしてくれる。
GoalにTrueが出たときは?
auto.で終わり。apply I. IがTrueの定義。
Canonical Structureって何?
@を使うと型を明示できる(Implicitが無効になる)
AxiomとDefinitionの違い
Definitionは実体がないとダメ。
Axiomは型だけでよい。
Category Theoryの証明コード
Coq8.2用ですが。
http://mattam.org/repos/coq/cat/
おひらき
- 代数の圏のお話(pirapiraさん)
- オブジェクトが2つの圏(tmiya_さん)
- オブジェクトが3つの圏(yam6daさん) https://gist.github.com/eab6068b24695d3bb2d1
Inductive One_ob : Type := Obone : One_ob. Check One_ob.
なんでこうすると、One_obの型が、Propになるの?
- 代数の圏が圏になることの証明(酒井さん)
- ConCaTでは独自のSetoid使ってるので、いちいちapplyをしていった。
- 簡約するのに必要なだけunfoldしておくと、いっきにsimplできる。
- Allegories(たけをさん)
- Heyting AlgebraがCCCであることの証明
- latticeのStructureの定義だけで大変。
- 練習問題的なもの