首页> 外文会议>Annual ACM SIGPLAN-SIGACT symposium on principles of programming languages >Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
【24h】

Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs

机译:验证多线程程序的谓词抽象和精制

获取原文
获取外文期刊封面目录资料

摘要

Automated verification of multi-threaded programs requires explicit identification of the interplay between interacting threads, so-called environment transitions, to enable scalable, compositional reasoning. Once the environment transitions are identified, we can prove program properties by considering each program thread in isolation, as the environment transitions keep track of the interleaving with other threads. Finding adequate environment transitions that are sufficiently precise to yield conclusive results and yet do not overwhelm the verifier with unnecessary details about the interleaving with other threads is a major challenge. In this paper we propose a method for safety verification of multi-threaded programs that applies (transition) predicate abstraction-based discovery of environment transitions, exposing a minimal amount of information about the thread interleaving. The crux of our method is an abstraction refinement procedure that uses recursion-free Horn clauses to declaratively state abstraction refinement queries. Then, the queries are resolved by a corresponding constraint solving algorithm. We present preliminary experimental results for mutual exclusion protocols and multi-threaded device drivers.
机译:自动验证多线程程序需要显式识别交互线程之间的相互作用,所谓的环境转换,以实现可扩展的,组成推理。一旦识别环境转换,我们就可以通过在隔离中考虑每个程序线程来证明程序属性,因为环境过渡跟踪与其他线程交织的交织。找到足够精确的环境过渡,以产生确凿的结果,但并未压倒验证者,这些验证者有关于与其他线程交织的不必要的细节是一个主要挑战。在本文中,我们提出了一种用于安全验证的方法,用于应用(转换)基于谓词的环境转换的谓词抽象的发现,从而暴露有关线程交织的最小信息。我们的方法的关键是一种抽象细化过程,它使用递归的喇叭子句来声明的状态抽象细化查询。然后,查询通过相应的约束求解算法解析。我们对互排电协议和多线程设备驱动器提出了初步实验结果。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号