首页> 外文会议>International symposium on static analysis >Cell Morphing: From Array Programs to Array-Free Horn Clauses
【24h】

Cell Morphing: From Array Programs to Array-Free Horn Clauses

机译:单元变形:从数组程序到无数组的Horn子句

获取原文

摘要

Automatically verifying safety properties of programs is hard. Many approaches exist for verifying programs operating on Boolean and integer values (e.g. abstract interpretation, counterexample-guided abstraction refinement using interpolants), but transposing them to array properties has been fraught with difficulties. Our work addresses that issue with a powerful and flexible abstraction that morphes concrete array cells into a finite set of abstract ones. This abstraction is parametric both in precision and in the back-end analysis used. From our programs with arrays, we generate nonlinear Horn clauses over scalar variables only, in a common format with clear and unambiguous logical semantics, for which there exist several solvers. We thus avoid the use of solvers operating over arrays, which are still very immature. Experiments with our prototype vaphor show that this approach can prove automatically and without user annotations the functional correctness of several classical examples, including selection sort, bubble sort, insertion sort, as well as examples from literature on array analysis.
机译:自动验证程序的安全性很难。存在许多用于验证在布尔值和整数值上运行的程序的方法(例如,抽象解释,使用插值的反例指导的抽象提炼),但是将它们转换为数组属性一直很困难。我们的工作以强大而灵活的抽象解决了这个问题,该抽象将具体的数组单元变形为有限的抽象单元集。这种抽象在精度和所使用的后端分析中都是参数化的。从带有数组的程序中,我们仅在标量变量上生成非线性Horn子句,采用具有清晰明确的逻辑语义的通用格式,为此存在多个求解器。因此,我们避免使用在数组上运行的求解器,而求解器仍然非常不成熟。使用我们的原型vaphor进行的实验表明,这种方法可以自动证明,而无需用户注释,可以证明几个经典示例的功能正确性,这些示例包括选择排序,冒泡排序,插入排序以及数组分析文献中的示例。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号