Recent years have seen the development of powerful tools for verifying hardware and software systems, and increasing interest in that technology from major companies. Students need a basic formal training which 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 modelling, specifying and verifying computer systems. It provides a simple and clear presentation, covering propositional and predicate logic, and some specialised 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 when necessary. Numerous examples are given, as well as a full exposition of a fast-growing technique for modelling and verifying computer systems, known as symbolic model checking. Numerous examples are given, and web support is available from http:www.cs.bham.ac.uk/research/lics.