PAT 3: An Extensible Architecture for Building Multi-domain Model Checkers

Model checking is emerging as an effective software verification method. Although it is desirable to have a dedicated model checker for each application domain, implementing one is rather challenging. In this work, we develop an extensible and integrated architecture in PAT3 (PAT version 3.*) to support the development of model checkers for wide range application domains. PAT3 adopts a layered design with an intermediate representation layer (IRL), which separates modeling languages from model checking algorithms so that the algorithms can be shared by different languages. IRL contains several common semantic models to support wide application domains, and builds both explicit model checking and symbolic model checking under one roof. PAT3 architecture provides extensibility in many possible aspects: modeling languages, model checking algorithms, reduction techniques and even IRLs. Various model checkers have been developed under this new architecture in recent months. This paper discusses the structure and extensibility of this new architecture.

[1]  Andrew Hinton,et al.  PRISM: A Tool for Automatic Verification of Probabilistic Systems , 2006, TACAS.

[2]  Joost-Pieter Katoen,et al.  The Ins and Outs of the Probabilistic Model Checker MRMC , 2009, 2009 Sixth International Conference on the Quantitative Evaluation of Systems.

[3]  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.

[4]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[5]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[6]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[7]  Klaus Havelund,et al.  Model checking programs , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[8]  Amir Pnueli,et al.  Jtlv: A Framework for Developing Verification Algorithms , 2010, CAV.

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

[10]  Edmund M. Clarke,et al.  Symbolic Model Checking: 10^20 States and Beyond , 1990, Inf. Comput..

[11]  Armin Biere,et al.  Bounded Model Checking Using Satisfiability Solving , 2001, Formal Methods Syst. Des..

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

[13]  A. Prasad Sistla,et al.  Safety, liveness and fairness in temporal logic , 1994, Formal Aspects of Computing.

[14]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

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

[16]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

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

[18]  Andrew William Roscoe,et al.  The Theory and Practice of Concurrency , 1997 .

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

[20]  Bowen Alpern,et al.  Recognizing safety and liveness , 2005, Distributed Computing.

[21]  Stavros Tripakis,et al.  Kronos: A Model-Checking Tool for Real-Time Systems , 1998, CAV.

[22]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[23]  Amir Pnueli,et al.  Liveness with (0, 1, infty)-Counter Abstraction , 2002, CAV.

[24]  Jeff Magee,et al.  Concurrency - state models and Java programs , 2006 .

[25]  Jun Sun,et al.  Verification of Population Ring Protocols in PAT , 2009, 2009 Third IEEE International Symposium on Theoretical Aspects of Software Engineering.

[26]  Armin Biere,et al.  Verifiying Safety Properties of a Power PC Microprocessor Using Symbolic Model Checking without BDDs , 1999, CAV.

[27]  Arend Rensink,et al.  An Object-Oriented Framework for Explicit-State Model Checking , 2007 .

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

[29]  M. A. Kattenbelt,et al.  Towards an explicit-state model checkingframework , 2006 .

[30]  Carlos Gershenson,et al.  Information and Computation , 2013, Handbook of Human Computation.

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

[32]  Wang Yi,et al.  UPPAAL 4.0 , 2006, Third International Conference on the Quantitative Evaluation of Systems - (QEST'06).

[33]  Matthew B. Dwyer,et al.  Building Your Own Software Model Checker Using the Bogor Extensible Model Checking Framework , 2005, CAV.

[34]  Javier Esparza,et al.  The Model-Checking Kit , 2003, ICATPN.