在Coq中,Haskell的sortBy相当于什么?
一般来说,我发现Coq标准库中围绕排序混淆。
我本来希望排序列表的一些“公理化”,以及不同类型的可用性,我可以提供一个排序函数。
然而,情况似乎并非如此。
Variable R : A -> A -> Prop.
,但对此R
没有任何限制。我原以为这是一种命令,但不存在这样的事情。sortBy
这样的帮助的“高级”版本。我是否可以使用sortBy
的某些实现,或者是否需要手动创建它?
发布于 2018-07-09 04:47:30
Coq标准库中的MergeSort模块可以满足您的需要。它的工作方式类似于Haskell中的sortBy
,除了传递一个排序函数和获得专门的排序之外,您还传递了一个封装排序函数的模块,以及该函数是完全函数的证明。参见模块文档底部的示例。
发布于 2018-07-09 06:00:17
除了Coq标准库之外,图形组件库还实现了合并排序。它被称为sort
,它驻留在模块mathcomp.path
中。它的签名是forall T : Type, (T -> T -> bool) -> list T -> list T
,它更接近于原始的sortBy
。
https://stackoverflow.com/questions/51245616
复制相似问题