从COQ生成Haskell代码:使用逻辑或arity值

时间:2014-11-27 17:14:40

标签: haskell coq coq-extraction

我目前正在尝试从我的程序验证引理中生成Haskell代码,如下所示:

Lemma the_thing_is_ok : forall (e:Something),  Matches e (calculate_value e).

在结束我的部分之后,我做了:

Extraction Language Haskell.
Recursive Extraction the_thing_is_ok

对某些事情似乎并不高兴,因为它会返回以下错误:

__ = Prelude.error "Logical or arity value used"

我有另一个Lemma似乎确实输出得很好,但我无法弄清楚究竟是什么问题。有关如何解决该错误的任何线索?

1 个答案:

答案 0 :(得分:7)

Coq在提取期间删除类型Prop的值 - 它们被认为没有计算意义。如果您的计算需要使用Prop进行计算,则提取将失败。