Property-directed incremental invariant generation

被引:41
作者
Bradley, Aaron R. [1 ]
Manna, Zohar [1 ]
机构
[1] Stanford Univ, Dept Comp Sci, Stanford, CA 94305 USA
关键词
static analysis; model checking; invariant generation; affine invariants; polynomial invariants; clausal invariants;
D O I
10.1007/s00165-008-0080-9
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
A fundamental method of analyzing a system such as a program or a circuit is invariance analysis, in which one proves that an assertion holds on all reachable states. Typically, the proof is performed via induction; however, an assertion, while invariant, may not be inductive (provable via induction). Invariant generation procedures construct auxiliary inductive assertions for strengthening the assertion to be inductive. We describe a general method of generating invariants that is incremental and property-directed. Rather than generating one large auxiliary inductive assertion, our method generates many simple assertions, each of which is inductive relative to those generated before it. Incremental generation is amenable to parallelization. Our method is also property-directed in that it generates inductive assertions that are relevant for strengthening the given assertion. We describe two instances of our method: a procedure for generating clausal invariants of finite-state systems and a procedure for generating affine inequalities of numerical infinite-state systems. We provide evidence that our method scales to checking safety properties of some large finite-state systems.
引用
收藏
页码:379 / 405
页数:27
相关论文
共 52 条
[1]   Introduction to set constraint-based program analysis [J].
Aiken, A .
SCIENCE OF COMPUTER PROGRAMMING, 1999, 35 (2-3) :79-111
[2]  
[Anonymous], LECT NOTES COMPUTER
[3]  
ARMONI R, 2004, SAT BASED INDUCTION
[4]  
AVIS D, 1998, LICS, P329
[5]   Automatic invariant strengthening to prove properties in bounded model checking [J].
Awedh, Mohammad ;
Somenzi, Fabio .
43RD DESIGN AUTOMATION CONFERENCE, PROCEEDINGS 2006, 2006, :1073-+
[6]  
Biere A, 1999, LECT NOTES COMPUT SC, V1579, P193
[7]  
BOYD S, 1989, INT J CONTROL, V49, P2215
[8]  
Bradley Aaron R., 2007, The Calculus of Computation: Decision Procedures with Applications to Veri~cation
[9]  
Bradley AR, 2005, LECT NOTES COMPUT SC, V3576, P491
[10]  
BRADLEY AR, 2006, LECT NOTES COMPUTER, V3722