This domain may be for sale!
のという式が使えるようになる。この andb 3 true は、実際には andb (nat_to_bool 3) true として処理される。 coercion には型強制という訳が充てられているみたいだけど、 Coq の場合、 implicit に変換函数を適用してみるという感じなので、 強制 ってほどでもないなぁと思わなくもない。 Set Printing Coercions. 変換函数の暗黙の適用は、基本的に Coq の出力上には現れない。 コードに書かれていないのだから、表示もされてない方が自然だ。 ただまぁ、変換函数についての性質を使うときとか、やっぱり変換函数が見えていたほうが良い時もある。 そんなときは事前に Set Printing Coercions. を実行しておくと良い。 解除は Unset Printing Coercions. で。 coercion を多用して
研究集会 「高信頼な理論と実装のための定理証明および定理証明器」 高信頼なソフトウェア開発のために必要な形式手法, ソフトウェア検証, 数学の形式化, および, 証明の計算機による検証に関する研究集会を九州大学西新プラザで開催します. 続きを読む
まあすでにやっている人は多いと思いますが、昨日突然思いついて、自然数の集合が非可算個あることをCoqで証明してみました。 Require Import Arith. Definition diag (F : nat -> (nat -> bool)) (n : nat) : bool := negb (F n n). Theorem nat_to_nat_uncountable : forall (F : nat -> (nat -> bool)), exists (g : nat -> bool), forall (n : nat), F n <> g. Proof. intro F. exists (diag F). intro n. intro H. absurd (F n n = diag F n). unfold diag. intro H1. destruct (F n n).
はじめに 昨日、スタート Ssreflect というイベントに参加して、Coq + ssreflect のハンズオン的なものをやりました。 Coq 環境といえば、Emacs の ProofGeneral が非常に有名です。 しかし、私は Emacs は終了の仕方すら分からないレベルの初心者なので Emacs + ProofGeneral ではチュートリアルの例題を打ち込むだけでも非常に苦労しました。 証明も普段使い慣れている Vim で何とかできないかと思い調べたところ、そこそこ良さ気な環境を構築できたので紹介します。 使用するプラグイン 以下の2つをインストールします。NeoBundle のようなパッケージマネージャを使用するのをおすすめします。 jvoorhis/coq.vim vim-scripts/CoqIDE jvoorhis/coq.vim は Coq のシンタックスとインデン
この記事は Theorem Prover Advent Calendar 2013 最終日 (25日目)*1の記事です. 元々このネタは, 後学期の3年生向けの実験でCoqを教える際に提示した 「挿入ソートの正当性を示す」という最終課題の模範解答を作成する際に気づいたことです. このため,ここで紹介するプログラムや証明は, タクティクの種類やライブラリの利用が必要最低限に絞られているので, もしかしたら Coq 初心者の方にも参考になるかもしれません (各タクティクの作用を明確に理解してもらうため,敢えて auto も使いませんでした). Coq 上級者には冗長な証明が気になるかもしれませんが,その点は予めご了承ください. はじめに 比較関数を利用して整列するアルゴリズムは比較ソートと呼ばれ, クイックソートやマージソートをはじめとする多くの整列アルゴリズムがこれに属します (逆に比較ソー
この記事は「Theorem Prover Advent Calendar 2013」6日目の記事です。 http://qiita.com/advent-calendar/2013/theorem_prover 神田「野らぼー」にて、地下の薄暗い店内で… 「そう言えばこないだ隣で起こってたポインタオーバーラン、対応大変そうだったですけどちゃんと家に帰れてたんでしょうかね、新婚なのに…」 「ヌルポとかポインタオーバーランとか、どうして無くならないんだろうね。その時はみんな手を抜いてるつもりなんて毛頭なくて、一生懸命考えて大丈夫だと思ってるはずなんだけどね。レビューもして、それでも起こった後でみんなでソース見てみると、なんで気づかなかったんだよ!ってことになる。」 「人間って、そういうの苦手なんでしょうねきっと。ほら、『何かほかにありませんか』って聞かれても出てこないじゃないですか。静的な解析っ
開催勉強会 ProofCafeではいくつかの勉強会を定期開催しています。 詳細は個別のページをご覧ください。 Coqを用いたプログラムの証明について勉強する勉強会です。 コーヒーを飲みながら楽しく証明しましょう。 TAPL-nagoya Types and Programming Laungages(通称TAPL)の読書会です。 ScalaやF#などの静的型付け言語の基礎になっている型理論について学びます。 休日カフェタイム, KCTNagoya 圏論に関する勉強会です。 どえりゃあ Haskell Haskellに関する勉強会です。 サービス Software Foundations(和訳) Benjamin C. Pierce氏による同名のテキストの和訳です。関数プ ログラミグやラムダ計算についてCoqによる実例を交えながら丁寧 に説明されています。 Cochin Coqの定理検索サー
id:yoshihiro503さんに誘われて、VSTTE Competitionというソフトウェア検証コンテストに参加しました。 「検証ツールに特に制限はないぜ」と書かれていたのでCoqを使いました。 競技プログラミンングに初めて参加しましたが、48時間ぶっとうしで同じ課題に取り組むのはとてもエキサイティングで楽しかったです。 参加メンバー [twitter:@yoshihiro503]さん [twitter:@pirapira]さん [twitter:@hirose_golf]さん ボク([twitter:@mzp]) 一日目 開始直前 yoshihiro503さんから"uiro,tebasaki,miso,..."と列挙された謎のメールが届く。 どうやらチーム名の候補だったらしいです。 yoshihiro503さんとSkypeで話しながらbitbucketの準備をしたりする。 0:00
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く