2008-05-01から1ヶ月間の記事一覧

coqでの証明戦略の引数って何?

例は、forall (A B: Prop), A->(A->B)->B。これはintrosをすると、A, A->B ┣ Bとなる。これはcoqでは自動的に解決できるものであり、証明戦略的には、->除去である。 http://adam.chlipala.net/itp/tactic-reference.html によるとapplyする状況なのだが、仕…

型システムで推論プログラムを書くようにcoqコードを書き、coqで証明をやってみる

背景 prologサンプルコードをふと書いてみる - ラシウラで書かれたコードのように、普通の(関数型)プログラミングだと戻り値に結果を返すようなコードになるところは、 戻り値となる変数をパラメータの最後に置く その戻り値パラメータが、結果としてどのよ…

false positiveとfalse negative

ある特性をプログラム的に判別するのに失敗する場合、以下の二つのように判定できれば、正しく判定成功といえる 実際にはその特性があるものを、特性ありと判別する: 正解 実際にはその特性がないものを、特性なしと判別する: 正解 同様に判定に失敗する場合…

PrologコードをHaskellの型システムで書く

prologサンプルコードをふと書いてみる - ラシウラでのprologコード、eval.pl %% example %% consult(eval). %% eval(nil, apply(lambda(x, ref(x)), 10), Result). eval(Env, lambda(Arg, Body), closure(Env, Arg, Body)). eval(Env, apply(Operator, Oper…

prologサンプルコードをふと書いてみる

なんとなく。コードはSWI-Prologでチェックした。granpa.pl father(ieyasu, hirotada). father(hirotada, kiyoyasu). granpa(GC, GP) :- father(GC, C), father(C, GP). granpa(ieyasu, X).でX=kiyoyasuになるだけ。fact.pl fact(0, 1). fact(In, Result) :-…