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 条
  • [1] Verifying Heap-Manipulating Programs with Unknown Procedure Calls
    Qin, Shengchao
    Luo, Chenguang
    He, Guanhua
    Craciun, Florin
    Chin, Wei-Ngan
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2010, 6447 : 171 - +
  • [2] Modular Heap Abstraction-Based Memory Leak Detection for Heap-Manipulating Programs
    Dong, Longming
    Wang, Ji
    Chen, Liqian
    2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC), VOL 1, 2012, : 20 - 29
  • [3] Modular Heap Abstraction-based Code Clone Detection for Heap-manipulating Programs
    Dong, Longming
    Wang, Ji
    Chen, Liqian
    2012 12TH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE (QSIC), 2012, : 197 - 200
  • [4] Structuring the Verification of Heap-Manipulating Programs
    Nanevski, Aleksandar
    Vafeiadis, Viktor
    Berdine, Josh
    ACM SIGPLAN NOTICES, 2010, 45 (01) : 261 - 273
  • [5] Structuring the Synthesis of Heap-Manipulating Programs
    Polikarpova, Nadia
    Sergey, Ilya
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (POPL):
  • [6] Certifying the Synthesis of Heap-Manipulating Programs
    Watanabe, Yasunari
    Gopinathan, Kiran
    Pirlea, George
    Polikarpova, Nadia
    Sergey, Ilya
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5
  • [7] Structuring the Verification of Heap-Manipulating Programs
    Nanevski, Aleksandar
    Vafeiadis, Viktor
    Berdine, Josh
    POPL'10: PROCEEDINGS OF THE 37TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2010, : 261 - 273
  • [8] Automatic Numeric Abstractions for Heap-Manipulating Programs
    Magill, Stephen
    Tsai, Ming-Hsien
    Lee, Peter
    Tsay, Yih-Kuen
    POPL'10: PROCEEDINGS OF THE 37TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2010, : 211 - 222
  • [9] Model and Proof Generation for Heap-Manipulating Programs
    Brain, Martin
    David, Cristina
    Kroening, Daniel
    Schrammel, Peter
    PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 8410 : 432 - 452
  • [10] Automatic Numeric Abstractions for Heap-Manipulating Programs
    Magill, Stephen
    Tsai, Ming-Hsien
    Lee, Peter
    Tsay, Yih-Kuen
    ACM SIGPLAN NOTICES, 2010, 45 (01) : 211 - 222