...
首页> 外文期刊>Theory and Practice of Logic Programming >Predicate Pairing for program verification
【24h】

Predicate Pairing for program verification

机译:谓词配对以进行程序验证

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

摘要

It is well-known that the verification of partial correctness properties of imperative programs can be reduced to the satisfiability problem for constrained Horn clauses (CHCs). However, state-of-the-art solvers for constrained Horn clauses (or CHC solvers) based on predicate abstraction are sometimes unable to verify satisfiability because they look for models that are definable in a given class A of constraints, called A-definable models. We introduce a transformation technique, called Predicate Pairing, which is able, in many interesting cases, to transform a set of clauses into an equisatisfiable set whose satisfiability can be proved by finding an A-definable model, and hence can be effectively verified by a state-of-the-art CHC solver. In particular, we prove that, under very general conditions on A, the unfold/fold transformation rules preserve the existence of an A-definable model, that is, if the original clauses have an A-definable model, then the transformed clauses have an A-definable model. The converse does not hold in general, and we provide suitable conditions under which the transformed clauses have an A-definable model if and only if the original ones have an A-definable model. Then, we present a strategy, called Predicate Pairing, which guides the application of the transformation rules with the objective of deriving a set of clauses whose satisfiability problem can be solved by looking for A-definable models. The Predicate Pairing (PP) strategy introduces a new predicate defined by the conjunction of two predicates occurring in the original set of clauses, together with a conjunction of constraints. We will show through some examples that an A-definable model may exist for the new predicate even if it does not exist for its defining atomic conjuncts. We will also present some case studies showing that Predicate Pairing plays a crucial role in the verification of relational properties of programs, that is, properties relating two programs (such as program equivalence) or two executions of the same program (such as non-interference). Finally, we perform an experimental evaluation of the proposed techniques to assess the effectiveness of Predicate Pairing in increasing the power of CHC solving.
机译:众所周知,命令式程序的部分正确性的验证可以简化为约束Horn子句(CHC)的可满足性问题。但是,基于谓词抽象的约束Horn子句的最新求解器(或CHC求解器)有时无法验证可满足性,因为它们会寻找在给定的A类约束条件下可定义的模型(称为A可定义模型) 。我们引入了一种称为谓词配对的转换技术,该技术可以在许多有趣的情况下将一组子句转换为一个可满足的集合,通过找到一个A可定义的模型可以证明其可满足性,因此可以通过a最新的CHC求解器。特别地,我们证明,在A的非常一般的条件下,展开/折叠转换规则保留了A可定义模型的存在,即,如果原始子句具有A可定义模型,则转换后的子句具有一个A可定义模型。可定义的模型。相反,通常情况并非如此,我们提供了合适的条件,在这些条件下,当且仅当原始子句具有A可定义模型时,转换后的子句才具有A可定义模型。然后,我们提出一种称为谓词配对的策略,该策略指导转换规则的应用,其目的是导出一组子句,这些子句的可满足性问题可以通过寻找A可定义的模型来解决。谓词配对(PP)策略引入了一个新的谓词,该谓词由原始子句集中出现的两个谓词的结合以及约束的结合定义。我们将通过一些示例说明新定义的谓词可能存在A可定义模型,即使它的定义原子组合不存在也是如此。我们还将提供一些案例研究,表明谓词配对在验证程序的相关属性(即,与两个程序(例如,程序等价)或同一程序的两次执行(例如,非干扰)相关的属性)中起着至关重要的作用。 )。最后,我们对提出的技术进行实验评估,以评估谓词配对在提高CHC解决能力方面的有效性。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号