This textbook guides students through algebraic specification and
verification of distributed systems, and some of the most prominent
formal verification techniques. The author employs µCRL as the vehicle,
a language developed to combine process algebra and abstract data types.
The book evolved from introductory courses on protocol verification
taught to undergraduate and graduate students of computer science, and
the text is supported throughout with examples and exercises. Full
solutions are provided in an appendix, while exercise sheets, lab
exercises, example specifications and lecturer slides are available on
the author's website.