A logic and decision procedure for predicate abstraction of heap-manipulating programs

被引:0
|
作者
Bingham, J [1 ]
Rakamaric, Z [1 ]
机构
[1] Univ British Columbia, Dept Comp Sci, Vancouver, BC V6T 1W5, Canada
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
An important and ubiquitous class of programs are heap-manipulating programs (HMP), which manipulate unbounded linked data structures by following pointers and updating links. Predicate abstraction has proved to be an invaluable technique in the field of software model checking; this technique relies on an efficient decision procedure for the underlying logic. The expression and proof of many interesting HMP safety properties require transitive closure predicates; such predicates express that some node can be reached from another node by following a sequence of (zero or more) links in the data structure. Unfortunately, adding support for transitive closure often yields undecidability, so one must be careful in defining such a logic. Our primary contributions are the definition of a simple transitive closure logic for use in predicate abstraction of HMPs, and a decision procedure for this logic. Through several experimental examples, we demonstrate that our logic is expressive enough to prove interesting properties with predicate abstraction, and that our decision procedure provides us with both a time and space advantage over previous approaches.
引用
收藏
页码:207 / 221
页数:15
相关论文
共 50 条
  • [41] Predicate abstraction via symbolic decision procedures
    Lahiri, SK
    Ball, T
    Cook, B
    COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2005, 3576 : 24 - 38
  • [42] Predicate abstraction of programs with non-linear computation
    Xia, Songtao
    Di Vito, Ben
    Munoz, Cesar
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, PROCEEDINGS, 2006, 4218 : 352 - 368
  • [43] Automating regression verification of pointer programs by predicate abstraction
    Vladimir Klebanov
    Philipp Rümmer
    Mattias Ulbrich
    Formal Methods in System Design, 2018, 52 : 229 - 259
  • [44] Automating regression verification of pointer programs by predicate abstraction
    Klebanov, Vladimir
    Rummer, Philipp
    Ulbrich, Mattias
    FORMAL METHODS IN SYSTEM DESIGN, 2018, 52 (03) : 229 - 259
  • [45] Automatic Verification of Golog Programs via Predicate Abstraction
    Mo, Peiming
    Li, Naiqi
    Liu, Yongmei
    ECAI 2016: 22ND EUROPEAN CONFERENCE ON ARTIFICIAL INTELLIGENCE, 2016, 285 : 760 - 768
  • [46] Model Checking Recursive Programs with Exact Predicate Abstraction
    Gurfinkel, Arie
    Wei, Ou
    Chechik, Marsha
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS, PROCEEDINGS, 2008, 5311 : 95 - +
  • [47] Verification and falsification of programs with loops using predicate abstraction
    Kroening, Daniel
    Weissenbacher, Georg
    FORMAL ASPECTS OF COMPUTING, 2010, 22 (02) : 105 - 128
  • [48] A Decision Procedure for Path Feasibility of String Manipulating Programs with Integer Data Type
    Chen, Taolue
    Hague, Matthew
    He, Jinlong
    Hu, Denghang
    Lin, Anthony Widjaja
    Rummer, Philipp
    Wu, Zhilin
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2020), 2020, 12302 : 325 - 342
  • [49] Predicate Abstraction and Refinement for Verifying Multi-Threaded Programs
    Gupta, Ashutosh
    Popeea, Corneliu
    Rybalchenko, Andrey
    ACM SIGPLAN NOTICES, 2011, 46 (01) : 331 - 344
  • [50] Predicate Abstraction of ANSI-C Programs Using SAT
    Edmund Clarke
    Daniel Kroening
    Natasha Sharygina
    Karen Yorav
    Formal Methods in System Design, 2004, 25 : 105 - 127