タグ

coqに関するkirakkingのブックマーク (8)

  • ML のサブセットの型推論器を Coq で検証する - fetburner.core


     Advent Calendar 2020 5   Hindley-Milner 宿 MLλletlet Coq  Coq  λ let 
    ML のサブセットの型推論器を Coq で検証する - fetburner.core
  • 定理証明リンク集

    定理証明、特に定理証明支援系(Proof Assistant)はその存在こそ少しずつ浸透しつつあるような気がしないでもないけれど資料とか全然まとまってないのが不便だなと前々から思っていたのでリソースをまとめておきます。 これも追加してほしいみたいなのあったら教えてください。 Proof Assistants 始めるなら次の中から選ぶのがよいと思います。 Coq Calculus of constructionsベースの型システムとリッチなコマンドを備えた言語 このリストの中では最もコミュニティが大きい、入門書等も豊富 型システムと項を書くためのGallina, コンパイラへの命令を記述するためのVernacular, タクティクスの定義に使うLtacなどの言語が混ざって出てくるのが初心者には混乱必至 結構複雑な言語なので使いこなすのはそれなりに大変 Agda Martin-Löf type

  • Isabelleについて: 証明支援系は何を目指し、どこへ向かうのか - 檜山正幸のキマイラ飼育記 (はてなBlog)


    Isabelle/jEditIsabelleIsabelle  Isabelle Isabelle Isabelle Isabelle/jEdit PIDEIsabellePIDEPIDEUI  Isabelle
    Isabelleについて: 証明支援系は何を目指し、どこへ向かうのか - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • プログラミングCoqの2章をHaskellに翻訳してみた - maoeのブログ

    皆さん、小悪魔CoqチュートリアルことプログラミングCoq読んでいますか?僕は大変楽しく読ませていただいています。今日第2章にあたるProof-editing mode であそぼうが公開されました。今回はCoqの証明支援の側面がよくわかる章になっていて興味深いのですが、扱っている命題はまだ簡単で、Haskellでも十分表現できそうです。 というわけでHaskellに翻訳してみました。 今回、Haskellの拡張をいくつか使っています。 Coqの表記と対応関係を取るためにExplicitForAll(Rank2Typesで自動的に有効になる) prop1で、forall付きの型を引数に取る関数の型を表現するためにRank2Types orとandを表す型を演算子で表すためにTypeOperators こうしてみてみると、Coqが自動的に作った仮定がHaskellにおける仮引数に対応づけられて

    プログラミングCoqの2章をHaskellに翻訳してみた - maoeのブログ
  • 推移律はいらない? ─比較ソートの正当性に必要な比較関数の性質─ - λx. x K S K @はてな

    この記事は Theorem Prover Advent Calendar 2013 最終日 (25日目)*1の記事です. 元々このネタは, 後学期の3年生向けの実験でCoqを教える際に提示した 「挿入ソートの正当性を示す」という最終課題の模範解答を作成する際に気づいたことです. このため,ここで紹介するプログラムや証明は, タクティクの種類やライブラリの利用が必要最低限に絞られているので, もしかしたら Coq 初心者の方にも参考になるかもしれません (各タクティクの作用を明確に理解してもらうため,敢えて auto も使いませんでした). Coq 上級者には冗長な証明が気になるかもしれませんが,その点は予めご了承ください. はじめに 比較関数を利用して整列するアルゴリズムは比較ソートと呼ばれ, クイックソートやマージソートをはじめとする多くの整列アルゴリズムがこれに属します (逆に比較ソー

    推移律はいらない? ─比較ソートの正当性に必要な比較関数の性質─ - λx. x K S K @はてな
  • 定理証明系 Haskell

    この記事は Haskell Advent Calendar 2013 および Theorem Prover Advent Calendar 2013 二十日目の記事であり、更にTCUGの新刊「Coqによる定理証明」の販促記事でもある。 型システム再考 Haskell は静的型付き言語だ。それだけでなく、強力な型推論や表現力の高い型システムを備えている。 型とは何だろうか。 こうした質問に対してよくある答えは、「値の種類を区別するためのタグ」になるだろうか。Int型は整数だし、Bool型は真偽値で、[Int]型は整数値リストを表す型だ。なるほど、値の種類を区別するものに見える。 しかし、この答えは間違ってはいないが、もっと相応しい云い方が出来るだろう。それは、「型は不変条件である」というものだ1。この言明は別に私固有の見方というわけではなく、ある程度の型レベルプログラミングをやった事のある人

    定理証明系 Haskell
    kirakking
    kirakking 2013/12/20
    何度か見直す。
  • Write Yourself a Theorem Prover in 48 Hours (その1) - Qiita


    20137 Coq48  http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours 使Haskell      CoqGallina 
    Write Yourself a Theorem Prover in 48 Hours (その1) - Qiita
    kirakking
    kirakking 2013/12/08
    "48時間もかかるのか"が正しいのか"48時間でできるのか"が正しいのか...
  • Coqと少しの圏論が分かる人向けのhomotopy type theory(その1) -


    The HoTT Book http://homotopytypetheory.org/book/ 500homotopy type theoryCoqAgda HoTT(Haskellhigher category)CoqAgda
    Coqと少しの圏論が分かる人向けのhomotopy type theory(その1) -
  • 1