Action Language verifier: an infinite-state model checker for reactive software specifications

Action Language is a specification language for reactive software systems. In this paper, we present the syntax and the semantics of the Action Language and we also present an infinite-state symbolic model checker called Action Language Verifier (ALV) that verifies (or falsifies) CTL properties of Action Language specifications. ALV is built on top of the Composite Symbolic Library, which is a symbolic manipulator that combines multiple symbolic representations. ALV is a polymorphic model checker that can use different combinations of the symbolic representations implemented in the Composite Symbolic Library. We describe the heuristics implemented in ALV for computing fixpoints using the composite symbolic representation. Since Action Language specifications allow declaration of unbounded integer variables and parameterized integer constants, verification of Action Language specifications is undecidable. ALV uses several heuristics to conservatively approximate the fixpoint computations. ALV also implements an automated abstraction technique that enables parameterized verification of a concurrent system with an arbitrary number of identical processes.

[1]  Stephan Merz,et al.  Model Checking , 2000 .

[2]  Tevfik Bultan,et al.  Efficient Symbolic Representations for Arithmetic Constraints in Verification , 2003, Int. J. Found. Comput. Sci..

[3]  Tevfik Bultan,et al.  Action Language Verifier, Extended , 2005, CAV.

[4]  Steve Alten,et al.  Omega Project , 1978, Encyclopedia of Parallel Computing.

[5]  Mahesh Viswanathan,et al.  LEVER: A Tool for Learning Based Verification , 2006, International Conference on Computer Aided Verification.

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

[7]  Giorgio Delzanno,et al.  Constraint-Based Verification of Client-Server Protocols , 2001, CP.

[8]  Nils Klarlund,et al.  MONA: Monadic Second-Order Logic in Practice , 1995 .

[9]  Wang Yi,et al.  UPPAAL Implementation Secrets , 2002, FTRTFT.

[10]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[11]  Tevfik Bultan,et al.  Action Language Verifier , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[12]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[13]  Tevfik Bultan,et al.  Widening Arithmetic Automata , 2004, CAV.

[14]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[15]  Richard Gerber,et al.  Model-checking concurrent systems with unbounded integer variables: symbolic representations, approximations, and experimental results , 1999, TOPL.

[16]  Tevfik Bultan,et al.  Specification, verification, and synthesis of concurrency control components , 2002, ISSTA '02.

[17]  Tevfik Bultan,et al.  Verification of parameterized hierarchical state machines using action language verifier , 2005, Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2005. MEMOCODE '05..

[18]  Tevfik Bultan,et al.  Verifiable concurrent programming using concurrency controllers , 2004 .

[19]  Tevfik Bultan,et al.  Eliminating synchronization faults in air traffic control software via design for verification with concurrency controllers , 2007, Automated Software Engineering.

[20]  Mahesh Viswanathan,et al.  Learning to verify branching time properties , 2007, Formal Methods Syst. Des..

[21]  Xiang Fu,et al.  Verification of Vortex Workflows , 2001, TACAS.

[22]  Giorgio Delzanno Automatic Verification of Parameterized Cache Coherence Protocols , 2000, CAV.

[23]  Giorgio Delzanno,et al.  Constraint-Based Verification of Parameterized Cache Coherence Protocols , 2003, Formal Methods Syst. Des..

[24]  Alain Finkel,et al.  FASTer Acceleration of Counter Automata in Practice , 2004, TACAS.

[25]  Tevfik Bultan,et al.  Action Language: a specification language for model checking reactive systems , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[26]  Michael R. Lowry,et al.  Software Construction and Analysis Tools for Future Space Missions , 2013, TACAS.

[27]  Richard Gerber,et al.  Composite model-checking: verification with type-specific symbolic representations , 1999, TSEM.

[28]  Tevfik Bultan,et al.  Applying infinite state model checking and other analysis techniques to tabular requirements specifications of safety-critical systems , 2008, Des. Autom. Embed. Syst..

[29]  Marco Pistore,et al.  Nusmv version 2: an opensource tool for symbolic model checking , 2002, CAV 2002.

[30]  Thomas A. Henzinger,et al.  HYTECH: a model checker for hybrid systems , 1997, International Journal on Software Tools for Technology Transfer.

[31]  Chao Wang,et al.  Mixed symbolic representations for model checking software programs , 2006, Fourth ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2006. MEMOCODE '06. Proceedings..

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

[33]  Tobias Schüle,et al.  Bounded model checking of infinite state systems , 2007, Formal Methods Syst. Des..

[34]  Caoyuan Zhong Modeling of Airport Operations Using an Object-Oriented Approach , 1997 .

[35]  Helmut Veith,et al.  Tree-like counterexamples in model checking , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[36]  Tevfik Bultan,et al.  A symbolic manipulator for automated verification of reactive systems with heterogeneous data types , 2003, International Journal on Software Tools for Technology Transfer.