Accelerate Literature Icon
Want to do a literature review? Try our new Literature Review workflow

Experiences from the European ProCoS Projects: Provably Correct Systems

  • Abstract
  • Literature Map
  • Similar Papers
Abstract
Translate article icon Translate Article Star icon

This paper presents the collaborative European ESPRIT ProCoS projects on “Provably Correct Systems”, and associated initiatives of the 1990s. The influence of the projects in the field of formal methods is also discussed. A general overview of the projects is provided, together with a number of reminiscences by those involved with the projects, including the influence on the subsequent careers of participants. The projects addressed the issues of connecting formal approaches at different connected levels of formality, including requirements, specification, and compilation down to machine code and even directly into hardware. The investigations were based on a representative subset of the programming language Occam, which was subsequently extended by elements indicative of particular problems of compilation, yet not found in Occam, and the related Transputer microprocessor. In practice, two of the most important and enduring results after the projects were Duration Calculus and Unifying Theories of Programming, both subfields of formal methods, with associated communities of researchers and practitioners.

Similar Papers
  • Book Chapter
  • Cite Count Icon 2
  • 10.1007/978-3-540-73210-5_31
Unifying Theories of Objects
  • Jul 2, 2007
  • Michael Anthony Smith + 1 more

We present an approach to modelling Abadi-Cardelli-style object calculi as Unifying Theories of Programming (UTP) designs. Here we provide a core object calculus with an operational small-step evaluation rule semantics, and a corresponding UTP model with a denotational relational predicate semantics. For clarity, the UTP model is defined in terms of an operand stack, which is used to store the results of sub-programs. Models of a less operational nature are briefly discussed. The consistency of the UTP model is demonstrated by a structural induction proof over the operations of the core object calculus. Overall, our UTP model is intended to provide facilities for encoding both object-based and class-based languages.

  • Research Article
  • 10.2139/ssrn.2541109
Mechanising Programs in Isabelle/HOL
  • Dec 22, 2014
  • SSRN Electronic Journal
  • Ankit Verma

Mechanising Programs in Isabelle/HOL

  • Book Chapter
  • Cite Count Icon 7
  • 10.1007/978-3-642-14521-6_10
Unifying Theories of Locations
  • Jan 1, 2010
  • Michael Anthony Smith + 1 more

We present a Unifying Theories of Programming (UTP) model of locations, where a location is either shareable or containable depending on whether its value can be dereferenced by a pointer. Our model of locations is similar to previous work on pointers within the UTP; the main difference is that the previous work on pointers only modelled shareable locations. We explain why containable locations (whose values must be copied rather than aliased) are useful, present an outline of our UTP model, and compare it to existing work on UTP. We hope to convince the reader that a general model of pointers within the UTP ought to be able to represent both shareable and containable locations.

  • Research Article
  • Cite Count Icon 11
  • 10.1016/j.entcs.2009.10.028
Connectors as Designs
  • Nov 1, 2009
  • Electronic Notes in Theoretical Computer Science
  • Sun Meng + 1 more

Connectors as Designs

  • Book Chapter
  • Cite Count Icon 7
  • 10.1007/978-3-319-52228-9_8
An Axiomatic Value Model for Isabelle/UTP
  • Jan 1, 2017
  • Frank Zeyda + 2 more

The Unifying Theories of Programming (UTP) is a mathematical framework to define, examine and link program semantics for a large variety of computational paradigms. Several mechanisations of the UTP in HOL theorem provers have been developed. All of them, however, succumb to a trade off in how they encode the value model of UTP theories. A deep and unified value model via a universal (data)type incurs restrictions on permissible value types and adds complexity; a value model directly instantiating HOL types for UTP values retains simplicity, but sacrifices expressiveness, since we lose the ability to compositionally reason about alphabets and theories. We here propose an alternative solution that axiomatises the value model and retains the advantages of both approaches. We carefully craft a definitional mechanism in the Isabelle/HOL prover that guarantees soundness.

  • Research Article
  • Cite Count Icon 27
  • 10.1016/j.scico.2011.04.002
