...
首页> 外文期刊>Formal Methods in System Design >Efficient Verification of Sequential and Concurrent C Programs
【24h】

Efficient Verification of Sequential and Concurrent C Programs

机译:顺序和并行C程序的有效验证

获取原文
获取原文并翻译 | 示例

摘要

There has been considerable progress in the domain of software verification over the last few years. This advancement has been driven, to a large extent, by the emergence of powerful yet automated ion techniques such as predicate ion. However, the state-space explosion problem in model checking remains the chief obstacle to the practical verification of real-world distributed systems. Even in the case of purely sequential programs, a crucial requirement to make predicate ion effective is to use as few predicates as possible. This is because, in the worst case, the state-space of the ion generated (and consequently the time and memory complexity of the ion process) is exponential in the number of predicates involved. In addition, for concurrent programs, the number of reachable states could grow exponentially with the number of components. We attempt to address these issues in the context of verifying concurrent (message-passing) C programs against safety specifications. More specifically, we present a fully automated compositional framework which combines two orthogonal ion techniques (predicate ion for data and action-guided ion for events) within a counterexample-guided ion refinement scheme. In this way, our algorithm incrementally increases the granularity of the ions until the specification is either established or refuted. Additionally, a key feature of our approach is that if a property can be proved to hold or not hold based on a given finite set of predicates P, the predicate refinement procedure we propose in this article finds automatically a minimal subset of P that is sufficient for the proof. This, along with our explicit use of compositionality, delays the onset of state-space explosion for as long as possible. We describe our approach in detail, and report on some very encouraging experimental results obtained with our tool MAGIC.
机译:在过去的几年中,软件验证领域取得了长足的进步。强大而自动化的离子技术(例如谓词离子)的出现在很大程度上推动了这一进步。但是,模型检查中的状态空间爆炸问题仍然是实际验证实际分布式系统的主要障碍。即使在纯粹顺序的程序中,使谓词离子有效的关键要求是使用尽可能少的谓词。这是因为,在最坏的情况下,所生成的离子的状态空间(以及离子过程的时间和存储复杂性)在所涉及谓词的数量中呈指数关系。另外,对于并发程序,可到达状态的数量可以随组件数量的增加而呈指数增长。我们尝试根据安全规范验证并发(消息传递)C程序,以解决这些问题。更具体地说,我们提出了一个全自动的组成框架,该框架在反例指导的离子优化方案中结合了两种正交离子技术(用于数据的谓词和用于事件的动作指导离子)。这样,我们的算法会逐渐增加离子的粒度,直到建立或拒绝了规格。此外,我们方法的关键特征是,如果可以根据给定的有限谓词集合P证明某个属性是否成立,那么我们在本文中提出的谓词细化过程会自动找到一个足以满足要求的P的最小子集。为证明。这以及我们对组合性的明确使用,尽可能长时间地延迟了状态空间爆炸的发生。我们将详细描述我们的方法,并报告使用我们的工具MAGIC获得的一些非常令人鼓舞的实验结果。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号