我目前正在尝试从我的程序验证引理中生成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似乎确实输出得很好,但我无法弄清楚究竟是什么问题。有关如何解决该错误的任何线索?
答案 0 :(得分:7)
Coq在提取期间删除类型Prop
的值 - 它们被认为没有计算意义。如果您的计算需要使用Prop
进行计算,则提取将失败。