Results 1  10
of
12
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.
A CSP Approach To Action Systems
, 1992
"... The communicating sequential processes (CSP) formalism, introduced by Hoare [Hoa85], is an eventbased approach to distributed computing. The actionsystem formalism, introduced by Back & KurkiSuonio [BKS83], is a statebased approach to distributed computing. Using weakestprecondition formulae, M ..."
Abstract

Cited by 23 (6 self)
 Add to MetaCart
The communicating sequential processes (CSP) formalism, introduced by Hoare [Hoa85], is an eventbased approach to distributed computing. The actionsystem formalism, introduced by Back & KurkiSuonio [BKS83], is a statebased approach to distributed computing. Using weakestprecondition formulae, Morgan [Mor90a] has defined a correspondence between action systems and the failuresdivergences model for CSP. Simulation is a proof technique for showing refinement of action systems. Using the correspondence of [Mor90a], Woodcock & Morgan [WM90] have shown that simulation is sound and complete in the CSP failuresdivergences model. In this thesis, Morgan's correspondence is extended to the CSP infinitetraces model [Ros88] in order to deal more properly with unbounded nondeterminism. It is shown that simulation is sound in the infinitetraces model, though completeness is lost in certain cases. The new correspondence is then extended to include a notion of internal action. This allows the ...
An Algebraic Construction of Predicate Transformers
 Science of Computer Programming
, 1994
"... . In this paper we present an algebraic construction of monotonic predicate transformers, using a categorical construction which is similar to the algebraic construction of the integers from the natural numbers. When applied to the category of sets and total functions once, it yields a category isom ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
. In this paper we present an algebraic construction of monotonic predicate transformers, using a categorical construction which is similar to the algebraic construction of the integers from the natural numbers. When applied to the category of sets and total functions once, it yields a category isomorphic to the category of sets and relations; a second application yields a category isomorphic to the category of monotonic predicate transformers. This hierarchy cannot be extended further: the category of total functions is not itself an instance of the categorical construction, and can only be extended by it twice. 1 Introduction Predicate transformers were introduced originally by Dijkstra [8] in order to provide an elegant semantics for his programming language. Their strength lies in the fact that they can be used to model nondeterministic and nonterminating behaviour in terms of total functions, rather than relations. Not all monotonic predicate transformers represent programs in ...
Predicate Transformer Semantics of a Higher Order Imperative Language With . . .
 SCIENCE OF COMPUTER PROGRAMMING
, 1998
"... Using a settheoretic model of predicate transformers and ordered data types, we give a totalcorrectness semantics for a typed higherorder imperative programming language that includes record extension, local variables, and proceduretype variables and parameters. The language includes infeasibl ..."
Abstract

Cited by 19 (9 self)
 Add to MetaCart
Using a settheoretic model of predicate transformers and ordered data types, we give a totalcorrectness semantics for a typed higherorder imperative programming language that includes record extension, local variables, and proceduretype variables and parameters. The language includes infeasible speci cation constructs, for a calculus of re nement. Procedures may have global variables, subject to mild syntactic restrictions to avoid the semantic complications of Algollike languages. The semantics is used to validate simple proof rules for noninterference, type extension, and calls of procedure variables and constants.
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 ...
A Categorical Model for Higher Order Imperative Programming
 Mathematical Structures in Computer Science
, 1993
"... This paper gives the first complete axiomatization for higher types in the refinement calculus of predicate transformers. ..."
Abstract

Cited by 14 (13 self)
 Add to MetaCart
This paper gives the first complete axiomatization for higher types in the refinement calculus of predicate transformers.
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.
Networks of Predicate Transformers
 Software Verification Research Centre
, 1995
"... A predicate transformer model for network composition of dataflow processes is developed. This model for network composition is shown to support a powerful decomposition rule which allows the arbitrary decomposition of network (liveness, safety, and timing) properties over subcomponents. The rule al ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
A predicate transformer model for network composition of dataflow processes is developed. This model for network composition is shown to support a powerful decomposition rule which allows the arbitrary decomposition of network (liveness, safety, and timing) properties over subcomponents. The rule allows the utilisation of properties of siblings in the development of individual components through their introduction as specification assumptions. An example implementation language of synchronous dataflow machines is considered and the network composition operator specialised so as to support, within the refinement calculus, a compositional development method for this language. 1 Introduction The separation of formal specifications into assumptions about the environment of a process and effects required of the process has a venerable formal methods pedigree, stretching back through Hoare's axioms [5] to the germination of the idea in work by Floyd and even Turing [6]. The adoption of what...
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.