Reactive systems are computing systems which are interactive, such as real-time systems, operating systems, concurrent systems, control systems, etc. They are among the most difficult computing systems to program. Temporal logic is a formal tool/language which yields excellent results in specifying reactive systems. This volume, the first of two, subtitled Specification, has a self-contained introduction to temporal logic and, more important, an introduction to the computational model for reactive programs, developed by Zohar Manna and Amir Pnueli of Stanford University and the Weizmann Institute of Science, Israel, respectively.
The cooperation test [Apt, Francez & de Roever] was originally conceived to capture the proof theoretical analogue of distributed message exchange between disjoint processes, as opposed to the interference freedom test [Owicki & Gries], being the proof theoretical analogue of concurrent communication by means of interference through jointly shared variables. Some authors ([Levin & Gries, Lamport & Schneider, Schlichting and Schneider]) stress that both forms of communication can be proof theoretically characterized using interference freedom only, since proofs for both ultimately amount to an invariance proof of a big global assertion [Ashcroft], invariance of whose parts amounts to interference freedom. Yet I feel that the characteristic nature of the cooperation test is still preserved in the analysis of these authors, because in their analysis of CSP the part dealing with interference freedom specializes to maintenance of a global invariant, the expression of which requires per process the introduction of auxiliary variables which are updated in that process only, thus preserving the concept of disjointness (as opposed to sharing), since now all variables from different processes are disjoint. The cooperation test has been applied to characterize concurrent communication as occurring in Hoare's Communicating Sequential Processes (CSP) [Hoare 2], Ichbiah's ADA [ARM], and Brinch Hansen's Distributed Processes (DP) [Brinch Hansen]. This characterization has been certified through soundness and completeness proofs [Apt 2, Gerth]. As in the interference freedom test this characterization consists of two stages, a local sequential stage and a global stage.
Concurrent systems abound in human experience but their fully adequate conceptualization as yet eludes our most able thinkers. The COSY (ConcurrentSystem) notation and theory was developed in the last decade as one of a number of mathematical approaches for conceptualizing and analyzing concurrent and reactive systems. The COSY approach extends theconventional notions of grammar and automaton from formal language and automata theory to collections of "synchronized" grammars and automata, permitting system specification and analysis of "true" concurrency without reduction to non-determinism. COSY theory is developed to a great level of detail and constitutes the first uniform and self-contained presentationof all results about COSY published in the past, as well as including many new results. COSY theory is used to analyze a sufficient number of typical problems involving concurrency, synchronization and scheduling, to allow the reader to apply the techniques presented tosimilar problems. The COSY model is also related to many alternative models of concurrency, particularly Petri Nets, Communicating Sequential Processes and the Calculus of Communicating Systems.
Intheworldweliveinconcurrencyisthenorm.Forexample,thehumanbody isamassivelyconcurrentsystem,comprisingahugenumberofcells,allsim- taneously evolving and independently engaging in their individual biological processing.Inaddition,inthebiologicalworld,trulysequentialsystemsrarely arise. However, they are more common when manmade artefacts are cons- ered. In particular, computer systems are often developed from a sequential perspective. Why is this? The simple reason is that it is easier for us to think about sequential, rather than concurrent, systems. Thus, we use sequentiality as a device to simplify the design process. However, the need for increasingly powerful, ?exible and usable computer systems mitigates against simplifying sequentiality assumptions. A good - ample of this is the all-powerful position held by the Internet, which is highly concurrent at many di?erent levels of decomposition. Thus, the modern c- puter scientist (and indeed the modern scientist in general) is forced to think aboutconcurrentsystemsandthesubtleandintricatebehaviourthatemerges from the interaction of simultaneously evolving components. Over a period of 25 years, or so, the ?eld of concurrency theory has been involved in the development of a set of mathematical techniques that can help system developers to think about and build concurrent systems. These theories are the subject matter of this book.
CSP notation has been used extensively for teaching and applying concurrency theory, ever since the publication of the text Communicating Sequential Processes by C.A.R. Hoare in 1985. Both a programming language and a specification language, the theory of CSP helps users to understand concurrent systems, and to decide whether a program meets its specification. As a member of the family of process algebras, the concepts of communication and interaction are presented in an algebraic style. An invaluable reference on the state of the art in CSP, Understanding Concurrent Systems also serves as a comprehensive introduction to the field, in addition to providing material for a number of more advanced courses. A first point of reference for anyone wanting to use CSP or learn about its theory, the book also introduces other views of concurrency, using CSP to model and explain these. The text is fully integrated with CSP-based tools such as FDR, and describes how to create new tools based on FDR. Most of the book relies on no theoretical background other than a basic knowledge of sets and sequences. Sophisticated mathematical arguments are avoided whenever possible. Topics and features: presents a comprehensive introduction to CSP; discusses the latest advances in CSP, covering topics of operational semantics, denotational models, finite observation models and infinite-behaviour models, and algebraic semantics; explores the practical application of CSP, including timed modelling, discrete modelling, parameterised verifications and the state explosion problem, and advanced topics in the use of FDR; examines the ability of CSP to describe and enable reasoning about parallel systems modelled in other paradigms; covers a broad variety of concurrent systems, including combinatorial, timed, priority-based, mobile, shared variable, statecharts, buffered and asynchronous systems; contains exercises and case studies to support the text; supplies further tools and information at the associated website: http://www.comlab.ox.ac.uk/ucs/. From undergraduate students of computer science in need of an introduction to the area, to researchers and practitioners desiring a more in-depth understanding of theory and practice of concurrent systems, this broad-ranging text/reference is essential reading for anyone interested in Hoare’s CSP.
Temporal logic has developed over the last 30 years into a powerful formal setting for the specification and verification of state-based systems. Based on university lectures given by the authors, this book is a comprehensive, concise, uniform, up-to-date presentation of the theory and applications of linear and branching time temporal logic; TLA (Temporal Logic of Actions); automata theoretical connections; model checking; and related theories. All theoretical details and numerous application examples are elaborated carefully and with full formal rigor, and the book will serve as a basic source and reference for lecturers, graduate students and researchers.
FROM THE PREFACE: This book has risen from a conference on Temporal Logic and Its Applications held at the University of Leeds in January 1986, under the auspices of the then newly-created Centre for Theoretical Computer Science. Temporal logic is a field which, having originated within philosophy, has now proved to be of relevance to several distinct areas in computer science. In this publication, all of the aspects of temporal logic are treated together, hopefully providing a stimulus to further inter-disciplinary collaboration, not only as regards temporal logic itself but also in connection with other logical and philosophical issues, which lie at the interface between computing and philosophy.
Self-concept and coping behaviour are important aspects of development in adolescence. Despite their developmental significance, however, the two areas have rarely been considered in relation to each other. This book is the first in which the two areas are brought together; it suggests that this interaction can open the way to new possibilities for further research and to new implications for applied work with adolescents. Two separate chapters review research carried out in each of the areas. These are followed by a series of more empirically focussed chapters in which issues such as changes in relationship patterns, difficult school situations, leaving school, use of leisure, anxiety and suicidal behaviour are examined in the context of self-concept and coping. The final chapter seeks to identify some of the central themes emerging from this work and discusses possible research and applied implications.
Reasoning about knowledge—particularly the knowledge of agents who reason about the world and each other's knowledge—was once the exclusive province of philosophers and puzzle solvers. More recently, this type of reasoning has been shown to play a key role in a surprising number of contexts, from understanding conversations to the analysis of distributed computer algorithms. Reasoning About Knowledge is the first book to provide a general discussion of approaches to reasoning about knowledge and its applications to distributed systems, artificial intelligence, and game theory. It brings eight years of work by the authors into a cohesive framework for understanding and analyzing reasoning about knowledge that is intuitive, mathematically well founded, useful in practice, and widely applicable. The book is almost completely self-contained and should be accessible to readers in a variety of disciplines, including computer science, artificial intelligence, linguistics, philosophy, cognitive science, and game theory. Each chapter includes exercises and bibliographic notes.