Integrated Formal Methods

Volume 2999 of the series Lecture Notes in Computer Science pp 40-66

A Tutorial Introduction to Designs in Unifying Theories of Programming

  • Jim WoodcockAffiliated withComputing Laboratory, University of Kent
  • , Ana CavalcantiAffiliated withComputing Laboratory, University of Kent

* Final gross prices may vary according to local VAT.

Get Access


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 applying them to theories of imperative programming, including Hoare logic, weakest preconditions, and the refinement calculus.