Formal methods is the term used to describe the specification and verification of software and software systems using mathematical logic. Various methodologies have been developed and incorporated into software tools. An important subclass is distributed systems. There are many books that look at particular methodologies for such systems, e.g. CSP, process algebra. This book offers a more balanced introduction for graduate students that describes the various approaches, their strengths and weaknesses, and when they are best used. Milner's CCS and its operational semantics are introduced, together with notions of behavioural equivalence based on bisimulation techniques and with variants of Hennessy-Milner modal logics. Later in the book, the presented theories are extended to take timing issues into account. The book has arisen from various courses taught in Iceland and Denmark and is designed to give students a broad introduction to the area, with exercises throughout.
• Broad accessible introduction to the topic - the first book to cover all the different approaches • Based on taught courses, and containing case studies and many exercises, this book is ideal as a graduate text • Offers first presentation in book form of Hennessy-Milner logic with recursive definitions and its applications
Preface; Part I. A Classic Theory of Reactive Systems: 1. Introduction; 2. The language CCS; 3. Behavioural equivalences; 4. Theory of fixed points and bisimulation equivalence; 5. Hennessy-Milner logic; 6. Hennessy-Milner logic with recursive definitions; 7. Modelling and analysis of mutual exclusion algorithms; Part II. A Theory of Real-Time Systems: 8. Introduction; 9. CCS with time delays; 10. Timed automata; 11. Timed behavioural equivalences; 12. Hennessy-Milner logic with time; 13. Modelling and analysis of Fischer's algorithm; Appendix; Bibliography; Index.