眠気と戦う日々

眠気と戦いながらいろいろと書くブログ

2014-01-01から1年間の記事一覧

コンピュテーション式の変形後を覗き見る #FsAdvent

はじめに この記事はF# Advent Calendar 2014の10日目の記事です。 前日はbleisさんの「クラスのコンストラクタ呼び出し時にプロパティも同時に初期化する」でした。 本日はTipsからちょっと外れてネタをご紹介します。 タイトルにもある通り、コンピュテー…

リスト反転関数が単射であることを証明する

coq

久々の記事もまたCoqでソフトウェアの基礎ネタです。 今回はList_Jにおける練習問題「rev_injective」について。 問題のTheorem Theorem rev_injective: forall l1 l2: natlist, rev l1 = rev l2 -> l1 = l2. ソフトウェアの基礎ではCoqコードではありません…

内部でFixpointの関数を呼ぶ関数を定義した時にsimplだと証明できない

Coq

はい、表題のとおりです。 Coqを勉強していたらよくわからない挙動にぶつかったのでメモ。 問題のコード Fixpoint evenb (n:nat) : bool := match n with | O => true | S O => false | S (S n') => evenb n' end. Definition oddb (n:nat) : bool := negb (…

TAPL読書会@名古屋# 1に参加しました

ちょっとした前置き TaPL? TAPL? どっちなんでしょう。 ということで8月2日に開催されたTAPL読書会@名古屋#1に参加しました。 短歌会館というところの和室を借りて行いました。非常に雰囲気の良い所でしたので、お勧めです。 ただし無線LANとかはないので…