【发布时间】:2018-11-12 07:51:57
【问题描述】:
我想找一些可以应用于函数或函数指针的ACSL注解来表明它具有引用透明的属性。以某种方式说“当给定相同的参数时,此函数将始终返回相同的值”。到目前为止,我还没有找到任何这样的方法。谁能给我指出一种表达方式?
也许可以通过某种方式引用任意逻辑函数?如果我可以命名一个未知的logic boolean uknown_function(void* a, void* b) = /* this is unkown */;,那么我可以将一个函数记录为具有\result 的后置条件等于这个任意/未知的逻辑函数?
更大的上下文是尝试进行类型擦除比较。我想概括地表达“用户给了我void*s 和bool (*)(void const*, void const*) 来比较它们的概念,并且用户向我保证所提供的功能确实是一个严格的偏序。那些指针指向。”如果我有这个,那么我就可以开始描述这些被排序的类型擦除对象的属性,例如。
【问题讨论】: