Results 1 -
8 of
8
Exploring Summation and Product Operators in the Refinement Calculus
- Mathematics of Program Construction
, 1994
"... Product and summation operators for predicate transformers were introduced by Naumann [21] and by Martin [15] using category theoretic considerations. In this paper, we formalise these operators in the higher order logic approach to the refinement calculus of [4], and examine various algebraic prope ..."
Abstract
-
Cited by 19 (10 self)
- Add to MetaCart
Product and summation operators for predicate transformers were introduced by Naumann [21] and by Martin [15] using category theoretic considerations. In this paper, we formalise these operators in the higher order logic approach to the refinement calculus of [4], and examine various algebraic properties of these operators. There are several motivating factors for this analysis. The product operator provides a model of simultaneous execution of statements, while the summation operator provides a simple model of late binding. We also generalise the product operator slightly to form an operator that corresponds to conjunction of specifications. We examine several applications of the these operators showing, for example, how a combination of the product and summation operators could be used to model inheritance in an object-oriented programming language. 1 Introduction Dijkstra introduced weakest-precondition predicate transformers as a means of verifying total correctness properties of ...
A Tool for Developing Correct Programs By Refinement
- PROC. BCS 7TH REFINEMENT WORKSHOP
, 1996
"... The refinement calculus for the development of programs from specifications is well suited to mechanised support. We review the requirements for tool support of refinement as gleaned from our experience with a number of existing refinement tools, and report on the design and implementation of a ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
The refinement calculus for the development of programs from specifications is well suited to mechanised support. We review the requirements for tool support of refinement as gleaned from our experience with a number of existing refinement tools, and report on the design and implementation of a new tool to support refinement based on these requirements. The main features of the new tool are close integration of refinement and proof in a single tool (the same mechanism is used for both), good management of the refinement context, an extensible theory base that allows the tool to be adapted to new application domains, and a flexible user interface.
Fusion and Simultaneous Execution in the Refinement Calculus
- Acta Informatica
, 1997
"... In the refinement calculus, program statements are modelled as predicate transformers. A product operator for predicate transformers was introduced by Martin [18] and Naumann [25] using category theoretic considerations. ..."
Abstract
-
Cited by 12 (2 self)
- Add to MetaCart
In the refinement calculus, program statements are modelled as predicate transformers. A product operator for predicate transformers was introduced by Martin [18] and Naumann [25] using category theoretic considerations.
A Mechanized Theory of the pi-calculus in HOL
, 1992
"... : The ß-calculus is a process algebra for modelling concurrent systems in which the pattern of communication between processes may change over time. This paper describes the results of preliminary work on a definitional formal theory of the ß-calculus in higher order logic using the HOL theorem prov ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
: The ß-calculus is a process algebra for modelling concurrent systems in which the pattern of communication between processes may change over time. This paper describes the results of preliminary work on a definitional formal theory of the ß-calculus in higher order logic using the HOL theorem prover. The ultimate goal of this work is to provide practical mechanized support for reasoning with the ß-calculus about applications. Introduction The ß-calculus [17, 18] is a process algebra proposed by Milner, Parrow and Walker for modelling concurrent systems in which the pattern of interconnection between processes may change over time. This paper describes work on a mechanized formal theory of the ß-calculus in higher order logic using the HOL theorem prover [8]. The main aim of this work is to construct a practical and sound theorem-proving tool to support reasoning about applications using the ß-calculus, as well as metatheoretic reasoning about the ß-calculus itself. Four general prin...
A Review of Existing Refinement Tools
- 15TH INTERNATIONAL CONFERENCE ON PATTERN RECOGNITION, ICPR2000
, 1994
"... This report examines the requirements for a support tool for the stepwise refinement of program specifications to program code using the refinement calculus. This calculus, which was developed independently by Back, Morgan and Morris, is described briefly and the requirements for a tool to support t ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This report examines the requirements for a support tool for the stepwise refinement of program specifications to program code using the refinement calculus. This calculus, which was developed independently by Back, Morgan and Morris, is described briefly and the requirements for a tool to support the major roles of refinement are outlined. These broad requirements are expanded to identify more specific functionality, and some existing tools are compared within this functional framework. After a general comparison, five selected case studies are described, which are used for a more detailed and specific comparison. The results of these comparisons are then classified to identify common and distinctive features of the two major tools. Finally the results obtained are summarized in terms of consequences for the generic program refinement tool project.
Refinement in Ergo
, 1995
"... Refinement is a mathematically-based technique for developing a program from an abstract specification so that the program satisfies the specification. The aim of the Program Refinement Tool project is to develop a generic refinement tool suitable for supporting a methodology for the interactive ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
Refinement is a mathematically-based technique for developing a program from an abstract specification so that the program satisfies the specification. The aim of the Program Refinement Tool project is to develop a generic refinement tool suitable for supporting a methodology for the interactive development of programs based on the refinement calculus. This report summarizes our investigation into how the Ergo theorem prover can be used to model the refinement calculus and form the basis of this tool.
Requirements for a Program Refinement Engine
- Patter Recognition Letters
, 1995
"... Refinement is a mathematically-based technique for developing a program from an abstract specification so that the program satisfies the specification. The aim of the Program Refinement Tool project is to develop a generic refinement tool suitable for supporting a methodology for the interactive ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Refinement is a mathematically-based technique for developing a program from an abstract specification so that the program satisfies the specification. The aim of the Program Refinement Tool project is to develop a generic refinement tool suitable for supporting a methodology for the interactive development of programs based on the refinement calculus. This report summarizes our investigation into an appropriate engine to use for the refinement calculator and theorem prover in this tool. Contents 1 Introduction 2 2 Refinement Engine 3 2.1 Structure of Refinement Rules : : : : : : : : : : : : : : : : : : 3 2.2 Applicability Conditions : : : : : : : : : : : : : : : : : : : : : 5 2.3 Parameters : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.4 Monotonicity : : : : : : : : : : : : : : : : : : : : : : : : : : : 7 2.5 Proving Refinement Rules : : : : : : : : : : : : : : : : : : : : 8 2.6 Schematic Developments : : : : : : : : : : : : : : : : : : : : : 8 2.7 Customizing t...
Provably Correct Systems - FTRTFT'94 Tutorial
, 1994
"... ProCoS aims to improve dependability, reduce timescales and cut development costs of construction for embedded systems, particularly in real-time and safety-critical applications. It uses and develops the results of basic research into fundamental properties of interactive systems. It aims to provid ..."
Abstract
- Add to MetaCart
ProCoS aims to improve dependability, reduce timescales and cut development costs of construction for embedded systems, particularly in real-time and safety-critical applications. It uses and develops the results of basic research into fundamental properties of interactive systems. It aims to provide a scientific basis for future standards of practice in the development of embedded systems, ensuring correctness of all stages in the development, from elicitation and analysis of requirements through design and implementation of programs down to compilation and execution on verified hardware.

