首页> 外文会议>International Conference on Verification, Model Checking and Abstract Interpretation >Verifying Array Programs by Transforming Verification Conditions
【24h】

Verifying Array Programs by Transforming Verification Conditions

机译:通过转换验证条件来验证数组程序

获取原文

摘要

We present a method for verifying properties of imperative programs manipulating integer arrays. We assume that we are given a program and a property to be verified. The interpreter (that is, the operational semantics) of the program is specified as a set of Horn clauses with constraints in the domain of integer arrays, also called constraint logic programs over integer arrays, denoted CLP(Array). Then, by specializing the interpreter with respect to the given program and property, we generate a set of verification conditions (expressed as a CLP(Array) program) whose satisfiability implies that the program verifies the given property. Our verification method is based on transformations that preserve the least model semantics of CLP(Array) programs, and hence the satisfiability of the verification conditions. In particular, we apply the usual rules for CLP transformation, such as unfolding, folding, and constraint replacement, tailored to the specific domain of integer arrays. We propose an automatic strategy that guides the application of those rules with the objective of deriving a new set of verification conditions which is either trivially satisfiable (because it contains no constrained facts) or is trivially unsatisfiable (because it contains the fact false). Our approach provides a very rich program verification framework where one can compose together several verification strategies, each of them being implemented by transformations of CLP(Array) programs.
机译:我们介绍了一种验证操纵整数阵列的命令程序的属性的方法。我们假设我们被提供了一个计划和一个要验证的属性。该程序的解释器(即,操作语义)被指定为具有在整数阵列的域中的约束的一组喇叭子句,也称为整数阵列的约束逻辑程序,表示为CLP(阵列)。然后,通过专门针对给定的程序和属性的解释器,我们生成一组验证条件(表示为CLP(阵列)程序),其可靠性意味着程序验证给定属性。我们的验证方法基于维护CLP(阵列)程序的最小模型语义的转换,从而获得验证条件的可靠性。特别是,我们应用CLP转换的通常规则,例如展开,折叠和约束更换,对整数阵列的特定域定制。我们提出了一种自动策略,指导这些规则的应用,目的是导出新的验证条件,这些条件是琐碎的验证条件(因为它不包含约束事实)或者是琐碎的(因为它包含错误)。我们的方法提供了一个非常丰富的程序验证框架,其中一个人可以汇集多个验证策略,每个验证策略都是通过CLP(阵列)程序的转换来实现的。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号