首页> 外文OA文献 >Program verification using constraint handling rules and array constraint generalizations
【2h】

Program verification using constraint handling rules and array constraint generalizations

机译:使用约束处理规则和数组约束概括进行程序验证

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

Thetransformationofconstraintlogicprograms(CLPprograms)hasbeenshowntobean effective methodology for verifying properties of imperative programs. By following this methodology, we encode the negation of a partial correctness property of an imperative program prog as a predicate incorrect defined by a CLP program T , and we show that prog is correct by transforming T into the empty program (and thus incorrect does not hold) through the application of semantics preserving transformation rules. We can also show that prog is incorrect by transforming T into a program with the fact incorrect (and thus incorrect does hold). Some of the transformation rules perform replacements of constraints that are based on properties of the data structures manipulated by the program prog. In this paper we show that Constraint Handling Rules (CHR) are a suitable formalism for representing and applying constraint replacements during the transformation of CLP programs. In particular, we consider programs that manipulate integer arrays and we present a CHR encoding of a constraint replacement strategy based on the theory of arrays. We also propose a novel generalization strategy for constraints on integer arrays that combines CHR constraint replacements with various generalization operators on integer constraints, such as widening and convex hull. Generalization is controlled by additional constraints that relate the variable identifiers in the imperative program prog and the CLP representation of their values. The method presented in this paper has been implemented and we have demonstrated its effectiveness on a set of benchmark programs taken from the literature.
机译:约束逻辑程序(CLP程序)的转换已显示为验证命令式程序属性的有效方法。通过遵循这种方法,我们将命令式程序prog的部分正确性的否定编码为CLP程序T所定义的谓词不正确,并且通过将T转换为空程序来证明prog是正确的(因此,错误不会保留)通过应用语义保留转换规则。我们还可以通过将T转换为具有错误事实的程序来证明prog是错误的(因此,错误确实成立了)。一些转换规则基于程序编操作的数据结构的属性来执行约束的替换。在本文中,我们表明约束处理规则(CHR)是在CLP程序转换过程中表示和应用约束替换的合适形式。特别地,我们考虑操纵整数数组的程序,并基于数组理论提出了约束替换策略的CHR编码。我们还针对整数数组的约束提出了一种新颖的泛化策略,该策略将CHR约束替换与整数约束(例如加宽和凸包)上的各种泛化运算符结合在一起。泛化由附加的约束控制,这些约束将命令式程序prog中的变量标识符及其值的CLP表示相关联。本文介绍的方法已经实施,我们已经从文献中选取了一套基准程序来证明了其有效性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号