Proof and Computation


Book Description

Logical concepts and methods are of growing importance in many areas of computer science. The proofs-as-programs paradigm and the wide acceptance of Prolog show this clearly. The logical notion of a formal proof in various constructive systems can be viewed as a very explicit way to describe a computation procedure. Also conversely, the development of logical systems has been influenced by accumulating knowledge on rewriting and unification techniques. This volume contains a series of lectures by leading researchers giving a presentation of new ideas on the impact of the concept of a formal proof on computation theory. The subjects covered are: specification and abstract data types, proving techniques, constructive methods, linear logic, and concurrency and logic.




Theories of Programming


Book Description

Sir Tony Hoare has had an enormous influence on computer science, from the Quicksort algorithm to the science of software development, concurrency and program verification. His contributions have been widely recognised: He was awarded the ACM’s Turing Award in 1980, the Kyoto Prize from the Inamori Foundation in 2000, and was knighted for “services to education and computer science” by Queen Elizabeth II of England in 2000. This book presents the essence of his various works—the quest for effective abstractions—both in his own words as well as chapters written by leading experts in the field, including many of his research collaborators. In addition, this volume contains biographical material, his Turing award lecture, the transcript of an interview and some of his seminal papers. Hoare’s foundational paper “An Axiomatic Basis for Computer Programming”, presented his approach, commonly known as Hoare Logic, for proving the correctness of programs by using logical assertions. Hoare Logic and subsequent developments have formed the basis of a wide variety of software verification efforts. Hoare was instrumental in proposing the Verified Software Initiative, a cooperative international project directed at the scientific challenges of large-scale software verification, encompassing theories, tools and experiments. Tony Hoare’s contributions to the theory and practice of concurrent software systems are equally impressive. The process algebra called Communicating Sequential Processes (CSP) has been one of the fundamental paradigms, both as a mathematical theory to reason about concurrent computation as well as the basis for the programming language occam. CSP served as a framework for exploring several ideas in denotational semantics such as powerdomains, as well as notions of abstraction and refinement. It is the basis for a series of industrial-strength tools which have been employed in a wide range of applications. This book also presents Hoare’s work in the last few decades. These works include a rigorous approach to specifications in software engineering practice, including procedural and data abstractions, data refinement, and a modular theory of designs. More recently, he has worked with collaborators to develop Unifying Theories of Programming (UTP). Their goal is to identify the common algebraic theories that lie at the core of sequential, concurrent, reactive and cyber-physical computations.




3rd Refinement Workshop


Book Description




Logic Program Synthesis and Transformation


Book Description

Logic programming synthesis and transformation are methods of deriving logic programs from their specifications and, where necessary, producing alternative but equivalent forms of a given program. The techniques involved in synthesis and transformation are extremely important as they allow the systematic construction of correct and efficient programs and have the potential to enhance current methods of software production. Transformation strategies are also being widely used in the field of logic program development. LOPSTR 91 was the first workshop to deal exclusively with both logic program synthesis and transformation and, as such, filled an obvious gap in the existing range of logic programming workshops. In attempting to cover the subject as comprehensively as possible, the workshop brought together researchers with an interest in all aspects of logic (including Horn Clause and first order logic) and all approaches to program synthesis and transformation. Logic Program Synthesis and Transformation provides a complete record of the workshop, with all the papers reproduced either in full or as extended abstracts. They cover a wide range of aspects, both practical and theoretical, including the use of mode input-output in program transformation, program specification and synthesis in constructive formal systems and a case study in formal program development in modular Prolog. This volume provides a comprehensive overview of current research and will be invaluable to researchers and postgraduate students who wish to enhance their understanding of logic programming techniques.







Data Refinement


Book Description

The goal of this book is to provide a comprehensive and systematic introduction to the important and highly applicable method of data refinement and the simulation methods used for proving its correctness. The authors concentrate in the first part on the general principles needed to prove data refinement correct. They begin with an explanation of the fundamental notions, showing that data refinement proofs reduce to proving simulation. The book's second part contains a detailed survey of important methods in this field, which are carefully analysed, and shown to be either incomplete, with counterexamples to their application, or to be always applicable whenever data refinement holds. This is shown by proving, for the first time, that all these methods can be described and analysed in terms of two simple notions: forward and backward simulation. The book is self-contained, going from advanced undergraduate level and taking the reader to the state of the art in methods for proving simulation.







Handbook of Logic in Artificial Intelligence and Logic Programming: Volume 5: Logic Programming


Book Description

The Handbook of Logic in Artificial Intelligence and Logic Programming is a multi-volume work covering all major areas of the application of logic to artificial intelligence and logic programming. The authors are chosen on an international basis and are leaders in the fields covered. Volume 5 is the last in this well-regarded series. Logic is now widely recognized as one of the foundational disciplines of computing. It has found applications in virtually all aspects of the subject, from software and hardware engineering to programming languages and artificial intelligence. In response to the growing need for an in-depth survey of these applications the Handbook of Logic in Artificial Intelligence and its companion, the Handbook of Logic in Computer Science have been created. The Handbooks are a combination of authoritative exposition, comprehensive survey, and fundamental research exploring the underlying themes in the various areas. Some mathematical background is assumed, and much of the material will be of interest to logicians and mathematicians. Volume 5 focuses particularly on logic programming. The chapters, which in many cases are of monograph length and scope, emphasize possible unifying themes.




Computational Logic and Set Theory


Book Description

This must-read text presents the pioneering work of the late Professor Jacob (Jack) T. Schwartz on computational logic and set theory and its application to proof verification techniques, culminating in the ÆtnaNova system, a prototype computer program designed to verify the correctness of mathematical proofs presented in the language of set theory. Topics and features: describes in depth how a specific first-order theory can be exploited to model and carry out reasoning in branches of computer science and mathematics; presents an unique system for automated proof verification in large-scale software systems; integrates important proof-engineering issues, reflecting the goals of large-scale verifiers; includes an appendix showing formalized proofs of ordinals, of various properties of the transitive closure operation, of finite and transfinite induction principles, and of Zorn’s lemma.