Build your own model checker in one month

Model checking has established as an effective method for automatic system analysis and verification. It is making its way into many domains and methodologies. Applying model checking techniques to a new domain (which probably has its own dedicated modeling language) is, however, far from trivial. Translation-based approach works by translating domain specific languages into input languages of a model checker. Because the model checker is not designed for the domain (or equivalently, the language), translation-based approach is often ad hoc. Ideally, it is desirable to have an optimized model checker for each application domain. Implementing one with reasonable efficiency, however, requires years of dedicated efforts. In this tutorial, we will briefly survey a variety of model checking techniques. Then we will show how to develop a model checker for a language combining real-time and probabilistic features using the PAT (Process Analysis Toolkit) step-by-step, and show that it could take as short as a few weeks to develop your own model checker with reasonable efficiency. The PAT system is designed to facilitate development of customized model checkers. It has an extensible and modularized architecture to support new languages (and their operational semantics), new state reduction or abstraction techniques, new model checking algorithms, etc. Since its introduction 5 years ago, PAT has attracted more than 2500 registered users (from 500+ organisations in 60 countries) and has been applied to develop model checkers for 20 different languages.

[1]  Jun Sun,et al.  An analyzer for extended compositional process algebras , 2008, ICSE Companion '08.

[2]  Jun Sun,et al.  Scalable Multi-core Model Checking Fairness Enhanced Systems , 2009, ICFEM.

[3]  Yanhong A. Liu,et al.  Model Checking Linearizability via Refinement , 2009, FM.

[4]  Jun Sun,et al.  Specifying and Verifying Event-Based Fairness Enhanced Systems , 2008, ICFEM.

[5]  Jun Sun,et al.  Bounded Model Checking of Compositional Processes , 2008, 2008 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering.

[6]  Jun Sun,et al.  Developing Model Checkers Using PAT , 2010, ATVA.

[7]  Jun Sun,et al.  PRTS: An Approach for Model Checking Probabilistic Real-Time Hierarchical Systems , 2011, ICFEM.

[8]  Jun Sun,et al.  Demo: Towards bug-free implementation for wireless sensor networks , 2011, SenSys.

[9]  Jun Sun,et al.  Fair Model Checking with Process Counter Abstraction , 2009, FM.

[10]  Jun Sun,et al.  Symbolic Model-Checking of Stateful Timed CSP Using BDD and Digitization , 2012, ICFEM.

[11]  Jun Sun,et al.  More Anti-chain Based Refinement Checking , 2012, ICFEM.

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

[13]  Jun Sun,et al.  Formal modeling and validation of Stateflow diagrams , 2012, International Journal on Software Tools for Technology Transfer.

[14]  Jun Sun,et al.  Improved BDD-Based Discrete Analysis of Timed Systems , 2012, FM.

[15]  Jun Sun,et al.  AUTHSCAN: Automatic Extraction of Web Authentication Protocols from Implementations , 2013, NDSS.

[16]  Jun Sun,et al.  Integrating Specification and Programs for System Modeling and Verification , 2009, 2009 Third IEEE International Symposium on Theoretical Aspects of Software Engineering.

[17]  Ling Shi,et al.  Modeling and verifying hierarchical real-time systems using stateful timed CSP , 2013, TSEM.

[18]  Jun Sun,et al.  PAT: Towards Flexible Verification under Fairness , 2009, CAV.

[19]  Jun Sun,et al.  PAT 3: An Extensible Architecture for Building Multi-domain Model Checkers , 2011, 2011 IEEE 22nd International Symposium on Software Reliability Engineering.

[20]  Jun Sun,et al.  Model Checking CSP Revisited: Introducing a Process Analysis Toolkit , 2008, ISoLA.

[21]  Jun Sun,et al.  A model checking framework for hierarchical systems , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[22]  Wang Yi,et al.  Uppaal in a nutshell , 1997, International Journal on Software Tools for Technology Transfer.