Refinement Calculus


Book Description

Much current research in computer science is concerned with two questions: is a program correct? And how can we improve a correct program preserving correctness? This latter question is known as the refinement of programs and the purpose of this book is to consider these questions in a formal setting. In fact, correctness turns out to be a special case of refinement and so the focus is on refinement. Although a reasonable background knowledge is assumed from mathematics and CS, the book is a self-contained introduction suitable for graduate students and researchers coming to this subject for the first time. There are numerous exercises provided of varying degrees of challenge.




On the Refinement Calculus


Book Description

On the Refinement Calculus gives one view of the development of the refinement calculus and its attempt to bring together - among other things - Z specifications and Dijkstra's programming language. It is an excellent source of reference material for all those seeking the background and mathematical underpinnings of the refinement calculus.




Refinement


Book Description

Refinement is one of the cornerstones of a formal approach to software engineering. Refinement is all about turning an abstract description (of a soft or hardware system) into something closer to implementation. It provides that essential bridge between higher level requirements and an implementation of those requirements. This book provides a comprehensive introduction to refinement for the researcher or graduate student. It introduces refinement in different semantic models, and shows how refinement is defined and used within some of the major formal methods and languages in use today. It (1) introduces the reader to different ways of looking at refinement, relating refinement to observations(2) shows how these are realised in different semantic models (3) shows how different formal methods use different models of refinement, and (4) how these models of refinement are related.




Stepwise Refinement of Distributed Systems


Book Description

The stepwise refinement method postulates a system construction route that starts with a high-level specification, goes through a number of provably correct development steps, and ends with an executable program. The contributions to this volume survey the state of the art in this extremely active research area. The world's leading specialists in concurrent program specification, verification, and the theory of their refinement present latest research results and surveys of the fields. State-based, algebraic, temporal logic oriented and category theory oriented approaches are presented. Special attention is paid to the relationship between compositionality and refinement for distributed programs. Surveys are given of results on refinement in partial-order based approaches to concurrency. A unified treatment is given of the assumption/commitment paradigm in compositional concurrent program specification and verification, and the extension of these to liveness properties. Latest results are presented on specifying and proving concurrent data bases correct, and deriving network protocols from their specifications.




Refinement in Z and Object-Z


Book Description

Refinement is one of the cornerstones of the formal approach to software engineering, and its use in various domains has led to research on new applications and generalisation. This book brings together this important research in one volume, with the addition of examples drawn from different application areas. It covers four main themes: Data refinement and its application to Z Generalisations of refinement that change the interface and atomicity of operations Refinement in Object-Z Modelling state and behaviour by combining Object-Z with CSP Refinement in Z and Object-Z: Foundations and Advanced Applications provides an invaluable overview of recent research for academic and industrial researchers, lecturers teaching formal specification and development, industrial practitioners using formal methods in their work, and postgraduate and advanced undergraduate students. This second edition is a comprehensive update to the first and includes the following new material: Early chapters have been extended to also include trace refinement, based directly on partial relations rather than through totalisation Provides an updated discussion on divergence, non-atomic refinements and approximate refinement Includes a discussion of the differing semantics of operations and outputs and how they affect the abstraction of models written using Object-Z and CSP Presents a fuller account of the relationship between relational refinement and various models of refinement in CSP Bibliographic notes at the end of each chapter have been extended with the most up to date citations and research




4th Refinement Workshop


Book Description

This volume contains the proceedings ofthe 4th Refinement Workshop which was organised by the British Computer Society specialist group in Formal Aspects of Computing Science and held in Wolfson College, Cambridge, on 9-11 January, 1991. The term refinement embraces the theory and practice of using formal methods for specifying and implementing hardware and software. Most of the achievements to date in the field have been in developing the theoretical framework for mathematical approaches to programming, and on the practical side in formally specifying software, while more recently we have seen the development of practical approaches to deriving programs from their speCifications. The workshop gives a fair picture of the state of the art: it presents new theories for reasoning about software and hardware and case studies in applying known theory to interesting small-and medium-scale problems. We hope the book will be Of interest both to researchers in formal methods, and to software engineers in industry who want to keep abreast of possible applications of formal methods in industry. The programme consisted both of invited talks and refereed papers. The invited speakers were Ib S0rensen, Jean-Raymond Abrial, Donald MacKenzie, Ralph Back, Robert Milne, Mike Read, Mike Gordon, and Robert Worden who gave the introductory talk. This is the first refinement workshop that solicited papers for refereeing, and despite a rather late call for papers the response was excellent.




6th Refinement Workshop


Book Description

