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