This presentation of the theory and practice of model checking includes basic as well as state-of-the-art techniques, algorithms and tools, and can be used as an introduction to the subject or a reference for researchers.
Principles of Model Checking
Our growing dependence on increasingly complex computer and software systems necessitates the development of formalisms, techniques, and tools for assessing functional properties of these systems. One such technique that has emerged in the last twenty years is model checking, which systematically (and automatically) checks whether a model of a given system satisfies a desired property such as deadlock freedom, invariants, and request-response properties. This automated technique for verification and debugging has developed into a mature and widely used approach with many applications. Principles of Model Checking offers a comprehensive introduction to model checking that is not only a text suitable for classroom use but also a valuable reference for researchers and practitioners in the field.The book begins with the basic principles for modeling concurrent and communicating systems, introduces different classes of properties (including safety and liveness), presents the notion of fairness, and provides automata-based algorithms for these properties. It introduces the temporal logics LTL and CTL, compares them, and covers algorithms for verifying these logics, discussing real-time systems as well as systems subject to random phenomena. Separate chapters treat such efficiency-improving techniques as abstraction and symbolic manipulation. The book includes an extensive set of examples (most of which run through several chapters) and a complete set of basic results accompanied by detailed proofs. Each chapter concludes with a summary, bibliographic notes, and an extensive list of exercises of both practical and theoretical nature.
Model Checking Software
The SPIN workshop series brings together researchers and practitioners int- ested in explicit state model checking technology as it is applied to the veri?- tion of software systems. Since 1995, when the SPIN workshop series was instigated, SPIN workshops have been held on an annual basis at Montr ́ eal (1995), New Brunswick (1996), Enschede (1997), Paris (1998), Trento (1999), Toulouse (1999), Stanford (2000), andToronto(2001). Whilethe?rstSPINworkshopwasastand-aloneevent,later workshopshavebeenorganizedasmoreorlesscloselya?liatedeventswithlarger conferences, in particular with CAV (1996), TACAS (1997), FORTE/PSTV (1998), FLOC (1999), World Congress on Formal Methods (1999), FMOODS (2000), and ICSE (2001). This year, SPIN 2002 was held as a satellite event of ETAPS 2002, the European Joint Conferences on Theory and Practice of Software. The co-location of SPIN workshops with conferences has proven to be very successful and has helped to disseminate SPIN model checking technology to wider audiences. Since 1999, the proceedings of the SPIN workshops have appeared in Springer-Verlag’s “Lecture Notes in Computer Science” series. The history of successful SPIN workshops is evidence for the maturing of model checking technology, not only in the hardware domain, but increasingly also in the software area. While in earlier years algorithms and tool development 1 around the SPIN model checker were the focus of this workshop series, the scopehasrecentlywidenedtoincludemoregeneralapproachestosoftwaremodel checking. Current research in this area concentrates not so much on completely verifyingsystemmodels,butratheronanalyzingsourcecodeinordertodiscover software faults.
Model Checking Software
This book constitutes the refereed proceedings of the 8th International SPIN Workshop held in Toronto, Canada, in May 2001. The SPIN model checker is one of the most powerful and popular systems for the analysis and verification of distributed and concurrent systems. The 13 revised full papers presented together with one invited survey paper and three invited industrial experience reports were carefully reviewed and selected from 26 submissions. Besides foundational issues of program analysis and formal verification, the papers focus on tools for model checking and practical applications in a variety of fields.
Symbolic Model Checking
Formal verification means having a mathematical model of a system, a language for specifying desired properties of the system in a concise, comprehensible and unambiguous way, and a method of proof to verify that the specified properties are satisfied. When the method of proof is carried out substantially by machine, we speak of automatic verification. Symbolic Model Checking deals with methods of automatic verification as applied to computer hardware. The practical motivation for study in this area is the high and increasing cost of correcting design errors in VLSI technologies. There is a growing demand for design methodologies that can yield correct designs on the first fabrication run. Moreover, design errors that are discovered before fabrication can also be quite costly, in terms of engineering effort required to correct the error, and the resulting impact on development schedules. Aside from pure cost considerations, there is also a need on the theoretical side to provide a sound mathematical basis for the design of computer systems, especially in areas that have received little theoretical attention.
Systems and Software Verification
Model checking is a powerful approach for the formal verification of software. It automatically provides complete proofs of correctness, or explains, via counter-examples, why a system is not correct. Here, the author provides a well written and basic introduction to the new technique. The first part describes in simple terms the theoretical basis of model checking: transition systems as a formal model of systems, temporal logic as a formal language for behavioral properties, and model-checking algorithms. The second part explains how to write rich and structured temporal logic specifications in practice, while the third part surveys some of the major model checkers available.
Model Checking and Artificial Intelligence
This book presents revised versions of selected papers from the 6th Workshop on Model Checking and Artificial Intelligence, MoChArt 2010, held in Atlanta, GA, USA in July 2010, as well as papers contributed subsequent to the workshop. The 7 papers presented were carefully reviewed and selected for inclusion in this book. In addition, the book also contains an extended abstract of the invited talk held at the workshop. The topics covered by these papers are general search algorithms, application of AI techniques to automated program verification, multiagent systems and epistemic logic, abstraction, epistemic model checking, and theory of model checking.
Model Checking Software
This book constitutes the refereed proceedings of the 16th International SPIN workshop on Model Checking Software, SPIN 2009, held in Grenoble, France, in June 2009. The 15 revised full papers presented together with 3 tool papers and 4 invited talks were carefully reviewed and selected from 41 submissions. The papers cover theoretical and algorithmic foundations as well as tools for software model checking by addressing theoretical advances and empirical evaluations related to state-space and path exploration techniques, as implemented in software verification tools.
Abstraction Refinement for Large Scale Model Checking
This book summarizes recent research on abstraction techniques for model checking large digital system. Considering the size of today's digital systems and the capacity of state-of-the-art verification algorithms, abstraction is the only viable solution for the successful application of model checking techniques to industrial-scale designs. The suite of algorithms presented here represents significant improvement over prior art; some have already been adopted by the EDA companies in their commercial/in-house verification tools.
Model Checking Software
This book constitutes the refereed proceedings of the 11th International SPIN workshop on Model Checking Software, SPIN 2004, held in Barcelona, Spain, in April 2004. The 19 revised full papers presented together with the abstracts of an invited talk and 2 tutorials were carefully reviewed and selected from 48 submissions. The papers are organized in topical sections on heuristics and probabilities, improvements of SPIN, validation of timed systems, tool presentations, abstraction and symbolic methods, and applications.