优化模型检查的高效谓词抽象方法

0 下载量 74 浏览量 更新于2024-09-01 收藏 359KB PDF 举报
"本文介绍了一种新的方法,用于在验证命令式程序的过程中计算抽象状态和最大权重启发式策略,该策略被整合到基于反例驱动的抽象精炼方法的验证系统中。提出的这种方法显著减少了抽象状态空间的大小和决策过程调用的次数。通过一系列基准测试评估了其有效性。" 在模型检查(Model Checking)这个领域,程序验证是一个关键问题,尤其是对于命令式程序,它们通常涉及复杂的控制流和数据流。本文关注的是谓词抽象(Predicate Abstraction),这是一种将程序的状态空间简化为更易于处理的形式的技术。谓词抽象通过将程序状态映射到一组逻辑谓词上来减少状态空间的复杂性,从而实现对大规模程序的有效验证。 文章提出了一种新的方法来计算抽象状态,这有助于优化验证过程。在传统的模型检查中,找到一个最短的反例(counter-example)是一个挑战,因为这需要遍历大量的状态空间。论文中介绍的最大权重启发式方法旨在解决这个问题,它通过一种策略来指导搜索,以更快地找到验证过程中最短的违反性质的路径,即最短的反例。这种方法不仅减少了状态空间的大小,还降低了对决策过程(如SAT或SMT求解器)的依赖,从而提高了验证效率。 文章指出,该方法是集成在基于反例驱动的抽象精炼(Counterexample-Guided Abstraction Refinement, CEGAR)框架内的。CEGAR是一种迭代的过程,它在每次迭代中通过反例来指导抽象层的细化,直到找到验证问题的解决方案或者证明不存在反例。新方法通过改进这个过程,使得在保持验证精度的同时,减少了迭代次数和计算开销。 为了评估这个新方法的效果,作者们使用了一系列基准测试。这些基准涵盖了各种复杂度的程序,包括那些在现有验证工具中难以处理的案例。实验结果表明,所提出的方法在实际应用中表现出色,能够显著提高模型检查的性能,并且有效地减少了计算时间和资源消耗。 这篇研究论文为模型检查和程序验证提供了重要的技术进步,特别是对于处理大规模的命令式程序,其提出的谓词抽象和最大权重启发式策略有望成为未来验证工具的关键组成部分。