The name ’temporal logic’ may sound complex and daunting; but while
they describe potentially complex scenarios, temporal logics are
often based on a few simple, and fundamental, concepts –
highlighted in this book. An Introduction to Practical Formal
Methods Using Temporal Logic provides an introduction to formal
methods based on temporal logic, for developing and testing complex
computational systems. These methods are supported by many
well-developed tools, techniques and results that can be applied to
a wide range of systems.
Fisher begins with a full introduction to the subject, covering
the basics of temporal logic and using a variety of examples,
exercises and pointers to more advanced work to help clarify and
illustrate the topics discussed. He goes on to describe how this
logic can be used to specify a variety of computational systems,
looking at issues of linking specifications, concurrency,
communication and composition ability. He then analyses temporal
specification techniques such as deductive verification,
algorithmic verification, and direct execution to develop and
verify computational systems. The final chapter on case studies
analyses the potential problems that can occur in a range of
engineering applications in the areas of robotics, railway
signalling, hardware design, ubiquitous computing, intelligent
agents, and information security, and explains how temporal logic
can improve their accuracy and reliability.
* Models temporal notions and uses them to analyze computational
systems
* Provides a broad approach to temporal logic across many formal
methods – including specification, verification and
implementation
* Introduces and explains freely available tools based on
temporal logics and shows how these can be applied
* Presents exercises and pointers to further study in each
chapter, as well as an accompanying website providing links to
additional systems based upon temporal logic as well as additional
material related to the book.
Inhoudsopgave
Preface vii
1 Introduction 1
1.1 Aims of the book 2
1.2 Why temporal logic? 3
1.3 What is temporal logic? 4
1.4 Structure of the book 6
2 Temporal logic 9
2.1 Intuition 10
2.2 Syntactic aspects 12
2.3 Semantics 14
2.4 Reactive system properties 22
2.5 What is temporal logic? 25
2.6 Normal form 28
2.7 Büchi automata and temporal logic 29
2.8 Advanced topics 37
2.9 Final exercises 47
3 Specification 49
3.1 Describing simple behaviours 49
3.2 A semantics of imperative programs 53
3.3 Linking specifications 60
3.4 Advanced topics 74
3.5 Final exercises 82
3.6 Where to next? 83
4 Deduction 85
4.1 Temporal proof 85
4.2 Clausal temporal resolution 87
4.3 The TSPASS system 108
4.4 Advanced topics 122
4.5 Final exercises 127
5 Model checking 129
5.1 Algorithmic verification 129
5.2 Automata-theoretic model checking 135
5.3 The Spin system 143
5.4 Advanced topics 171
5.5 Final exercises 181
6 Execution 185
6.1 From specifications to programs 185
6.2 Metate M: executing temporal formulae 188
6.3 The Concurrent Metate M system 211
6.4 Advanced topics 233
7 Selected applications 243
7.1 Model checking programs 243
7.2 Security protocol analysis 246
7.3 Recognizing temporal patterns 251
7.4 Parameterized systems 255
7.5 Reasoning with intervals 260
7.6 Planning 264
8 Summary 267
A Review of classical logic 269
A.1 Introduction 269
A.2 Propositional logic 271
A.3 Normal forms 276
A.4 Propositional resolution 279
A.5 Horn clauses 286
A.6 First-order logic 288
B Solutions to exercises 307
References 321
Index 349
Over de auteur
Michael Fisher, Department of Computer Science, University of Liverpool, Liverpool
Michael Fisher is currently Professor of Computer Science at the University of Liverpool. He also heads the Logic and Computation research group and is Director of the Liverpool Verification Laboratory. Having been an active member of the research community for over 20 years, Professor Fisher is internationally recognised for his research into logic and computer science, particularly temporal verification, automated reasoning, high-level programming languages and formal methods for multi-agent systems. This has also led him to be programme chair of the International Symposium on Temporal Representation and Reasoning in 2004, and a member of the steering committee for this event. He has co-edited several books, including Advances in Temporal Logic (Kluwer, 2000), Foundations and Applications of Multi-Agent Systems (Springer-Verlag, 2002), Temporal Representation and Reasoning (IEEE Computer Society Press, 2002) and Handbook of Temporal Reasoning in Artificial Intelligence (Elsevier, 2005).