Predicate transformation semantics is the best specification method for the development of correct and well-structured computer programs. This book is a complete account of the predicate transformation calculus semantics of sequential programs, including repetitions, recursive procedures, computational induction, and unbounded nondeterminacy. The author develops their theory to a greater depth than has been achieved before, and describes it in a way that makes it readily compatible with programming methodology. He gives proofs of the programming rules for partial and total correctness of...

Predicate transformation semantics is the best specification method for the development of correct and well-structured computer programs. This book is...

The author presents a theory whereby nets, terms and formulas represent concurrent process at three levels of abstractions: Petri nets are used to describe all details of the operational machine behavior of processes. Algebraic process terms such as Calculus of Communicating Systems (CCS) or Communicating Sequential Processes (CSP) two of the main models for parallel programming, are used to describe the architecture of processes, i.e. how they can be composed from subprocesses. Logical formulas of a first-order trace logic are used to describe the safety and liveness aspects of the...

The author presents a theory whereby nets, terms and formulas represent concurrent process at three levels of abstractions: Petri nets are used to des...

The authors describe here a framework in which the type notation of functional languages is extended to include a notation for binding times (that is run-time and compile-time) that distinguishes between them. Consequently, the ability to specify code and verify program correctness can be improved. Two developments are needed, the first of which introduces the binding time distinction into the lambda calculus in a manner analogous with the introduction of types into the untyped lambda calculus. Methods are also presented for introducing combinators for run-time. The second concerns the...

The authors describe here a framework in which the type notation of functional languages is extended to include a notation for binding times (that is ...

Classical logic has proved inadequate in various areas of computer science, artificial intelligence, mathematics, philosopy and linguistics. This is an introduction to extensions of first-order logic, based on the principle that many-sorted logic (MSL) provides a unifying framework in which to place, for example, second-order logic, type theory, modal and dynamic logics and MSL itself. The aim is two fold: only one theorem-prover is needed; proofs of the metaproperties of the different existing calculi can be avoided by borrowing them from MSL. To make the book accessible to readers from...

Classical logic has proved inadequate in various areas of computer science, artificial intelligence, mathematics, philosopy and linguistics. This is a...

Petri nets are a popular and powerful formal model for the analysis and modelling of concurrent systems, and a rich theory has developed around them. Petri nets are taught to undergraduates, and also used by industrial practitioners. This book focuses on a particular class of petri nets, free choice petri nets, which play a central role in the theory. The text is very clearly organised, with every notion carefully explained and every result proved. Clear exposition is given for place invariants, siphons, traps and many other important analysis techniques. The material is organised along the...

Petri nets are a popular and powerful formal model for the analysis and modelling of concurrent systems, and a rich theory has developed around them. ...

This book develops the theory of typed feature structures, a data structure that generalizes both first-order terms and feature structures of unification-based grammars to include inheritance, typing, inequality, cycles, and intensionality.

This book develops the theory of typed feature structures, a data structure that generalizes both first-order terms and feature structures of unificat...

In this book, the author develops deduction-oriented methods for reasoning about functional and logic programs. The methods are based on the inductive theories of suitable data type specifications and exploit both classical theorem-proving and term rewriting. Detailed examples accompany the development of the methods, and their use is supported by a prototyping system that is documented at the end of the book.

In this book, the author develops deduction-oriented methods for reasoning about functional and logic programs. The methods are based on the inductive...

Reasoning under uncertainty, that is, making judgments with only partial knowledge, is a major theme in artificial intelligence. Professor Paris provides here an introduction to the mathematical foundations of the subject. The author presents the key results on the subject, and formalizes within a unified framework the main contemporary approaches and assumptions. He concentrates on giving clear mathematical formulations, analyses, justifications, and consequences of the main theories about uncertain reasoning.

Reasoning under uncertainty, that is, making judgments with only partial knowledge, is a major theme in artificial intelligence. Professor Paris provi...

Logic and Computation is concerned with techniques for formal theorem-proving, with particular reference to Cambridge LCF (Logic for Computable Functions). Cambridge LCF is a computer program for reasoning about computation. It combines methods of mathematical logic with domain theory, the basis of the denotational approach to specifying the meaning of statements in a programming language. This book consists of two parts. Part I outlines the mathematical preliminaries: elementary logic and domain theory. They are explained at an intuitive level, giving references to more advanced reading....

Logic and Computation is concerned with techniques for formal theorem-proving, with particular reference to Cambridge LCF (Logic for Computable Functi...

Formal specification is a method for precisely modelling computer-based systems that combines concepts from software engineering and mathematical logic. In this book the authors describe algebraic and state-based specification techniques from the unified view of the Common Object-oriented Language for Design, COLD, a wide-spectrum language in the tradition of VDM and Z. The kernel language is explained in detail, with many examples, including: set representation, a display device, an INGRES-like database system, and a line editor. Fundamental techniques such as initial algebra semantics,...

Formal specification is a method for precisely modelling computer-based systems that combines concepts from software engineering and mathematical logi...