Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Sorting Coq清单分类实践与实践;肮脏的?_Sorting_Coq - Fatal编程技术网

Sorting Coq清单分类实践与实践;肮脏的?

Sorting Coq清单分类实践与实践;肮脏的?,sorting,coq,Sorting,Coq,在Coq中,Haskell的等价物是什么 总的来说,我觉得排序前后的Coq标准库很混乱 我本希望对排序列表进行一些“公理化”,以及不同排序的可用性,我可以为其提供一个排序函数 然而,情况似乎并非如此 ,它使用关系变量R:a->a->Prop。 ,但此R没有限制。我本以为这是一个命令,但没有这样的事情存在 另一个文件“”需要传递新模块 没有提供帮助程序的“更高级别”版本,例如sortBy 是否有我可以使用的sortBy的一些实现,或者我需要手动创建它?Coq标准库中的实现满足您的需要。它的工作

在Coq中,Haskell的等价物是什么

总的来说,我觉得排序前后的Coq标准库很混乱

我本希望对排序列表进行一些“公理化”,以及不同排序的可用性,我可以为其提供一个排序函数

然而,情况似乎并非如此

  • ,它使用关系
    变量R:a->a->Prop。
    
    ,但此
    R
    没有限制。我本以为这是一个命令,但没有这样的事情存在

  • 另一个文件“”需要传递新模块

  • 没有提供帮助程序的“更高级别”版本,例如
    sortBy


是否有我可以使用的
sortBy的一些实现,或者我需要手动创建它?

Coq标准库中的实现满足您的需要。它的工作原理类似于Haskell中的
sortBy
,不同的是,您没有传递排序函数并获得专门的排序,而是传递一个封装排序函数的模块,并证明该函数是完整的。请参阅模块文档底部的示例。

除了Coq标准库之外,还实现了合并排序。它被称为
sort
,它位于模块
mathcomp.path
中。它的签名是
for all T:Type,(T->T->bool)->list T->list T
,它更接近原始的
排序