如何提取Coq';进入哈斯克尔';s整数
我试图提取一个使用如何提取Coq';进入哈斯克尔';s整数,coq,coq-extraction,Coq,Coq Extraction,我试图提取一个使用Z数字的Coq程序给Haskell。我想把Coq的Z映射成Haskell的整数 我找到了一些瞄准OCaml的方法,但不是瞄准Haskell。 没有图书馆吗 我需要提取(找到): 但是哈斯克尔 我会问:怎么做 但是第二,我应该说为什么我自己不能做到: 我想我自己不能想出这个可能是因为我误解了一些事情,例如:为什么在第二个定义中有一个空字符串?Z的定义有三个构造器:Z0、Zpos和Zneg。我不明白“Big.zero”“Big.opp”与此有什么关系 另外,我不明白最后一个字符串是
Z
数字的Coq程序给Haskell。我想把Coq的Z映射成Haskell的整数
我找到了一些瞄准OCaml的方法,但不是瞄准Haskell。
没有图书馆吗
我需要提取(找到):
但是哈斯克尔
我会问:怎么做
但是第二,我应该说为什么我自己不能做到:
我想我自己不能想出这个可能是因为我误解了一些事情,例如:为什么在第二个定义中有一个空字符串?Z
的定义有三个构造器:Z0
、Zpos
和Zneg
。我不明白“Big.zero”“Big.opp”
与此有什么关系
另外,我不明白最后一个字符串是如何工作的:“…最后一个额外的字符串,指示如何在这个归纳类型上执行模式匹配。”(在中找到)
S.F.一章说“我们给出了一个OCaml表达式,可以用作类型元素的“递归器”(想想教堂数字)。”
下面的代码是递归程序还是模式加工
"(fun zero succ n →
if n=0 then zero () else succ (n-1))".
在我理解了这些东西之后,我希望我能自己创建我可能需要的提取。你可以导入
ExtrHaskellZInteger
()。你可以导入ExtrHaskellZInteger
().您可能想浏览一下。您链接到了Coq v8.3文档-您正在使用的是该版本吗?在这种情况下,您必须自己编写提取命令。@TejChajed不,不是。出于某种原因,这就是我找到的文档。搜索技能的错。不是你的错!Coq文档可能很难在Google上找到。您可能想看一看。您链接到了Coq v8.3文档-您正在使用的是这个版本吗?在这种情况下,您必须自己编写提取命令。@TejChajed不,不是。出于某种原因,这就是我找到的文档。搜索技能的错。不是你的错!Coq文档可能很难在谷歌上找到。
"(fun zero succ n →
if n=0 then zero () else succ (n-1))".