用于支持验证的析取谓词剪枝特化演算及KRATOS模型检查器
析取谓词特化演算
在分离逻辑的抽象域中,析取谓词的处理对于程序验证至关重要。这里提出了一种针对析取谓词的特化演算,该演算被证明是可靠且可终止的。
性质与推理
对于每个谓词 (p(v^*)),在推理过程中使用的不动点分析和封装操作是可靠的前提下,推理过程为 (p) 导出的不变式族和剪枝条件集是可靠的。
实验与优化
为了验证特化演算的有效性,在现有的分离逻辑程序验证系统 HIP 中构建了一个原型系统 HIP+Spec。该实现主要受益于两种优化:记忆化和增量剪枝。
- 记忆化优化 :
- 为每个上下文 (C) 维护一个记忆化集合 (I),表示由上下文 (C) 隐含的原子约束集,即 (\forall\alpha\in I\cdot C \Rightarrow \alpha)。
- 对于形如 ((C\land\alpha) = false) 的矛盾情况,也以同样的方式进行记忆化,可将其建模为一个蕴含检查 (C \Rightarrow \neg\alpha)。
- 当对给定的剪枝条件 (\alpha) 的成员测试均失败时,可以使用自动证明器来确定 (C \Rightarrow \neg\alpha)。记忆化通常有助于减少对成本更高的证明器的调用次数。
- 增量剪枝优化 :
- 可以从可满足的上下文 (C) 中轻松切出证明原子约束 (\alpha) 所需的相关约束。例如,对于上下文 (x\neq null \land n>0 \land S\neq
超级会员免费看
订阅专栏 解锁全文
7690

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