Connectors as designs: Modeling, refinement and test case generation
  • May 3, 2011
  • Science of Computer Programming
  • Sun Meng + 5 more

Connectors as designs: Modeling, refinement and test case generation

  • Book Chapter
  • Cite Count Icon 4
  • 10.1007/978-3-319-56841-6_2
UTP by Example: Designs
  • Jan 1, 2017
  • Jim Woodcock + 1 more

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 that accounts for a theory of partial correctness. Second, we give a semantics based on the theory of precondition-postcondition pairs, known in UTP as designs. This paper should be read in conjunction with the UTP book by Hoare & He. Our contribution lies in the large number of examples we introduce.

  • Book Chapter
  • Cite Count Icon 23
  • 10.1007/978-3-642-16690-7_9
Unifying Theories in Isabelle/HOL
  • Jan 1, 2010
  • Abderrahmane Feliachi + 2 more

In this paper, we present various extensions of Isabelle/HOL by theories that are essential for several formal methods. First, we explain how we have developed an Isabelle/HOL theory for a part of the Unifying Theories of Programming (UTP). It contains the theories of alphabetized relations and designs. Then we explain how we have encoded first the theory of reactive processes and then the UTP theory for CSP. Our work takes advantage of the rich existing logical core of HOL. Our extension contains the proofs for most of the lemmas and theorems presented in the UTP book. Our goal is to propose a framework that will allow us to deal with formal methods that are semantically based, partly or totally, on UTP, for instance CSP and Circus. The theories presented here will allow us to make proofs about such specifications and to apply verified transformations on them, with the objective of assisting refinement and test generation.

  • Book Chapter
  • Cite Count Icon 5
  • 10.1007/978-3-319-70848-5_16
UTCP: Compositional Semantics for Shared-Variable Concurrency
  • Jan 1, 2017
  • Andrew Butterfield

We present a Unifying Theories of Programming (UTP) semantics of shared variable concurrency that is fully compositional. Previous work was based on mapping such programs, using labelling of decision points and atomic actions, to action systems, which themselves were provided with a UTP semantics. The translation to action systems was largely compositional, but their dynamic semantics was based on having all the actions collected together. Here we take a more direct approach, albeit inspired by the action-systems view, based on an abstract notion of label generation, that then exploits the standard use of substitution in UTP, to obtain a fully compositional semantics.

  • Conference Article
  • Cite Count Icon 7
  • 10.1109/tase.2013.18
Designs with Angelic Nondeterminism
  • Jul 1, 2013
  • Pedro Ribeiro + 1 more

Hoare and He's Unifying Theories of Programming (UTP) are a predicative relational framework for the definition and combination of refinement languages for a variety of programming paradigms. Previous work has defined a theory for angelic nondeterminism in the UTP; this is basically an encoding of binary multirelations in a predicative model. In the UTP a theory of designs (pre and postcondition pairs) provides, not only a model of terminating programs, but also a stepping stone to define a theory for state-rich reactive processes. In this paper, we 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 (CSP) and Circus.

  • Supplementary Content
  • Cite Count Icon 4
  • 10.18725/oparu-895
Algebraic foundations of the Unifying Theories of Programming
  • Dec 18, 2007
  • OPen Access Repositorium der Universität Ulm (OPARU) (Ulm University)
  • Walter Guttmann

