异步消息传递程序的模块化验证技术
在异步消息传递程序的验证领域,我们正探索一种新的模块化验证技术,它与基于权限的逻辑兼容,为程序验证带来了新的思路。接下来,我们将深入探讨该技术的核心概念、验证方法以及相关规则。
1. 断言与当前状态信息
在判断中,断言 a 能让我们从与当前状态相关的参与者不变式中获取信息。例如,属于参与者不变式的权限可以保留在 a 中。这个断言和消息前置条件会在当前状态和旧状态中“复制”。我们的断言语义将这些状态建模为独立的,但在消息处理程序开始执行时,它们实际上是相同的。表达式 ei 能在相关情况下,通过额外的等式连接这两个状态。
判断的后置条件要求我们能证明参与者不变式在整个消息处理程序执行过程中都成立。
2. 义务断言
我们允许在 Hoare 三元组的前置条件和后置条件中使用的断言语法包含形式为 obl(o) 的义务断言。直观地说,这表示我们需要到达某个程序点,在该点满足 o 所描述的条件。这里, o 可以是一个非空响应集 R 或断言 localVariant(this) 。
- 当 o 为非空响应集 R 时, R 中提及的唯一变量必须是正在检查的消息处理程序的参数(包括 this ),并且 R 的 where 条件中使用的
超级会员免费看
订阅专栏 解锁全文
2039

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



