Isabelle/UTP: Mechanised Theory Engineering for Unifying Theories of Programming

Simon Foster 🌐, Frank Zeyda, Yakoub Nemouchi 📧, Pedro Ribeiro and Burkhart Wolff 📧

February 1, 2019

This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.

Abstract

Isabelle/UTP is a mechanised theory engineering toolkit based on Hoare and He’s Unifying Theories of Programming (UTP). UTP enables the creation of denotational, algebraic, and operational semantics for different programming languages using an alphabetised relational calculus. We provide a semantic embedding of the alphabetised relational calculus in Isabelle/HOL, including new type definitions, relational constructors, automated proof tactics, and accompanying algebraic laws. Isabelle/UTP can be used to both capture laws of programming for different languages, and put these fundamental theorems to work in the creation of associated verification tools, using calculi like Hoare logics. This document describes the relational core of the UTP in Isabelle/HOL.

License

BSD License

Topics

Session UTP-Toolkit

Session UTP

Depends on