Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Proof Summit 2012

1,019 views

Published on

Proof Summit 2012のスライド。

  • 18枚目に「make・待つ」と書いていますが、時間がかかるので必要ならば
    make coqbinaries states
    でビルドすると良いと思います。
    この場合、coqtop起動時にオプションとして-bootをつける必要があります。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Proof Summit 2012

  1. 1. Proof Summit 2012 ご清聴まことに感謝いたしております。
  2. 2. あなた誰?• パンダです。• 以上。–反論はTwitterの @chiguriへ。 ご清聴まことに感謝いたしております。
  3. 3. 一応自己紹介• 卒論でCoqを使わされて怖く なったチキン。• 一応東工大の博士課程。• Coqをいじって「対話的に 証明した内容をいじる」と いう機能を開発中。 ご清聴まことに感謝いたしております。
  4. 4. 今日のお題ご清聴まことに感謝いたしております。
  5. 5. Panda General ご清聴まことに感謝いたしております。
  6. 6. ちがう!ご清聴まことに感謝いたしております。
  7. 7. Sort inside Coq ご清聴まことに感謝いたしております。
  8. 8. Sort?• QuickとかMerge? –私はMergeが好きです• じゃなくて ご清聴まことに感謝いたしております。
  9. 9. ここでいうSortは• Prop/Set/Typeのこと• Coq組み込みの型• 帰納型の型 ご清聴まことに感謝いたしております。
  10. 10. 今日の内容• Typeが少し変な挙動をする• この挙動を内側からこっそり 覗いてみる –OCaml debuggerを使う ご清聴まことに感謝いたしております。
  11. 11. まず外から見る• クイズっぽく ご清聴まことに感謝いたしております。
  12. 12. ワタシノSortハ ナンデスカ• Inductive t := a. タイプ• 迷子の迷子の型t あなたのソートは なんですか? –Printしたら「Typeです」 –Checkをしたら「Propです」 ご清聴まことに感謝いたしております。
  13. 13. Prop!?ご清聴まことに感謝いたしております。
  14. 14. ちなみに• Inductive t := a | b.• こちらの場合... –Printしたら「Typeです」 • 同じ –Checkをしたら「Setです」 ご清聴まことに感謝いたしております。
  15. 15. Sort polymorphism• Sortをできる限り小さく見せ るための規則 –list natがSetになるのはこいつの おかげ –私の研究が難しくなったのもこい つのおかげ(せい) ご清聴まことに感謝いたしております。
  16. 16. にしたってPropとは• ちょっとやりすぎじゃない?• 大丈夫だ、問題ない–Propのeliminationが関わる–詳細は省略 ご清聴まことに感謝いたしております。
  17. 17. では• Coqの内側から見てみる ご清聴まことに感謝いたしております。
  18. 18. 早速準備!• Coq-8.4のソースコードをDL!• ./configure -debug –インストール場所はご自由に• make –待つ –できたものがここにあります ご清聴まことに感謝いたしております。
  19. 19. OCamlDebug!• Emacs+Tuaregでやる –TypeRexのほうが?• coqtop.byteを対象に –directoryの指定などが面倒くさい ので準備してたスクリプトを使う ご清聴まことに感謝いたしております。
  20. 20. Inductive!• 早速見てみよう• Inductive t := a. ご清聴まことに感謝いたしております。
  21. 21. breakpointに引っかかり・・・ ご清聴まことに感謝いたしております。
  22. 22. そして中身が・・・ ご清聴まことに感謝いたしております。
  23. 23. み え な い ご清聴まことに感謝いたしております。
  24. 24. <abstr>とかなんだよ• あぶすとらくとでーたたいぷ とかいうやつ? –要するに型しかわからない• まじf*ck ご清聴まことに感謝いたしております。
  25. 25. 仕方がないので• Coqのmliファイルをいじる –8.3pl2のころにやったので –精神的に(無駄に)つらい • ときどきml4ファイルも編集が必要 –ときどきコンストラクタ名などが 衝突する ご清聴まことに感謝いたしております。
  26. 26. 結果• github.com/chiguri/coq_debu gに –適当に利用してやってください • さっきの方法で使えるはず –ocamldebug用スクリプトはdebug • kernel/byterun/dllcoqrun.soがいる かも(インストールしない場合) ご清聴まことに感謝いたしております。
  27. 27. 見え方• Printを追っていくと見える –今回はmind_arityを見る –Checkを追っていくとSortの判定が 見える ご清聴まことに感謝いたしております。
  28. 28. ほかに見えるもの• eliminationに関わるものとか –もともと見えてるけど• 内部表現いろいろ• コマンドのスタック Lib.lib_stkとか ご清聴まことに感謝いたしております。
  29. 29. やったね• 以上• ご清聴に感謝 ご清聴まことに感謝いたしております。
  30. 30. ためしに・・・• Extractionを辿ろうとした• 関数が見つからない• 見つからない• あれー・・・? ご清聴まことに感謝いたしております。

×