This textbook aims to help the reader develop an in-depth understanding
of logical reasoning and gain knowledge of the theory of computation.
The book combines theoretical teaching and practical exercises; the
latter is realised in Isabelle/HOL, a modern theorem prover, and PAT, an
industry-scale model checker. I also give entry-level tutorials on the
two software to help the reader get started. By the end of the book, the
reader should be proficient in both software. Content-wise, this book
focuses on the syntax, semantics and proof theory of various logics;
automata theory, formal languages, computability and complexity. The
final chapter closes the gap with a discussion on the insight that links
logic with computation. This book is written for a high-level
undergraduate course or a Master's course. The hybrid skill set of
practical theorem proving and model checking should be helpful for the
future of readers should they pursue a research career or engineering in
formal methods.