## Fusion and Simultaneous Execution in the Refinement Calculus (1997)

Venue: | Acta Informatica |

Citations: | 12 - 2 self |

### BibTeX

@ARTICLE{Back97fusionand,

author = {Ralph-johan Back and Michael Butler},

title = {Fusion and Simultaneous Execution in the Refinement Calculus},

journal = {Acta Informatica},

year = {1997},

volume = {35},

pages = {94--9}

}

### Years of Citing Articles

### OpenURL

### Abstract

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.

### Citations

3397 | Communicating Sequential Processes
- Hoare
- 1985
(Show Context)
Citation Context ...position is simply [I 1sI 2 ]. The product operator provides a way of composing more general initialisations achieving the same effect. In [7], a correspondence between action systems and Hoare's CSP =-=[13]-=- is described. Based on CSP parallel composition, a version of parallel composition of action systems is introduced in which commonly labelled actions from the respective action systems are composed s... |

1399 |
A Discipline of Programming
- Dijkstra
- 1976
(Show Context)
Citation Context ...ng of smaller programs into larger contexts. 1 Introduction Dijkstra introduced weakest-precondition predicate transformers as a means of verifying total correctness properties of sequential programs =-=[9]-=-. The refinement calculus of Back [2], Morgan [21], and Morris [23] builds on this, regarding specifications and programs uniformly as predicate transformers. In the refinement calculus, the required ... |

1104 | The Z Notation: A reference manual - Spivey - 1992 |

