Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell到Coq有翻译吗?_Haskell_Coq - Fatal编程技术网

Haskell到Coq有翻译吗?

Haskell到Coq有翻译吗?,haskell,coq,Haskell,Coq,如果我想在Haskell程序上使用Coq编写证明和算法/语义。我如何将Haskell翻译成Coq来实现这一点 似乎有工具可以翻译OCaml程序。但是Haskell呢?我在这种翻译中看到的主要问题是Haskell程序(以及Ocaml程序)可以执行任何类型的递归算法,并且可能包含循环 在Coq中,没有内置循环的概念,任何递归函数都必须终止,并明确它终止的原因 据我所知,目前还没有这样的工具。有些相关:你肯定可以去。这不是问题的答案,但你可能也对隐士感兴趣。它是一个证明Haskell代码定理的工具包(

如果我想在Haskell程序上使用Coq编写证明和算法/语义。我如何将Haskell翻译成Coq来实现这一点


似乎有工具可以翻译OCaml程序。但是Haskell呢?

我在这种翻译中看到的主要问题是Haskell程序(以及Ocaml程序)可以执行任何类型的递归算法,并且可能包含循环

在Coq中,没有内置循环的概念,任何递归函数都必须终止,并明确它终止的原因


据我所知,目前还没有这样的工具。

有些相关:你肯定可以去。这不是问题的答案,但你可能也对隐士感兴趣。它是一个证明Haskell代码定理的工具包(除其他外)。如果您决定查看它,我建议您查看HERMIT shell,它是系统的新(目前正在积极开发)shell。完全披露:我工作的一部分是HERMIT和HERMIT shell。@Davidyong HERMIT可以帮助证明任意属性或只是优化代码等价性吗?简短的介绍似乎指出了后一种方法,您也可以用它来证明Haskell程序的属性。在examples/laws目录中有这样的例子。以下是HERMIT shell版本:。Haskell文件“正在审查”是
ListLaws.hs
,其他文件是HERMIT shell脚本文件(也用Haskell编写,使用HERMIT shell DSL),用于证明
ListLaws.hs
文件中关于代码的定理。GHC
规则
被转化为引理,然后可以被证明。也许这属于softwarerecs.stackexchange.com——关于它的新信息,Antal Spector Zabusky发布了软件项目“状态相当好”,由美国国家科学基金会1521602资助,由普林斯顿大学首席研究员安德鲁·阿佩尔(Andrew Appel)负责。有一篇论文描述了一种从哈斯克尔到Coq的方法。