首页> 外文学位 >A counterexample guided abstraction refinement framework for verifying concurrent C programs.
【24h】

A counterexample guided abstraction refinement framework for verifying concurrent C programs.

机译:一个反例指导抽象精炼框架,用于验证并发C程序。

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

摘要

This dissertation presents a framework for verifying concurrent message-passing C programs in an automated manner. The methodology relies on several key ideas. First, programs are modeled as finite state machines whose states are labeled with data and whose transitions are labeled with events. We refer to such state machines as labeled Kripke structures (LKSs). Our state/event-based approach enables us to succinctly express and efficiently verify properties which involve simultaneously both the static (data-based) and the dynamic (reactive or event-based) aspects of any software system. Second, the framework supports a wide range of specification mechanisms and notions of conformance. For instance, complete system specifications can be expressed as LKSs and simulation conformance verified between such specifications and any C implementation. For partial specifications, the framework supports (in addition to LKSs) a state/event-based linear temporal logic capable of expressing complex safety as well as liveness properties. Finally, the framework enables us to check for deadlocks in concurrent message-passing programs. Third, for each notion of conformance, we present a completely automated and compositional verification procedure based on the counterexample guided abstraction refinement (CEGAR) paradigm. Like other CEGAR-based approaches, these verification procedures consist of an iterative application of model construction, model checking, counterexample validation and model refinement steps. However, they are uniquely distinguished by their compositionality . More precisely, in each of our conformance checking procedures, the algorithms for model construction, counterexample validation and model refinement are applied component-wise. The state-space size of the models are controlled via a two-pronged strategy: (i) using two complementary abstraction techniques based on the static (predicate abstraction) and dynamic (action-guided abstraction) aspects of the program, and (ii) minimizing the number of predicates required for predicate abstraction. The proposed framework has been implemented in the MAGIC tool. We present experimental evaluation in support of the effectiveness of our framework in verifying non-trivial concurrent C programs against a rich class of specifications in an automated manner.
机译:本文提出了一种用于自动验证并发消息传递C程序的框架。该方法学依赖于几个关键思想。首先,将程序建模为有限状态机,其状态用数据标记,其转换用事件标记。我们将这种状态机称为标记为Kripke结构(LKSs)。我们基于状态/事件的方法使我们能够简洁地表达和有效验证属性,这些属性同时涉及任何软件系统的静态(基于数据)和动态(基于响应或事件)方面。第二,该框架支持各种规范机制和一致性概念。例如,完整的系统规范可以表示为LKS,并且可以在此类规范和任何C实现之间验证仿真一致性。对于部分规范,该框架(除了LKS之外)还支持基于状态/事件的线性时序逻辑,该逻辑能够表达复杂的安全性和活动性。最后,该框架使我们能够检查并发消息传递程序中的死锁。第三,对于每种符合性概念,我们都基于反例指导的抽象提炼(CEGAR)范例提出了一种完全自动化的成分验证程序。像其他基于CEGAR的方法一样,这些验证过程包括模型构建,模型检查,反例验证和模型优化步骤的迭代应用。但是,它们的独特之处在于其组成。更准确地说,在我们的每个一致性检查程序中,模型构建,反例验证和模型细化的算法都是逐组件应用的。通过两种策略来控制模型的状态空间大小:(i)基于程序的静态(谓词抽象)和动态(动作指导抽象)方面使用两种互补的抽象技术,以及(ii)最小化谓词抽象所需的谓词数量。提议的框架已在MAGIC工具中实现。我们提出了实验评估,以支持我们的框架在以自动化方式针对丰富的规范类别验证非平凡的并发C程序方面的有效性。

著录项

  • 作者

    Chaki, Sagar J.;

  • 作者单位

    Carnegie Mellon University.;

  • 授予单位 Carnegie Mellon University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2005
  • 页码 253 p.
  • 总页数 253
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号