Hoare and He’s Unifying Theories of Programming take a relational view on semantics. The meaning of a non-deterministic, imperative program is described by ‘designs’ composed of two relations. They represent terminating states and relate the initial and final values of the observable variables, respectively. Several ‘healthiness conditions’ are imposed by the theory to obtain properties found in practice. This work determines the structure of designs and modifies the theory to support nonstrict computations. It achieves these goals by identifying healthiness conditions and related axioms that involve unnecessary restrictions and subsequently removing them. The outcome provides a clear account of the algebraic foundations of the Unifying Theories of Programming. One of the results is a generalisation of designs by constructing them on semirings with ideals, structures having fewer axioms than relations. This clarifies the essential algebraic structure of designs, allows the reuse of existing mathematical theory and connects to further semantical approaches. The framework is extended by algebraic formulations of finite and infinite iteration, domain, pre-image, determinacy, invariants and convergence. Calculations and reasoning become simpler by the new, more abstract representation as is shown by applying the theory to investigate linear recursions. Another result is an extension of the Unifying Theories of Programming to deal with undefined values irrespective of non-termination. Besides being closer to practice, it forms the basis of a new theory of relations representing non-strict computations. They satisfy additional healthiness conditions that model dependence in computations in an elegant algebraic form. Programs can then be executed according to the principle of lazy evaluation, otherwise known from functional programming languages.

  • Research Article
  • Cite Count Icon 3
  • 10.1016/j.tcs.2018.10.008
Angelic processes for CSP via the UTP
  • Oct 15, 2018
  • Theoretical Computer Science
  • Pedro Ribeiro + 1 more

Angelic processes for CSP via the UTP

  • Book Chapter
  • Cite Count Icon 2
  • 10.1007/978-3-030-43520-2_17
A Unary Semigroup Trace Algebra
  • Jan 1, 2020
  • Pedro Ribeiro

The Unifying Theories of Programming (UTP) of Hoare and He promote the unification of semantics catering for different concerns, such as, termination, data modelling, concurrency and time. Process calculi like Open image in new window and CSP can be given semantics in the UTP using reactive designs whose traces can be abstractly specified using a monoid trace algebra. The prefix order over traces is defined in terms of the monoid operator. This order, however, is inadequate to characterise a broader family of timed process algebras whose traces are preordered instead. To accommodate these, we propose a unary semigroup trace algebra that is weaker than the monoid algebra. This structure satisfies some of the axioms of restriction semigroups and is a right P-Ehresmann semigroup. Reactive designs specified using it satisfy core laws that have been mechanised so far in Isabelle/UTP. More importantly, our results improve the support for unifying trace models in the UTP.

  • Book Chapter
  • Cite Count Icon 1
  • 10.1007/978-3-319-52228-9_6
UTP Semantics of Reactive Processes with Continuations
  • Jan 1, 2017
  • Gerard Ekembe Ngondi + 1 more

Based on the Unifying Theories of Programming (UTP) semantic framework, Hoare and He have defined (a means for constructing) a high-level language with labels and jumps, using the concept of continuations. The language permits placing labels at given points within a program and making jumps to these labels when desired. In their work, Hoare and He have limited themselves to the definition of continuations for sequential programs. This paper is concerned with the extension of that work to reactive programs. We first extend their results to include parallelism and Higher Order programs. This is achieved by designing a new control variable \(\mathcal {L}\) whose value follows the parallel structure of programs. We then proceed to define reactive (CSP) processes that contain the new control variable \(\mathcal {L}\), resulting in the theory of Reactive (Process) Blocks. The encapsulation operator defined by Hoare and He and which may also be used for hiding the control variable \(\mathcal {L}\) does readily provide a (functional) link between both UTP theories of Reactive Processes and of Reactive Blocks. The semantics are denotational.

  • Research Article
  • Cite Count Icon 6
  • 10.1016/j.scico.2010.02.010
Mechanical reasoning about families of UTP theories
  • Mar 17, 2010
  • Science of Computer Programming
  • Frank Zeyda + 1 more

Mechanical reasoning about families of UTP theories

Save Icon
Up Arrow
Open/Close
Notes

Save Important notes in documents

Highlight text to save as a note, or write notes directly

You can also access these Documents in Paperpal, our AI writing tool

Powered by our AI Writing Assistant