Results 1  10
of
10
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 objectoriented programming language. 1 Introduction Dijkstra introduced weakestprecondition predicate transformers as a means of verifying total correctness properties of ...
Engineering and Theoretical Underpinnings of Retrenchment
, 2001
"... Refinement is reviewed in a partial correctness framework, highlighting in particular the distinction between its use as a specification constructor at a high level, and its use as an implementation mechanism at a low level. Some of its shortcomings as specification constructor at high levels of ..."
Abstract

Cited by 16 (13 self)
 Add to MetaCart
Refinement is reviewed in a partial correctness framework, highlighting in particular the distinction between its use as a specification constructor at a high level, and its use as an implementation mechanism at a low level. Some of its shortcomings as specification constructor at high levels of abstraction are pointed out, and these are used to motivate the adoption of retrenchment for certain high level development steps. Basic properties of retrenchment are described, including a justification of the operation PO, simple examples, simulation properties, and compositionality for both the basic retrenchment notion and enriched versions. The issue of framing retrenchment in the wide variety of correctness notions for refinement calculi that exist in the literature is tackled, culminating in guidelines on how to `brew your own retrenchment theory'. Two short case studies are presented. One is a simple digital redesign control theory problem, the other is a radiotherapy dos...
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.
Calculational Derivation of Pointer Algorithms from Tree Operations
 Science of Computer Programming
, 1998
"... We describe an approach to the derivation of correct algorithms on treebased pointer structures. The approach is based on enriching trees in a way that allows us to model commonlyused pointer manipulations on tree structures. ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
We describe an approach to the derivation of correct algorithms on treebased pointer structures. The approach is based on enriching trees in a way that allows us to model commonlyused pointer manipulations on tree structures.
ImpUNITY: UNITY with procedures and local variables
 Mathematics of Program Construction, volume 947 of Lecture
, 1995
"... In this paper we present the ImpUNITY framework, a framework that supports the development of parallel and distributed programs from specification to implementation in a stepwise manner. The ImpUNITY framework is an extension of UNITY, as introduced by Chandy and Misra, with features of the Action S ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
In this paper we present the ImpUNITY framework, a framework that supports the development of parallel and distributed programs from specification to implementation in a stepwise manner. The ImpUNITY framework is an extension of UNITY, as introduced by Chandy and Misra, with features of the Action System formalism of Back and KurkiSuonio. Due to this extension, the ImpUNITY framework is more suitable for the implementation phase of the develop process. Therefore, it supports local variables and (remote) procedure calls. It also supports a UNITY like temporal logic and the extension can be done without punishment. 1 Introduction The UNITY framework, as introduced by Chandy and Misra [CM88], supports the idea of stepwise refinement of specifications. The framework consists of a programming language and a programming logic. The logic is based on a small set of temporal properties for describing specifications. A specification is refined by a set of stronger properties and the UNITY app...
Programs on Product Spaces
, 1997
"... We study program states that are described as tuples, i.e., product state spaces. We show how to add program variables and assignment notation to simply typed lambda calculus in order to describe functions, relations and predicate transformers on such spaces in a concise way. We define an operator o ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
We study program states that are described as tuples, i.e., product state spaces. We show how to add program variables and assignment notation to simply typed lambda calculus in order to describe functions, relations and predicate transformers on such spaces in a concise way. We define an operator on program statements that describes the independent execution of statements on disjoint state spaces, where program statements are modeled as predicate transformers. We study the algebraic properties of this product operator, in particular the basic monotonicity and distributivity properties that the operator has. We also consider how to extend the state space by adding new state components, and show how this is modeled using the product operator.
Performing Algorithmic Refinement before Data Refinement in B
 First International Conference of B and Z Users, volume 1878 of LNCS
, 2000
"... Algorithmic Refinement is part of the theory of the B method both at the refinement and implementation stages. It a sign of how little loop introduction is used in practice at the refinement stage that neither the BToolkit nor AtelierB provide support for loop introduction until the implementat ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Algorithmic Refinement is part of the theory of the B method both at the refinement and implementation stages. It a sign of how little loop introduction is used in practice at the refinement stage that neither the BToolkit nor AtelierB provide support for loop introduction until the implementation stage. This paper examines the use of algorithmic refinement in general before data refinement. This involves extending the usual scope of data refinement which usually happens before algorithmic refinement. Two case studies are used to compare and contrast the application of algorithmic refinement before data refinement and vice versa. Some extensions are needed in the BToolkit to implement this style (i.e., algorithmic before data refinement) and are proposed.
Refining Reactive Systems in HOL using Action Systems
, 1997
"... This report discusses how to refine reactive systems using the HOL theorem prover. We show how Action Systems  the formal framework supported  can be formalised in HOL. We describe a simple refinement example. We also discuss how the work presented here can be used in connection with the Refinem ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
This report discusses how to refine reactive systems using the HOL theorem prover. We show how Action Systems  the formal framework supported  can be formalised in HOL. We describe a simple refinement example. We also discuss how the work presented here can be used in connection with the Refinement Calculator, a tool supporting program refinement.
Construction Informatics  issues in engineering, computer science, and ontology
"... This Ph.D.–thesis studies issues in the area of construction informatics. Construction informatics is the theoretical study of formal and conceptual aspects in the domain of civil engineering and design. The thesis is a collection of papers which each treat a specific subject within domain analysis ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This Ph.D.–thesis studies issues in the area of construction informatics. Construction informatics is the theoretical study of formal and conceptual aspects in the domain of civil engineering and design. The thesis is a collection of papers which each treat a specific subject within domain analysis and conceptual modelling of civil engineering and design. Due to the interdisciplinary content, the first half of the study has been carried
Refinement for Monadic Programs
"... We provide a framework for program and data refinement in Isabelle/HOL. The framework is based on a nondeterminismmonad with assertions, i.e., the monad carries a set of results or an assertion failure. Recursion is expressed by fixed points. For convenience, we also provide while and foreach combi ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We provide a framework for program and data refinement in Isabelle/HOL. The framework is based on a nondeterminismmonad with assertions, i.e., the monad carries a set of results or an assertion failure. Recursion is expressed by fixed points. For convenience, we also provide while and foreach combinators. The framework provides tools to automatize canonical tasks, such as verification condition generation, finding appropriate data refinement relations, and refine an executable program to a form that is accepted by the Isabelle/HOL code generator. This submission comes with a collection of examples and a userguide,