The Sixth Refinement Workshop took place at City University in London from 5th to 7th January 1994. The present volume includes all of the papers which were submitted and accepted for presentation, together with two papers by invited speakers. The workshops in the series have generally occurred at one year intervals but in this last case a two year period had elapsed. These workshops have established themselves as an important event in the calendar for all those who are interested in progress in the underlying theory of refinement and in the take-up by industry of the methods supported by that theory. One of the proposed themes of the sixth workshop was the reporting of successful adoption in industry of rigorous software development methods. The programme committee was perhaps slightly disappointed by the response from industry to the call in this respect. However, the recent period could be characterised as one of consolidation, when those companies which have made the decision that formal development methods are important to their business have been adopting them where appropriate and finding them to be worthwhile. On the other hand,. the difficult economic climate which exists in most parts of the developed world is perhaps not the context within which companies still dubious about the benefits are goil'\g to opt for making major changes in their working practices.




Mathematics of Program Construction


Book Description

This volume contains the proceedings of the 8th International Conference on Mathematics of ProgramConstruction, MPC 2006,held at Kuressaare, Estonia, July 3-5, 2006, colocated with the 11th International Conference on Algebraic Methodology and Software Technology, AMAST 2006, July 5-8, 2006. TheMPCconferencesaimtopromotethedevelopmentofmathematicalpr- ciples and techniques that are demonstrably useful and usable in the process of constructing computer programs. Topics of interest range from algorithmics to support for program construction in programming languages and systems. The previous MPCs were held at Twente, The Netherlands (1989, LNCS 375), Oxford, UK (1992, LNCS 669), Kloster Irsee, Germany (1995,LNCS 947), Marstrand, Sweden (1998, LNCS 1422), Ponte de Lima, Portugal (2000, LNCS 1837), Dagstuhl, Germany (2002, LNCS 2386) and Stirling, UK (2004, LNCS 3125, colocated with AMAST 2004). MPC 2006 received 45 submissions. Each submission was reviewed by four Programme Committee members or additional referees. The committee decided to accept 22 papers. In addition, the programme included three invited talks by Robin Cockett (University of Calgary, Canada), Olivier Danvy (Aarhus Univ- sitet, Denmark) and Oege de Moor (University of Oxford, UK). The review process and compilation of the proceedings were greatly helped by Andrei Voronkov's EasyChair system that I can only recommend to every programme chair. MPC 2006 had one satellite workshop, the Workshop on Mathematically Structured Functional Programming, MSFP 2006, organized as a "small" wo- shop of the FP6 IST coordination action TYPES. This took place July 2, 2006.




5th Refinement Workshop


Book Description

Refinement is the term used to describe systematic and formal methods of specifying hard- and software and transforming the specifications into designs and implementations. The value of formal methods in producing reliable hard- and software is widely appreciated by academics and workers in industry, despite the fact that certain research areas, such as the application to industrial-scale problems, are still in their infancy. This volume contains the papers presented at the 5th Refinement Workshop held in London, 8-10 January 1992. Its theme was the theory and practice of software specifications, which is the transformation of formal software specifications into more correct specifications, designs and codes. This has been an important area of research for the last 5 years and the workshop addressed specific issues and problems related to it. Among the topics discussed in this volume are: the role of refinement in software development, parallel designs and implementations, methods and tools for verification of critical properties, refinement and confidentiality, concurrent processes as objects, the compliance of Ada programs with Z specifications and a tactic driven refinement tool. This is the latest refinement workshop proceedings to be published in the Workshops in Computing series (the 3rd and 4th workshops having appeared in 1990 and 1991 respectively). It will be of interest to academic and industrial researchers, postgraduate students and research-oriented developers in the computer industry.




Program Design Calculi


Book Description

The development of information processing systems requires models, calculi, and theories for the analysis of computations. It is well understood by now that more complex software systems cannot and should not be constructed in one step. A careful, systematic, and disciplined structuring of the development process is most adequate. It should start from basic requirement specifications in which aU the relevant details of the problem to be solved are formalized. The envisaged solution should be developed step by step by adding more and more details and giving evidence-in the best case by formal proof-to show the correctness of the developed steps. The development ends if a description of a solution is obtained that has aU the required properties. The Summer School in Marktoberdorf 1992 showed significant approaches in this area to refinement calculi, to models of computation, and as a special issue to the treatment of reactive timed systems. Like in the many summer schools before, the success of the 1992 Summer School was not only due to the excellent lectures, but even more due to the brilliant students taking part in the discussions at the summer school, the exchange of different views, and the recognition of the similarity of a number of different view points. These were some of the most important contributions of the summer school. fu the following the proceedings of the summer school are collected. They show the maturity of the field in an impressive way.