如何提取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))".