有机计算系统的组合验证:原理与实践
1. 形式化系统规范与验证
在系统设计与验证领域,组合推理是一种重要的方法,而依赖/保证(rely/guarantee)视角在其中应用广泛。
1.1 依赖/保证规范
系统的行为可通过转换系统公式 (G(V, V’)) 来描述,它表达了系统给出的保证。为了实现这一保证,系统依赖于其环境的特定行为,环境行为由转换公式 (R(V’, V’‘)) 规定。通常,环境的一个典型特性是不改变系统的局部变量,即 (R(V’, V’‘) :⇔ V’ = V’‘)。系统行为使用 “维持” 运算符 (+) 来表述:
[R(V’, V’‘) + G(V, V’)]
该公式的非正式含义是,如果依赖 (R) 到第 (i) 步都成立,那么保证 (G) 必须到第 (i + 1) 步都成立。这有助于在组合推理时打破循环。保证用未加撇和加撇变量的命题谓词表示,依赖则使用加撇和双加撇变量的谓词。(+) 运算符可通过标准时态逻辑(TL)的 “除非” 运算符推导得出:
[R + G := G \text{ unless } (G \land \neg R)]
1.2 模块化
系统通常由多个并行运行的组件构成。每个组件 (Agi) 都有其局部依赖 (Ri) 和局部保证 (Gi)。从每个组件的角度看,其他组件都属于其环境。局部依赖可能包含对其他组件 “好” 或 “坏” 行为的假设。为了通过局部推理得出全局保证,我们使用组合定理:
- 定理 1 :
- 若对于所有 (i = 1, \ldots, n),有 (Gi(V, V’) \vdash G(V, V’)
超级会员免费看
订阅专栏 解锁全文
10万+

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



