Results 1 
7 of
7
Products in the Refinement Calculus
, 1999
"... We study program states that are described as tuples, i.e., product state spaces. Modeling programs as predicate transformers, we define a product operator on program statements that describes the independent execution of statements on disjoint state spaces. The algebraic properties of this product ..."
Abstract

Cited by 30 (2 self)
 Add to MetaCart
We study program states that are described as tuples, i.e., product state spaces. Modeling programs as predicate transformers, we define a product operator on program statements that describes the independent execution of statements on disjoint state spaces. The algebraic properties of this product operator are studied, in particular the basic monotonicity and distributivity properties that the operator has, and their applications. We also consider how to extend the state space by adding new state components, and show how this is modeled using the product operator. Finally, we show how products are useful to formulate data refinement, both as a general concept and as a technique for replacing local state components of program blocks.
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 ...
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.
Soundness of Data Refinement for a Higher Order Imperative Language
, 1999
"... Using a settheoretic model of predicate transformers and ordered data types, we give a semantics for an Oberonlike higher order imperative language with record subtyping and proceduretype variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refi ..."
Abstract

Cited by 9 (4 self)
 Add to MetaCart
Using a settheoretic model of predicate transformers and ordered data types, we give a semantics for an Oberonlike higher order imperative language with record subtyping and proceduretype variables and parameters. Data refinement is shown to be sound for this language: It implies algorithmic refinement when suitably localized. And all constructs are shown to preserve simulation, so data refinement can be carried out piecewise.
Data refinement, call by value, and higher order programs. unpublished draft
 Formal Aspects of Computing
, 1995
"... higher types, lax exponent. Abstract. Using 2categorical laws of algorithmic refinement, we show soundness of data refinement for stored programs and hence for higher order procedures with value/result parameters. The refinement laws hold in a model that slightly generalizes the standard predicate ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
higher types, lax exponent. Abstract. Using 2categorical laws of algorithmic refinement, we show soundness of data refinement for stored programs and hence for higher order procedures with value/result parameters. The refinement laws hold in a model that slightly generalizes the standard predicate transformer semantics for the usual imperative programming constructs including prescriptions. 1.
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.
Interpreting Nondeterminism in the Refinement Calculus
 Proceedings of the BCSFACS 7th Refinement Workshop, Workshops in Computing
, 1996
"... We introduce a simple programming language and define its predicate transformer semantics. We motivate the choice of the constructs for the language by algebraic arguments, showing that the constructs are essentially the basic algebraic operations that are available for predicate transformers, when ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We introduce a simple programming language and define its predicate transformer semantics. We motivate the choice of the constructs for the language by algebraic arguments, showing that the constructs are essentially the basic algebraic operations that are available for predicate transformers, when these are viewed as forming a complete lattice enriched category. We then show that the statements in the language can be given a simple operational interpretation, as describing the interaction between a user and a computing system. This gives a general intuitive interpretation of angelic and demonic nondeterminism. We also consider the notion of correctness and refinement of program statements that this intuitive interpretation gives rise to, and show the connection between the usersystem interpretation and the interpretation of program execution as a game. Keywords: Refinement Calculus, nondeterminism TUCS Research Group Programming Methodology Research Group 1 Introduction We will ...