Logic in Computer Science: Modelling and Reasoning about Systems
In recent years, powerful tools for verifying hardware and software systems have been developed. Major companies, such as Intel, Siemens, BT, AT&T, and IBM have increasingly become interested in that technology. Students need a basic formal training that allows them to gain sufficient proficiency in using logic-based verification methods. This book addresses these needs by providing a sound basis in logic and an introduction to the logical frameworks used in modeling, specifying and verifying computer systems. Coverage provides a simple and clear presentation, detailing propositional and predicate logic as well as some specialized logics used for reasoning about the correctness of computer systems. The authors introduce a carefully chosen core of essential terminology; further technicalities are introduced only where they are required by the applications. Numerous examples are given, as well as a full exposition of a fast-growing technique for modeling and verifying computer systems, known as symbolic model checking. It will be an ideal introduction for undergraduate students. A worldwide web tutorial that supports the course activities and provides solutions to the sample exercises is available to instructors.