alpha SPIN: Extending SPIN with Abstraction

Model Checking is a powerful verification method to increase the quality of software systems. However, the application of this technique is only possible and fruitful if useful models of the software are available. A useful model is an abstract representation of a system, containing only the details necessary to ensure that satisfaction (non-satisfaction) of interesting properties in the model provides information about the behavior of the real system. Abstraction methods have become one of the hottest topics in the automatic verification of software systems because they can reduce the state space to be explored and allow the verification of more complex systems [1],[3].

[1]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[2]  Orna Grumberg,et al.  Abstract interpretation of reactive systems , 1997, TOPL.

[3]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[4]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[5]  Mieke Massink,et al.  Theoretical and Practical Aspects of SPIN Model Checking , 1999, Lecture Notes in Computer Science.

[6]  Edmund M. Clarke,et al.  Counterexample-guided abstraction refinement , 2003, 10th International Symposium on Temporal Representation and Reasoning, 2003 and Fourth International Conference on Temporal Logic. Proceedings..

[7]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[8]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[9]  Martin Peschke,et al.  Design and Validation of Computer Protocols , 2003 .

[10]  María-del-Mar Gallardo,et al.  A Framework for Automatic Construction of Abstract Promela Models , 1999, SPIN.

[11]  Joseph Sifakis,et al.  Property preserving abstractions for the verification of concurrent systems , 1995, Formal Methods Syst. Des..

[12]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[13]  Matthew B. Dwyer,et al.  Finding Feasible Counter-examples when Model Checking Abstracted Java Programs , 2001, TACAS.

[14]  María del Mar Gallardo Melgarejo,et al.  Abstract Satisfiability of Linear Temporal Logic , 2001 .

[15]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[16]  Matthew B. Dwyer,et al.  Tool-supported program abstraction for finite-state verification , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[17]  María-del-Mar Gallardo,et al.  Using XML to implement abstraction for Model Checking , 2002, SAC '02.

[18]  Klaus Havelund,et al.  Model checking JAVA programs using JAVA PathFinder , 2000, International Journal on Software Tools for Technology Transfer.

[19]  Gerard J. Holzmann,et al.  A practical method for verifying event-driven software , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[20]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[21]  Zohar Manna,et al.  The Temporal Logic of Reactive and Concurrent Systems , 1991, Springer New York.

[22]  Hassen Saïdi,et al.  Model Checking Guided Abstraction and Analysis , 2000, SAS.

[23]  Thierry Cattel,et al.  From architecture down to implementation of safe process control applications-the lift case study , 1997, Proceedings of the Thirtieth Hawaii International Conference on System Sciences.