函数对象推理与轻量级 Java 演算:验证与扩展探索
函数对象推理
在函数对象推理方面,有一些关键的证明和示例。例如,在特定情况下,$prealign left(f, p, Heap) = not p.$left aligned 。对于某些断言的证明,如第 6 行的断言,是利用第 1 行和第 3 行的假设以及相关规则(1)来证明的;第 11 行的断言以类似方式,利用第 4 行和第 9 行的假设以及规则(2)证明;第 12 行的断言同样利用第 5 行和第 10 行的假设以及规则(3)证明。
归档示例
归档示例中,最有趣的证明是对 main 例程的证明,而 log 例程则有助于展示如何指定和证明封闭参数。为证明这些例程,采用了特定的方法(为简化示例,省略了框架翻译)。 log 例程的证明与 format 例程类似,只是使用了只接受三个参数(过程日志文件、字符串 s 和堆)的函数 $precondition1 。生成的证明义务如下:
log(log file : PROCEDURE[ANY ; TAPE]; s : STRING)
1 assume $precondition1(log file, s, Heap)
2 assert $precondition1(log file, s, Heap)
3 log file.call(s)
main 例程
超级会员免费看
订阅专栏 解锁全文

16

被折叠的 条评论
为什么被折叠?



