An expanded and updated edition of a comprehensive presentation of the
theory and practice of model checking, a technology that automates the
analysis of complex systems.
Model checking is a verification technology that provides an algorithmic
means of determining whether an abstract model--representing, for
example, a hardware or software design--satisfies a formal specification
expressed as a temporal logic formula. If the specification is not
satisfied, the method identifies a counterexample execution that shows
the source of the problem. Today, many major hardware and software
companies use model checking in practice, for verification of VLSI
circuits, communication protocols, software device drivers, real-time
embedded systems, and security algorithms. This book offers a
comprehensive presentation of the theory and practice of model checking,
covering the foundations of the key algorithms in depth.
The field of model checking has grown dramatically since the publication
of the first edition in 1999, and this second edition reflects the
advances in the field. Reorganized, expanded, and updated, the new
edition retains the focus on the foundations of temporal logic model
while offering new chapters that cover topics that did not exist in
1999: propositional satisfiability, SAT-based model checking,
counterexample-guided abstraction refinement, and software model
checking. The book serves as an introduction to the field suitable for
classroom use and as an essential guide for researchers.