723 |
The B-Book: Assigning Programs to Meanings
- Abrial
- 1996
(Show Context)
Citation Context ...ta fpreg; v := v 0 j post 0 )sS. If post refers to variables of both v and v 0 , then the specification (var u \Delta fpreg; v := v 0 j post) can relate the before and after states in the manner of B =-=[1]-=-, VDM [16], and Z [26] specifications. A statement of the form (var u \Delta fpreg v := v 0 j post) is called a specification statement [20] (we usually omit the sequential composition operator from a... |

474 |
Programming from Specifications
- MORGAN
- 1990
(Show Context)
Citation Context ...troduction Dijkstra introduced weakest-precondition predicate transformers as a means of verifying total correctness properties of sequential programs [9]. The refinement calculus of Back [2], Morgan =-=[21]-=-, and Morris [23] builds on this, regarding specifications and programs uniformly as predicate transformers. In the refinement calculus, the required behaviour of the program is specified as an abstra... |

155 |
A Theoretical Basis for Stepwise Refinement and the Programming Calculus
- Morris
- 1989
(Show Context)
Citation Context ...ra introduced weakest-precondition predicate transformers as a means of verifying total correctness properties of sequential programs [9]. The refinement calculus of Back [2], Morgan [21], and Morris =-=[23]-=- builds on this, regarding specifications and programs uniformly as predicate transformers. In the refinement calculus, the required behaviour of the program is specified as an abstract, possibly non-... |

133 |
The specification statement
- Morgan
- 1988
(Show Context)
Citation Context ...t) can relate the before and after states in the manner of B [1], VDM [16], and Z [26] specifications. A statement of the form (var u \Delta fpreg v := v 0 j post) is called a specification statement =-=[20]-=- (we usually omit the sequential composition operator from a specification statement). A sorting algorithm, for example, may be specified by var s : seq T \Delta s := s 0 j (sorted s 0 )s(permutation ... |

109 | Correctness preserving program refinements: proof theory and applications - Back - 1980 |

104 |
Introduction to HOL
- Gordon, Melham
- 1993
(Show Context)
Citation Context ...definitions with some alternative definitions and results on the least data refinement of products. 2 Refinement Calculus Basics We work with terms of higher-order logic as described, for example, in =-=[11]-=-. A term in higher-order logic is an expression in a typed lambda calculus possibly having free variables. We write t[x := e] for the term t with all free occurrences of variable x replaced by term e.... |

63 |
Data refinement refined
- He, Hoare, et al.
- 1986
(Show Context)
Citation Context ...with the refinement calculus. 6 Data Refinement The well-known technique of data refinement involves replacing abstract program variables with concrete program variables using an abstraction relation =-=[12]-=-. In the refinement calculus, the abstraction relation is modelled by an abstraction command, and we say that S : \Sigma 7! \Sigma is data refined by S 0 : \Sigma 0 7! \Sigma 0 under abstraction comma... |

60 |
Systematic Software Development using VDM (second edition
- Jones
(Show Context)
Citation Context ... v := v 0 j post 0 )sS. If post refers to variables of both v and v 0 , then the specification (var u \Delta fpreg; v := v 0 j post) can relate the before and after states in the manner of B [1], VDM =-=[16]-=-, and Z [26] specifications. A statement of the form (var u \Delta fpreg v := v 0 j post) is called a specification statement [20] (we usually omit the sequential composition operator from a specifica... |

57 |
Stepwise refinement of parallel algorithms
- Back, Sere
- 1990
(Show Context)
Citation Context ...initially m;n := 0; 0 action a : m = 0 \Gamma! m := 1 action b : n = 0 \Gamma! n := 1 action c : m = 1sn = 1 \Gamma! m;n := 0; 0 1 C C C C A Superposition refinement of action systems is described in =-=[5]-=-, where superposition on individual actions is described in terms of sequential composition. Our extension operator could be used instead. 17 8 Conclusions We have investigated the fusion and product ... |

46 |
Data refinement of predicate transformers
- Gardiner, Morgan
- 1991
(Show Context)
Citation Context ...the abstraction relation is modelled by an abstraction command, and we say that S : \Sigma 7! \Sigma is data refined by S 0 : \Sigma 0 7! \Sigma 0 under abstraction command ff : \Sigma 0 7! \Sigma if =-=[1, 10, 24, 27]-=-: ff; SsS 0 ; ff: For a more comprehensive treatment of data refinement of predicate transformers see [1, 10, 24, 27]. Here we will simply look at how data refinement distributes through the fusion an... |

38 | Class refinement and interface refinement in object-orient programs, in - Mikhajlova, Sekerinski - 1997 |

36 |
Laws of data refinement
- Morris
- 1989
(Show Context)
Citation Context ...the abstraction relation is modelled by an abstraction command, and we say that S : \Sigma 7! \Sigma is data refined by S 0 : \Sigma 0 7! \Sigma 0 under abstraction command ff : \Sigma 0 7! \Sigma if =-=[1, 10, 24, 27]-=-: ff; SsS 0 ; ff: For a more comprehensive treatment of data refinement of predicate transformers see [1, 10, 24, 27]. Here we will simply look at how data refinement distributes through the fusion an... |

33 |
Decentralisation of Process Nets with Centralised Control
- Back, Kurki-Suonio
- 1983
(Show Context)
Citation Context ...y matched with other statements. These features turn out to be important for embedding programs in larger environments, and for composing programs as used, for example, in the action system formalism =-=[4]-=-. The existing choice operators in the refinement calculus can be used to model disjunction of program specifications, but not for conjunction of specifications. We generalise the definition of the pr... |

27 | The refinement calculator: Proof support for program refinement
- Butler, Grundy, et al.
- 1997
(Show Context)
Citation Context ...led as sets and predicate transformers as functions from sets to sets. Indeed this is the approach taken in [1, 25]. We prefer to work with higher order logic since it ties in with an on-going effort =-=[8]-=- that we have been involved in on providing tool support for program refinement using the HOL theorem-proving system [11]. Traditionally, reasoning about weakest precondition formulae tends to be carr... |

19 | Exploring summation and product operators in the refinement calculus
- Back, Butler
(Show Context)
Citation Context ...s for modelling concurrent systems. These applications were our initial motivation for studying the product and fusion operators. Some of the results here have appeared previously in an earlier paper =-=[3]-=-. However, this paper contains important new material, in particular, a comprehensive treatment of program variables, comparisons of our definitions with some alternative definitions and results on th... |

19 | Stepwise refinement of communicating systems
- Butler
- 1996
(Show Context)
Citation Context ...ialisations are demonic updates [I 1 ], [I 2 ], and their composition is simply [I 1sI 2 ]. The product operator provides a way of composing more general initialisations achieving the same effect. In =-=[7]-=-, a correspondence between action systems and Hoare's CSP [13] is described. Based on CSP parallel composition, a version of parallel composition of action systems is introduced in which commonly labe... |

19 |
Preordered Categories and Predicate Transformers
- Martin
- 1991
(Show Context)
Citation Context ...Michael Butler y August 21, 1997 Abstract 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. In this paper, we look more closely at the refinement-oriented properties of this operator and at its applications. We also generalise the de... |

13 |
Two-Categories and Program Structure: Data Types, Refinement Calculi, and Predicate Transformers
- Naumann
- 1992
(Show Context)
Citation Context ...August 21, 1997 Abstract 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. In this paper, we look more closely at the refinement-oriented properties of this operator and at its applications. We also generalise the definition of the p... |

12 | A tool for data refinement
- Ruksenas, Wright
- 1997
(Show Context)
Citation Context ...the abstraction relation is modelled by an abstraction command, and we say that S : \Sigma 7! \Sigma is data refined by S 0 : \Sigma 0 7! \Sigma 0 under abstraction command ff : \Sigma 0 7! \Sigma if =-=[1, 10, 24, 27]-=-: ff; SsS 0 ; ff: For a more comprehensive treatment of data refinement of predicate transformers see [1, 10, 24, 27]. Here we will simply look at how data refinement distributes through the fusion an... |

10 |
Refinement Concepts Formalised in Higher Order Logic
- Back, Wright
- 1990
(Show Context)
Citation Context ...operator turns out to be a special case of the fusion operator thus simplifying some of the proof effort. We use the higher-order logic formalisation of the refinement calculus of Back and von Wright =-=[6]-=-. Here, a refinement logic is built up in a layered fashion, starting with booleans, which are then lifted to predicates, and then to predicate transformers using pointwise extension. If possible, we ... |

10 |
The Cuppest Capjunctive Capping, and Galois
- Morgan
- 1994
(Show Context)
Citation Context ...es give an operator that preserves refinement. However, unlike our fusion operator, this operator does not allow the termination condition of one command to be assumed when refining the other. Morgan =-=[22]-=- has developed an operator 2 on predicate transformers such that 2S is the least-refined predicate transformer that is both universally conjunctive and refines S. It is easy to show for universally co... |

8 |
R.C.: Relational programming laws in the tree, list, bag, set hierarchy
- Hoogendijk, Backhouse
- 1994
(Show Context)
Citation Context ... to be a special case of the existing choice operators of the refinement calculus; to that extent it is not an extension of the existing calculus, unlike the fusion operator. Hoogendijk and Backhouse =-=[14]-=- have investigated products of relations and shown them to satisfy similar distributivity properties as our operator on predicate transformers. However, with a relation one has to choose between wheth... |

3 |
Adding specification constructs to the refinement calculus
- Ward
- 1993
(Show Context)
Citation Context ...uccessful outcome in their fusion, i.e., oe holds in p; q; dom P; and dom Q, but not in dom (PsQ). For those contradictory initial states, the fusion of both specifications behaves miraculously. Ward =-=[29]-=- has defined a conjunction combinator for specification statements where the combination behaves as abort when both specifications are contradictory. Thus, in Ward's case, a contradictory combination ... |

2 |
Categorical Semantics of Programming Languages
- Jifeng, Hoare
- 1990
(Show Context)
Citation Context ...embedding are also important for composing action systems. Of course, the idea of using categorical products as models of simultaneous execution in programming languages is not new (see, for example, =-=[15]-=-). Some of the theoretical results for the product operator may be found in [25] and [18], in particular, the preservation of junctivity. We have generalised these definitions to include the fusion op... |

1 |
Joining specification statements. Available from http://www.research.digital.com/SRC/personal/Rustan Leino/papers.html
- Leino, Manohar
- 1996
(Show Context)
Citation Context ... x + 1 fi S 2 = x := x 0 j x 0 6= x: It is easy to show that S 1 \Phi S 2 6 S 0 1 \Phi S 2 even though S 1sS 0 1 . These weaknesses rule \Phi out as a useful co-refinement operator. Leino and Manohar =-=[17]-=- have shown that the following operator does yield the the least conjunctive co-refinement of two specification statements: fp 1 g; [Q 1 ] 3 fp 2 g; [Q 2 ] b = fp 1sp 2 g; [ p 1 )Q 1sp 2 )Q 2 ]: Here ... |

1 |
A unified theory of data refinement. Abo Akademi
- Wright
- 1994
(Show Context)
Citation Context ...lation R 1 (written S 1 R1 S 0 1 ) and S 2 R S 0 2 , then S 1\Omega S 2 R1\Omega R2 S 0 1\Omega S 0 2 : However this approach does not allow us to work with the least data refinement of a product. In =-=[28]-=-, von Wright shows that the least data refinement of a conjunctive command can sometimes be disjunctive. He gives an example command whose only conjunctive data refinement is infeasible (i.e., magic) ... |