【发布时间】:2017-06-17 15:24:28
【问题描述】:
它们似乎有相似的目的。到目前为止我注意到的一个区别是,虽然Program Fixpoint 将接受像{measure (length l1 + length l2) } 这样的复合度量,但Function 似乎拒绝了这一点,并且只允许{measure length l1}。
Program Fixpoint 是否比Function 更强大,或者它们更适合不同的用例?
【问题讨论】:
-
顺便说一句,Coq v8.7 roadmap 说他们的实现将被合并。
-
这是个好问题,如果您需要详细的答案,我建议您去 Coq 的 gitter,因为了解它的人不会阅读 SO AFAIK; Function 和 Program 的实现是由不同的人在不同的环境中完成的,因此它们的特性集确实不是另一个特性的子集。有计划将它们合并到一个新的“方程式”插件中,但这不会在 8.7 中发生,即使已经取得了很多进展。话虽如此,我认为如果您关心与未来 Coq 版本的兼容性,通常最好使用 Program。