MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Veri cation of Java Programs using Symbolic Execution and Invariant Generation

Download:
pdf | ps
by Corina S. Pasareanu, Willem Visser
http://ase.arc.nasa.gov/docs/../people/visser/spin04.ps
Add To MetaCart

Abstract:

Abstract. Software verication is recognized as an important and dif-cult problem. We present a novel framework, based on symbolic execution, for the automated verication of software. The framework uses annotations in the form of method specications and loop invariants. We present a novel iterative technique that uses invariant strengthening and approximation for discovering these loop invariants automatically. The technique handles dierent types of data (e.g. boolean and numeric constraints, dynamically allocated structures and arrays) and it allows for checking universally quantied formulas. Our framework is built on top of the Java PathFinder model checking toolset and it was used for the verication of several non-trivial Java programs. 1

Citations

1345 The Temporal Logic of Reactive and Concurrent Systems: Specification – Manna, Pnueli - 1992
952 An Axiomatic Basis for Computer Programming – Hoare - 1969
407 Construction of abstract state graphs with PVS – Graf, Saïdi - 1997
402 Assigning meanings to programs – FLOYD - 1967
358 N.: Automatic discovery of linear restraints among variables of a program – Cousot, Halbwachs - 1978
352 The omega test: a fast and practical integer programming algorithm for dependence analysis – Pugh - 1991
250 Extended static checking – Detlefs, Leino, et al. - 1998
249 Solving shape-analysis problems in languages with destructive updating – Sagiv, Reps, et al. - 1998
246 Model checking programs – Visser, Havelund, et al. - 2003
228 Automatic predicate abstraction of C programs – Ball, Majumdar, et al. - 2001
215 Model checking for programming languages using VeriSoft – Godefroid - 1997
162 Symbolic execution and program testing – King - 1976
97 Affine Relationships Among Variables of a Program – Karr - 1976
93 Powerful techniques for the automatic generation of invariants – BENSALEM, LAKHNECH, et al. - 1996
84 Quickly detecting relevant program invariants – Ernst, Czeisler, et al. - 2000
77 Experiments in theorem proving and model checking for protocol verification – Havelund, Shankar - 1996
76 Generalized symbolic execution for model checking and testing – Khurshid, Pasareanu, et al.
38 The synthesis of loop predicates – Wegbreit - 1974
29 The Spin Model Checker, Primer and Reference – Holzmann - 2004
28 invariant generation using non-linear constraint solving – COLÓN, SANKARANARAYANAN, et al. - 2003
28 The pointer assertion logic engine – Moeller, Schwartzbach - 2001
27 Checking cleanness in linked lists – Dor, Rodeh, et al. - 2000
27 Verifying invariants using theorem proving – Graf, Saidi - 1996
26 Bandera: Extracting models from Java source code – Corbett, Dwyer, et al. - 2000
21 Verifying temporal properties of reactive systems: A step tutorial – Bjorner, Browne, et al. - 1999
17 A technique for invariant generation – TIWARI, RUESS, et al.
17 Verifying Systems with In but Regular State Space – Boigelot, Wolper - 1998
15 An introduction to proving the correctness of programs – Hantler, King - 1976
7 Relative completeness of abstraction re for software model checking – Ball, Podelski, et al. - 2002
4 Predicate abstraction for software veri – Flanagan, Qadeer - 2002
2 On abstraction in software veri – Cousot, Cousot - 2002
2 Automated veri of concurrent linked lists with counters – Yavuz-Kahveci, Bultan - 2002
1 narrow and relax – Widen