An Introduction to Practical Formal Methods Using Temporal Logic 1st Edition Michael Fisher pdf download
An Introduction to Practical Formal Methods Using Temporal Logic 1st Edition Michael Fisher pdf download
https://ebookultra.com/download/an-introduction-to-practical-
formal-methods-using-temporal-logic-1st-edition-michael-fisher/
https://ebookultra.com/download/an-introduction-to-formal-languages-
and-automata-7th-edition-peter-linz/
https://ebookultra.com/download/statistics-2nd-edition-an-
introduction-using-r-michael-j-crawley/
https://ebookultra.com/download/spatial-temporal-information-systems-
an-ontological-approach-using-stk-1st-edition-linda-m-mcneil/
https://ebookultra.com/download/logic-as-a-tool-a-guide-to-formal-
logical-reasoning-1st-edition-valentin-goranko/
Using Talk to Support Writing First Edition Ros Fisher
https://ebookultra.com/download/using-talk-to-support-writing-first-
edition-ros-fisher/
https://ebookultra.com/download/an-introduction-to-non-classical-
logic-from-if-to-is-second-edition-graham-priest/
https://ebookultra.com/download/introduction-to-finite-and-spectral-
element-methods-using-matlab-second-edition-pozrikidis/
https://ebookultra.com/download/functional-mri-an-introduction-to-
methods-1st-edition-peter-jezzard/
https://ebookultra.com/download/on-the-philosophy-of-logic-1st-
edition-jennifer-fisher/
An Introduction to Practical Formal Methods Using
Temporal Logic 1st Edition Michael Fisher Digital
Instant Download
Author(s): Michael Fisher
ISBN(s): 9780470027882, 0470027886
Edition: 1
File Details: PDF, 2.14 MB
Year: 2011
Language: english
An Introduction to Practical Formal
Methods using Temporal Logic
An Introduction to Practical Formal Methods Using Temporal Logic, First Edition. Michael Fisher.
© 2011 John Wiley & Sons, Ltd. Published 2011 by John Wiley & Sons, Ltd. ISBN: 978-0-470-02788-2
An Introduction to Practical Formal
Methods using Temporal Logic
Michael Fisher
Department of Computer Science,
University of Liverpool, UK
For details of our global editorial offices, for customer services and for information about how to apply for permission
to reuse the copyright material in this book please see our website at www.wiley.com.
The right of the author to be identified as the author of this work has been asserted in accordance with the Copyright,
Designs and Patents Act 1988.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any
form or by any means, electronic, mechanical, photocopying, recording or otherwise, except as permitted by the UK
Copyright, Designs and Patents Act 1988, without the prior permission of the publisher.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available
in electronic books.
Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and
product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective
owners. The publisher is not associated with any product or vendor mentioned in this book. This publication is designed
to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding
that the publisher is not engaged in rendering professional services. If professional advice or other expert assistance is
required, the services of a competent professional should be sought.
Library of Congress Cataloging-in-Publication Data
Fisher, Michael, 1962 –
An introduction to practical formal methods using temporal logic / Michael Fisher.
p. cm.
Includes bibliographical references and index.
ISBN 978-0-470-02788-2 (cloth)
1. Temporal automata. 2. Logic, Symbolic and mathematical. I. Title.
QA267.5.T45F57 2011
511.3 – dc22
2010046372
A catalogue record for this book is available from the British Library.
Print ISBN: 978-0-470-02788-2
e-Pdf ISBN: 978-0-470-98011-8
o-Book ISBN: 978-0-470-98010-1
e-Pub ISBN: 978-1-119-99146-5
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
vi CONTENTS
6 Execution 185
6.1 From specifications to programs 185
6.2 MetateM: executing temporal formulae 188
6.3 The Concurrent MetateM system 211
6.4 Advanced topics 233
8 Summary 267
References 321
Index 349
Preface
I look to the future because that’s where I’m going to spend the rest of my life.
– George Burns
In this book, I have tried to introduce temporal logics and then show why they might be
useful in system specification, verification and development. That I can even attempt this
is due to the work of very many outstanding researchers who have tackled this area over
the last 30 years. I am enormously indebted to these people for their research on defining,
refining and expanding this subject and so making my task here at least possible. (For
an indication of who at least some of the key researchers are, just look at the References
section at the end of this book.) Never has the motto ‘standing on the shoulders of giants’
seemed more appropriate.
As well as reading, and hearing, about the work of such experts, I have been very
fortunate to have collaborated directly with quite a few of them. Though I cannot list
everyone I have worked with (the references will again identify some of them), I would
like to thank all of them for helping me to understand the area a little better. I have
always learnt a great deal from all of them, and value their continued collaboration.
Finally, I would like to thank those who have provided detailed comments on earlier
drafts of this book. Their advice and suggestions have been invaluable: Rafael Bordini;
Stéphane Demri; Jürgen Dix; Clare Dixon; Valentin Goranko; Anthony Hepple; Koen
Hindriks; Gerard Holzmann; Alexei Lisitsa; Alessio Lomuscio; Michel Ludwig; Stephan
Merz; Mark Ryan; Sven Schewe; and Mike Wooldridge. Thanks to all of you for recog-
nizing my misunderstandings, highlighting my omissions and correcting my mistakes.
This book is dedicated to Joan, for making it all possible, and to Sue, Christopher
and James, for making it all worthwhile.
For more examples and resources used in this book, please visit my website at
http://www.csc.liv.ac.uk/∼michael/TLBook.
Michael Fisher
Liverpool, 2010.
1
Introduction
Time is an illusion, lunchtime doubly so.
– Douglas Adams
Time plays a central role in our lives. In describing the world, or our activities within
it, we naturally invoke temporal descriptions. Some of these are explicit, such as ‘next
week’ or ‘in 5 minutes’, while others implicitly acknowledge the passing of time, for
example ‘during’, ‘did’ or ‘will do’. Not surprisingly, it is also important to be able
to describe temporal aspects within the world of Computer Science: computations nat-
urally proceed through time, and so have a history of activity; computational processes
take time to act; some processes must finish before others can start; and so on. Con-
sequently, being able to understand, and reason about, temporal concepts is central to
Computer Science.
In this book, we will explain how some of these temporal notions can be described
and manipulated. This, in turn, will allow us to carry out a temporal analysis of certain
aspects of computation. To be precise in our temporal descriptions, we will use formal
logic. These not only provide a concise and unambiguous basis for our descriptions, but
are supported by many well-developed tools, techniques and results that we can take
advantage of.
This book will provide an introduction to work concerned with formal logic for
capturing temporal notions, called temporal logic, together with some of its applications
in the formal development and analysis of computational systems. The name ‘temporal
logic’ may sound complex and daunting. Indeed, the subject can sometimes be difficult
because it essentially aims to capture the notion of time in a logical framework. However,
while describing potentially complex scenarios, temporal logic is often based on a few
simple, and fundamental, concepts. We aim to highlight these in this book.
An Introduction to Practical Formal Methods Using Temporal Logic, First Edition. Michael Fisher.
© 2011 John Wiley & Sons, Ltd. Published 2011 by John Wiley & Sons, Ltd. ISBN: 978-0-470-02788-2
2 INTRODUCTION
• provide the reader with some of the background to the development and use of
temporal logic;
• introduce the foundations (both informal and formal) of a simple temporal logic; and
• describe techniques and tools based on temporal logic and apply them to sample
applications.
This book is not deeply technical. It simply aims to provide sufficient introduction to a
number of areas surrounding temporal logic to enable either further, in-depth, study or
the use of some of the tools described. Consequently, we would expect the readership
to consist of those studying Computer Science, Information Systems or Artificial Intelli-
gence at either undergraduate or postgraduate level, or software professionals who wish
to expand their knowledge in this area. Since this is an introductory text, we aim to
provide references to additional papers, books and online resources that can be used for
further, and deeper, study. There are also several excellent, more advanced, textbooks and
monographs that provide much greater technical detail concerning some of the aspects
we cover, notably [34, 50, 122, 224, 299, 327, 339, 363, 364].
While there are very few proofs in this book, some of the elements are quite complex.
In order to support the reader in understanding these aspects, we have often provided both
exercises and pointers to further study in each chapter. We have interspersed exercises
throughout the text, and sometimes provide a further selection of exercises at the end of
each chapter, with answers in Appendix B. In addition, further resources can be found
on the Web pages associated with this book:
http://www.csc.liv.ac.uk/∼michael/TLBook
This URL provides links not only to additional material related to the book, but also
contains pointers to a range of systems that are, at least in part, based on temporal logic.
WHY TEMPORAL LOGIC? 3
In other words, each component in a system receives some input, carries out some oper-
ation (typically on data structures), and terminates having produced some output. The
4 INTRODUCTION
Formal Methods that have been developed for such systems describe the data structures
and the behaviour of operations (via pre- and post-conditions) on these structures. Spec-
ification notations particularly relevant to this type of system were developed in the late
1960s and came to prominence in the 1970s. Typical examples include Floyd-Hoare
Logics [214, 274, 418], weakest precondition semantics [146], VDM [304], Z [135], and
(more recently) B [7, 340, 446], as well as the functional programming metaphor.
While the use of Formal Methods for transformational systems has been very effective
in many areas, it became clear in the 1970s that an increasing number of systems could
not easily be categorized as ‘transformational’. Typically, this was because the compo-
nents were either non-terminating, continuously reading input (not just at the beginning
of computation), continuously producing output (not just at the end), or regularly inter-
acting with other concurrent or distributed components. These have been termed reactive
systems [260] and can be visualized in a more complex way, for example:
Request Sensor
Report
REACTIVE Request
COMPONENT
Update
Trigger
Test
Request
This diagram highlights the fact that multiple inputs can be received, and multiple outputs
can be generated, by reactive systems. Such systems are typically interacting, evolving,
non-terminating systems.
Formal Methods for reactive systems often require more sophisticated techniques than
the pre- and post-conditions provided in notations such as VDM or Z. In particular, in
the late 1970s, temporal logic was applied to the specification of reactive systems, with
this approach coming to prominence in the 1980s [363, 414]. It is widely recognized that
reactive systems [260], as described above, represent one of the most important classes
of systems in Computer Science and, although the analysis of such systems is difficult,
it has been successfully tackled using temporal representations [168, 411, 460], where
a number of useful concepts, such as safety, liveness and fairness properties can be
formally, and concisely, specified [363]. Such a logical representation of a system then
permits the analysis of the system’s properties via logical methods, such as logical proof .
A specific proof method for deciding whether a temporal formula is true or false is one
of the aspects that we will examine later in this book.
provides some of the formal foundations of temporal logic, and many of the techniques
used in temporal logic are derived from their modal counterparts. In addition to the
operators of classical logic, temporal logic often contains operators such as ‘ ’, meaning
in the next moment in time, ‘ ’, meaning at every future moment, and ‘♦’, meaning at
some future moment. These additional operators allow us to construct formulae such as
(try_to_print ⇒ ♦¬try_to_print )
meant to characterize
and
(printed ⇒ ¬try_to_print )
meaning
“whenever the document has been printed, the system will never try to print
it (ever again)”.
try_to_print
we should be able to show that, eventually, it will stop trying to print the document.
Specifically, the statement
♦ ¬try_to_print
can be inferred from the above formulae. We will see later how to establish automatically
that this is, indeed, the case.
Although there are many different temporal logics [168, 196, 279], we will mainly
concentrate on one very popular variety that is:
• propositional , with no explicit first-order quantification;
• discrete, with the underlying model of time being isomorphic to the Natural Num-
bers (i.e. an infinite, discrete sequence with distinguished initial point); and
• linear, with each moment in time having at most one successor.
6 INTRODUCTION
Note that the infinite and linear constraints ensure that each moment in time has exactly
one successor, hence the use of just one form of ‘ ’ operator. If we allow several
immediate successors, then we typically require other operators. (More details concerning
such logics will be provided in Chapter 2.)
Temporal logic
To begin with we will only describe a simple propositional, discrete, temporal logic.
However, much of the temporal framework we develop below is applicable to other
variants of temporal logic we will see later.
An Introduction to Practical Formal Methods Using Temporal Logic, First Edition. Michael Fisher.
© 2011 John Wiley & Sons, Ltd. Published 2011 by John Wiley & Sons, Ltd. ISBN: 978-0-470-02788-2
Random documents with unrelated
content Scribd suggests to you:
kymmenen prosenttia esittämääni tarkoitukseeni, en tietenkään
välillisesti eikä välittömästi omaksi hyväkseni. Suostutteko?"
He palasivat hotelliin.
17.
Sanomalehtimies koputti.
"Saanut? Keneltä?"
Updated editions will replace the previous one—the old editions will
be renamed.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
ebookultra.com