タグ

Coqに関するnanakosoのブックマーク (8)

  • Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|Webエンジニアのキャリアを考える!

    Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する プログラミング言語「Coq」では、プログラムを「証明」して間違いを防ぐことができます。プログラムの正しさを保証できる一歩進んだエンジニアになりましょう! coqtokyoを主催する今井宜洋さんの解説です。 みなさん、Coqってご存知ですか? プログラムを証明して間違いを防ぐという優れものです。今回はそのCoqについて、coqtokyoという勉強会を主催している今井宜洋がお届けします。 プログラムをただ作るだけではなく、その正しさを保証できる一歩進んだエンジニアになってみましょう! Coqって何? プログラムを「証明する」ってどういうこと? Coqを使ってみよう Coqのインストール方法 CoqIDE:Coqによる証明開発のフロントエンド Coqで関数プログラミング プログラムの仕様を記述しよう 証明開発モード ゴ

    Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|Webエンジニアのキャリアを考える!
  • 業務ソフトまたはゲームソフトとしてのCoq (誰も書かないCoq入門以前 2) - 檜山正幸のキマイラ飼育記 (はてなBlog)

    うーむ、ムズカシイ。Coq、難しいなぁ。 Coqのプロモーションのために、「大丈夫、あなたも出来ます」みたいなこと言っちゃダメですよ。予備知識も心構えもなく安易に入門しても挫折するもの。「女子高校生でもやってます」って、ものすごく特殊な女子高校生でしょ。マララさんを例に出して「女子高校生でもノーベル賞とれます」って言っても、ノーベル賞とれないでしょ、ふつう。 まー、ノーベル賞に比べれば「大丈夫、あなたも出来る可能性が高いです」とは言えます。Coqがどんなものであり、どのへんに難所が潜んでいるかを知っておけば、Coqが出来るようになる可能性はより高まると思います(たぶん)。 僕自身、早々と挫折しかかっていたのですが、見方を変えると少しだけ見通しが立ちました。なので、これはCoqを触って困惑した人の助けにチョットはなるかも。 内容: Coqで使われる言語を分類しておく そもそもCoqはプログラ

    業務ソフトまたはゲームソフトとしてのCoq (誰も書かないCoq入門以前 2) - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 誰も書かないCoq入門以前の話 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    WindowsへのCoqのインストール」: 事情があって、AgdaかCoqを触ってみようか、と。 事情というのは、個々の命題の証明(確認)は割と簡単そうだが、命題がイッパイあるのでウンザリな状況のことです。家計簿の計算が筆算だと面倒だから電卓を使いたい、という状況と同様です。 それでCoqのインストールは済んだのですが、処理系の使い方が分からない。個々の操作は覚えていけばいいのでしょうが、そもそもCoq処理系が何をするものなのか? が理解できないのです。Web上にCoqの解説は幾つもあるのですが、「いやいや、そうじゃなくて、それ以前のことがサッパリわからんのですけど」という感じ。スタートラインに立てない。 それで、「Coqの解説」じゃなくて「Coqの仕様」を読んだほうがいいのかも、と https://coq.inria.fr/distrib/current/refman/ (リファレンス

    誰も書かないCoq入門以前の話 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 「型の理論」と証明支援システム -- COQの世界

    九州大学ウィンタースクール「数学ソフトウェア・チュートリアル」講演スライド サンプルファイルは以下に置いています. https://github.com/KyushuUniversityMathematics/CoqExamples/tree/master/20150218

    「型の理論」と証明支援システム -- COQの世界
  • ソフトウェアの基礎

    Benjamin C. Pierce Chris Casinghino Michael Greenberg Vilhelm Sjöberg Brent Yorgey with Andrew W. Appel, Arthur Chargueraud, Anthony Cowley, Jeffrey Foster, Michael Hicks, Ranjit Jhala, Greg Morrisett, Chung-chieh Shan, Leonid Spesivtsev, and Andrew Tolmach

  • あなたが学ぶべき10のプログラミング言語 - emonkak's Blog

    Haskell 純粋関数型言語は当然学ばなければなりません。 副作用の分離とモナドによる抽象化は当のプログラマーなら知っておくべきでしょう。 遅延評価のメリット・デメリットとそれを活かしたアルゴリズムも重要です。 Scala オブジェクト指向と関数型の機能を合わせ持ったマルチパラダイム言語のScalaを学ぶことは、あなたにとって新たな知見となるでしょう。 Twitterのインフラで使われるなど実績も十分で、現在のプログラマーにとっては当然のように使えるべき言語の1つです。 Haskellもまたそうですが、Scalaは型が強力なので型レベルプログラミングを学び、コンパイル時のエラー検出について考えてみるのもよいでしょう。 Erlang マルチコアのCPUが当たり前になった現在では、難しい並列処理をいかにして簡潔に実現するのかというのは非常に重要なテーマです。 Erlangは並列処理を念頭に

    あなたが学ぶべき10のプログラミング言語 - emonkak's Blog
  • IIJ Research Laboratory

    ネットワークの計測と解析 インターネットの使われ方やネットワークの挙動を把握する事は、ネットワークを運用し、その技術開発を行う ために欠かせません。しかし、観測で得られるデータ量は膨大ですがノイズが多く、また、観測できるのは極めて限られた部分でしかありません。そこで、膨大なデータから意味のある情報を抽出したり、部分的な観測からより一般的な傾向を推測する事が必要となります。... インターネット基盤技術 速くて、安全で、信頼性が高く、使いやすく、など、インターネットサービスへの要求はますます高まっています。これらの要求に応えるために、インターネットの 基盤技術も日々進歩しています。いまやインターネットはつながるだけのサービスではなく、高度で複雑な機能を備えた社会基盤となりました。IIJ技術研究所は、インターネットの基盤として実現が期待される機能を提供するために、さまざまな技術課題に取り組んで

  • にわとり小屋でのプログラミング日記

    どんなあみだくじでも答えにたどり着くことを証明した。 ここでいうあみだくじとは 有限のくじ(縦棒)がある 縦棒上の点と点を結ぶ横道が有限ある 横道は水平線だけじゃなく、遠くのくじへ行ったり自身を上に行ったりできる ダメなこと 「ふりだしへもどる」はない 同じ点と点を結ぶことはできない 一方通行はない 一度通ると崩れるマリオのブロックみたいな道はない どちらに行くか選べる分岐みたいなのはない なぜ証明したか PPLで話題になって証明しようかなと思った。 ざっくりとしたアイディア あみだくじを形式的に定義するアイディア くじ(縦棒)の集合があったとき、横道の集まりで一つのあみだくじのデータを表現した。 例えばこのあみだくじは A0--B2, A1--B0, B1--C0 という3の横道として表現する。横道は端点のペアであり、端点の添字は点の高さで上から順に一つづつ大きい数字になる。各くじ

    にわとり小屋でのプログラミング日記
    nanakoso
    nanakoso 2007/11/06
    定理証明系?
  • 1