A CLP method for compositional and intermittent predicate abstraction

被引:0
|
作者
Jaffar, J [1 ]
Santosa, AE [1 ]
Voicu, R [1 ]
机构
[1] Natl Univ Singapore, Sch Comp, Singapore 117543, Singapore
来源
VERIFICATION, MODEL CHECKING , AND ABSTRACT INTERPRETATION, PROCEEDINGS | 2006年 / 3855卷
关键词
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present an implementation of symbolic reachability analysis with the features of compositionality, and intermittent abstraction, in the sense of pefrorming approximation only at selected program points, if at all. The key advantages of compositionality are well known, while those of intermittent abstraction are that the abstract domain required to ensure convergence of the algorithm can be minimized, and that the cost of performing abstractions, now being intermittent, is reduced. We start by formulating the problem in CLP, and first obtain compositionality. We then address two key efficiency challenges. The first is that reasoning is required about the strongest-postcondition operator associated with an arbitrarily long program fragment. This essentially means dealing with constraints over an unbounded number of variables describing the states between the start and end of the program fragment at hand, This is addressed by using the variable elimination or projection mechanism that is implicit in CLP systems. The second challenge is termination, that is, to determine which subgoals are redundant. We address this by a novel formulation of memoization called coinductive tabling. We finally evaluate the method experimentally. At one extreme, where abstraction is performed at every step, we compare against a model checker. At the other extreme, where no abstraction is performed, we compare against a program verifier. Of course, our method provides for the middle ground, with a flexible combination of abstraction and Hoare-style reasoning with predicate transformers and loop-invariants.
引用
收藏
页码:17 / 32
页数:16
相关论文
共 50 条
  • [31] Transition predicate abstraction and fair termination
    Podelski, Andreas
    Rybalchenko, Andrey
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2007, 29 (03):
  • [32] Predicate abstraction and canonical abstraction for singly-linked lists
    Manevich, R
    Yahav, E
    Ramalingam, G
    Sagiv, M
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, PROCEEDINGS, 2005, 3385 : 181 - 198
  • [33] Transition predicate abstraction and fair termination
    Podelski, A
    Rybalchenko, A
    ACM SIGPLAN NOTICES, 2005, 40 (01) : 132 - 144
  • [34] Localization and register sharing for predicate abstraction
    Jain, H
    Ivancic, F
    Gupta, A
    Ganai, MK
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2005, 3440 : 397 - 412
  • [35] Automatic predicate abstraction of C programs
    Ball, T
    Millstein, T
    Majumdar, R
    Rajamani, SK
    ACM SIGPLAN NOTICES, 2001, 36 (05) : 203 - 213
  • [36] Predicate abstraction of java programs with collections
    David R. Cheriton School of Computer Science, University of Waterloo, Canada
    ACM SIGPLAN Not., 10 (75-94):
  • [37] Predicate abstraction in a program logic calculus
    Weiss, Benjamin
    SCIENCE OF COMPUTER PROGRAMMING, 2011, 76 (10) : 861 - 876
  • [38] Combining Predicate Abstraction with Fixpoint Approximations
    Yavuz, Tuba
    SOFTWARE ENGINEERING AND FORMAL METHODS: 14TH INTERNATIONAL CONFERENCE, SEFM 2016, 2016, 9763 : 104 - 120
  • [39] Verification of SpecC using predicate abstraction
    Edmund Clarke
    Himanshu Jain
    Daniel Kroening
    Formal Methods in System Design, 2007, 30 : 5 - 28
  • [40] Competent predicate abstraction in model checking
    LI Li1
    2Key Laboratory for Information System Security
    3School of Software
    4Department of ECE
    ScienceChina(InformationSciences), 2011, 54 (02) : 258 - 267