A Tutorial Introduction to CSP in Unifying Theories of Programming
@inproceedings{Cavalcanti2004ATI, title={A Tutorial Introduction to CSP in Unifying Theories of Programming}, author={Ana Cavalcanti and Jim Woodcock}, booktitle={Pernambuco Summer School on Software Engineering}, year={2004} }
In their Unifying Theories of Programming (UTP), Hoare & He use the alphabetised relational calculus to give denotational semantics to a wide variety of constructs taken from different programming paradigms. A key concept in their programme is the design: the familiar precondition-postcondition pair that describes the contract between a programmer and a client. We give a tutorial introduction to the theory of alphabetised relations, and its sub-theory of designs. We illustrate the ideas by…
102 Citations
Unifying Theories of Programming in Isabelle
- Computer ScienceICTAC Training School on Software Engineering
- 2013
This is a tutorial introduction to the two most basic theories in Hoare & He's Unifying Theories of Programming and their mechanisation in the Isabelle interactive theorem prover. We describe the…
UTP by Example: Designs
- Computer ScienceSETSS
- 2016
We present a tutorial introduction to the semantics of a basic nondeterministic imperative programming language in Unifying Theories of Programming (UTP). First, we give a simple relational semantics…
Unifying Theories of Objects
- Computer ScienceIFM
- 2007
This work provides a core object calculus with an operational small-step evaluation rule semantics, and a corresponding UTP model with a denotational relational predicate semantics, intended to provide facilities for encoding both object-based and class-based languages.
Angelic nondeterminism in the unifying theories of programming
- Computer ScienceFormal Aspects of Computing
- 2006
This paper proposes the unification of a model of binary multirelations, which is isomorphic to the monotonic predicate transformers model and can express angelic and demonic nondeterminism.
Designs with Angelic Nondeterminism
- Computer Science2013 International Symposium on Theoretical Aspects of Software Engineering
- 2013
This paper cast the angelic nondeterminism theory of the UTP as a theory of designs with the long-term objective of providing a model for well established refinement process algebras like Communicating Sequential Processes and Circus.
A Theory of Pointers for the UTP
- Computer ScienceICTAC
- 2008
This paper adds to the UTP a theory of pointers and records that provides a model for objects and sharing in languages like Java and C++, based on the hierarchical addressing scheme used to refer to record fields in conventional languages.
Unifying theories in ProofPower-Z
- Computer ScienceFormal Aspects of Computing
- 2007
This paper presents a mechanisation of part of Hoare and He’s unification work in a theorem prover, ProofPower-Z; the theories of alphabetised relations, designs, reactive and CSP processes are in the scope of this paper.
Pointers and Records in the Unifying Theories of Programming
- Computer ScienceUTP
- 2006
A theory of pointers and records that provides a representation for objects and sharing in languages like Java and C++ and links it with the theory of designs, providing a foundation for reasoning about total correctness of pointer-based sequential programs.
Isabelle/UTP: Mechanised Theory Engineering for Unifying Theories of Programming
- Computer ScienceArch. Formal Proofs
- 2019
This document provides a semantic embedding of the alphabetised relational calculus in Isabelle/HOL, including new type definitions, relational constructors, automated proof tactics, and accompanying algebraic laws.
19 References
A Tutorial Introduction to Designs in Unifying Theories of Programming
- Computer ScienceIFM
- 2004
This work gives a tutorial introduction to the theory of alphabetised relations, and its sub-theory of designs, and illustrates the ideas by applying them to theories of imperative programming, including Hoare logic, weakest preconditions, and the refinement calculus.
A Theoretical Basis for Stepwise Refinement and the Programming Calculus
- Computer ScienceSci. Comput. Program.
- 1987
The Theory and Practice of Concurrency
- Computer Science
- 1997
This book provides a detailed foundation for working with CSP, using as little mathematics as possible, and introduces the ideas behind operational, denotational and algebraic models of CSP.
A Refinement Strategy for Circus
- Computer ScienceFormal Aspects of Computing
- 2003
A refinement strategy for Circus is presented, which is the combination of Z, CSP, and the refinement calculus in the setting of Hoare and He’s unifying theories of programming, which provides a coherent technique for the stepwise refinement of concurrent and distributed programs involving rich data structures.
A Semantic Foundation for TCOZ in Unifying Theories of Programming
- Computer ScienceFME
- 2003
A novel unified semantic model of the channel based synchronisation and sensor/actuator based asynchronisation in T COZ is presented and will be used as a reference document for developing tools support for TCOZ and as a semantic foundation for proving soundness of those tools.
Recasting Hoare and He's Unifying Theory of Programs in the Context of General Correctness
- Computer ScienceIWFM
- 2001
The single-predicate model of sequential programs is reviewed, and it is shown how it can be recast to overcome its inability always to provide an adequate description of the required behaviour of a sequential program which implements a partial decision procedure.
Towards a Time Model for Circus
- Computer ScienceICFEM
- 2002
An abstraction function is created that maps the timed model to the original model of Circus to create a relation between the two models and allows the exploration of some properties of the timed semantics in the untimed model.
Refinement Calculus: A Systematic Introduction
- Computer Science
- 1998
The book addresses specific issues related to program refinement, such as implementing specification statements, making refinements in context, and transforming iterative structures in a correctness preserving way.
The Semantics of Circus
- Computer ScienceZB
- 2002
The language of Circus is described and the formalisation of its model is described in Hoare & He's unifying theories of programming.
Programming from specifications
- Computer SciencePrentice Hall International Series in computer science
- 1990
This second edition features substantial restructuring of earlier material, streamlining the introduction of programming language features; simplified presentation of procedures, parameters and recursion; an expanded chapter on data refinement, giving the much simpler laws that specialize to functional abstractions.