Implementing a Model Checker for LEGO

Interactive theorem proving provides a general approach to modelling and verification of both hardware and software systems but requires significant human efforts to deal with many tedious proofs. To be effectively used in practice, we need some automatic tools such as model checkers to deal with those tedious proofs. In this paper, we formalise a verification system of both CCS and an imperative language in the proof development system LEGO which can be used to verify both finite and infinite problems. Then a model checker, LegoMC, is implemented to generate LEGO proof terms for finite-state problems automatically. Therefore people can use LEGO to verify a general problem with some of its finite sub-problems verified by LegoMC. On the other hand, this integration extends the power of model checking to verify more complicated and infinite models as well.

[1]  Jeffrey J. Joyce,et al.  Linking BDD-Based Symbolic Evaluation to Interactive Theorem-Proving , 1993, 30th ACM/IEEE Design Automation Conference.

[2]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[3]  Robert P. Kurshan,et al.  A structural induction theorem for processes , 1989, PODC.

[4]  Colin Stirling,et al.  Local Model Checking for Infinite State Spaces , 1992, Theor. Comput. Sci..

[5]  Chin-Laung Lei,et al.  Efficient Model Checking in Fragments of the Propositional Mu-Calculus (Extended Abstract) , 1986, LICS.

[6]  Pierre Wolper,et al.  Verifying Properties of Large Sets of Processes with Network Invariants , 1990, Automatic Verification Methods for Finite State Systems.

[7]  Leslie Lamport,et al.  Verification of a Multiplier: 64 Bits and Beyond , 1993, CAV.

[8]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[9]  Zhaohui Luo,et al.  Computation and reasoning - a type theory for computer science , 1994, International series of monographs on computer science.

[10]  Leslie Lamport,et al.  Mechanical Verification of Concurrent Systems with TLA , 1992, Larch.

[11]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[12]  Randy B. Pollack,et al.  Incremental Changes in LEGO , 1994 .

[13]  Paul Pettersson,et al.  Tools and Algorithms for the Construction and Analysis of Systems: 28th International Conference, TACAS 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2–7, 2022, Proceedings, Part II , 1998, TACAS.

[14]  F. Honsell,et al.  A Framework for De ning LogicsRobert Harper , 1987 .

[15]  Tobias Nipkow,et al.  Combining Model Checking and Deduction for I/O-Automata , 1995, TACAS.

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

[17]  Stephen J. Garland,et al.  PVS: A Prototype . . . , 1992 .

[18]  Gordon D. Plotkin,et al.  Proceedings of the Second International Conference on Typed Lambda Calculi and Applications , 1995 .

[19]  Robert P. Kurshan,et al.  Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach , 2014 .

[20]  Edmund M. Clarke,et al.  Another Look at LTL Model Checking , 1994, Formal Methods Syst. Des..

[21]  Glynn Winskel,et al.  A Note on Model Checking the Modal nu-Calculus , 1991, Theor. Comput. Sci..

[22]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[23]  Natarajan Shankar,et al.  An Integration of Model Checking with Automated Proof Checking , 1995, CAV.

[24]  Robert Pollack,et al.  A Verified Typechecker , 1995, TLCA.

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

[26]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.