Counterexample-guided abstraction refinement for linear programs with arrays

被引:0
|
作者
Alessandro Armando
Massimo Benerecetti
Jacopo Mantovani
机构
[1] University of Genova,Security & Trust
[2] FBK-IRST,undefined
[3] University of Napoli “Federico II”,undefined
来源
关键词
Predicate Abstraction Refinement; Boolean Programs; Edge-path Incidence; CPAchecker; Exit Vertex;
D O I
暂无
中图分类号
学科分类号
摘要
Predicate abstraction refinement is one of the leading approaches to software verification. The key idea is to abstract the input program into a Boolean Program (i.e. a program whose variables range over the Boolean values only and model the truth values of predicates corresponding to properties of the program state), and refinement searches for new predicates in order to build a new, more refined abstraction. Thus Boolean programs are commonly employed as a simple, yet useful abstraction. However, the effectiveness of predicate abstraction refinement on programs that involve a tight interplay between data-flow and control-flow is still to be ascertained. We present a novel counterexample guided abstraction refinement procedure for Linear Programs with arrays, a fragment of the C programming language where variables and array elements range over a numeric domain and expressions involve linear combinations of variables and array elements. In our procedure the input program is abstracted w.r.t. a family of sets of array indices, the abstraction is a Linear Program (without arrays), and refinement searches for new array indices. We use Linear Programs as the target of the abstraction (instead of Boolean programs) as they allow to express complex correlations between data and control. Thus, unlike the approaches based on predicate abstraction, our approach treats arrays precisely. This is an important feature as arrays are ubiquitous in programming. We provide a precise account of the abstraction, Model Checking, and refinement processes, discuss their implementation in the EUREKA tool, and present a detailed analysis of the experimental results confirming the effectiveness of our approach on a number of programs of interest.
引用
收藏
页码:225 / 285
页数:60
相关论文
共 50 条
  • [21] Counterexample-Guided Prefix Refinement Analysis for Program Verification
    Jasper, Marc
    [J]. LEVERAGING APPLICATIONS OF FORMAL METHODS, VERIFICATION, AND VALIDATION, ISOLA 2014, 2016, 683 : 143 - 155
  • [22] Counterexample-guided control
    Henzinger, TA
    Jhala, R
    Majumdar, R
    [J]. AUTOMATA, LANGUAGES AND PROGRAMMING, PROCEEDINGS, 2003, 2719 : 886 - 902
  • [23] Counterexample Guided Abstraction Refinement for Stability Analysis
    Prabhakar, Pavithra
    Soto, Miriam Garcia
    [J]. COMPUTER AIDED VERIFICATION, (CAV 2016), PT I, 2016, 9779 : 495 - 512
  • [24] VCEGAR: Verilog counterexample guided abstraction refinement
    Jain, Himanshu
    Kroening, Daniel
    Sharygina, Natasha
    Clarke, Edmund
    [J]. TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2007, 4424 : 583 - +
  • [25] Counterexample guided abstraction refinement is better under equational abstraction
    Enea, Constantin
    [J]. FIFTEENTH IEEE INTERNATIONAL CONFERENCE AND WORKSHOPS ON THE ENGINEERING OF COMPUTER-BASED SYSTEMS, PROCEEDINGS, 2008, : 126 - 135
  • [26] Counterexample-Guided Diagnosis
    Riener, Heinz
    Fey, Goerschwin
    [J]. 2016 1ST IEEE INTERNATIONAL VERIFICATION AND SECURITY WORKSHOP (IVSW), 2016, : 43 - 48
  • [27] Counterexample-Guided Focus
    Podelski, Andreas
    Wies, Thomas
    [J]. ACM SIGPLAN NOTICES, 2010, 45 (01) : 249 - 260
  • [28] Counterexample-Guided Focus
    Podelski, Andreas
    Wies, Thomas
    [J]. POPL'10: PROCEEDINGS OF THE 37TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2010, : 249 - 260
  • [29] Solving quantified linear arithmetic by counterexample-guided instantiation
    Reynolds, Andrew
    King, Tim
    Kuncak, Viktor
    [J]. FORMAL METHODS IN SYSTEM DESIGN, 2017, 51 (03) : 500 - 532
  • [30] Solving quantified linear arithmetic by counterexample-guided instantiation
    Andrew Reynolds
    Tim King
    Viktor Kuncak
    [J]. Formal Methods in System Design, 2017, 51 : 500 - 532