Skip to main content

Correctness by Construction

Final Report Summary - CORCON (Correctness by Construction)

As software becomes ever more ubiquitous in our lives, the need to ensure it runs without error becomes ever more important. Restarting a phone is a simple, if inconvenient task; restarting an aeroplane in mid-flight is not an option! Correct by construction programming offers a revolutionary approach to program verification where programs can contain not just computations as is normal, but also logical proofs of the correctness of these computations. The simple fact that such programs compile provides formal, i.e. mathematical, guarantees of the correctness of the program. In particular, there is no need for post-hoc testing of software etc. Fundamental to the implicit marriage of computation and logic inherent within correct by construction programming is the choice of the right logical systems and concepts upon which programming languages ought to be built. This reflects the symbiotic relationship between logic, programming, and the design of programming languages—any attempt to sever this connection will diminish each component.

This project brings together internationally leading researchers from both inside Europe and outside Europe to work on exactly what logical structures are needed for correct by construction programming and how those logical structures can then by turned into concrete programming artefacts. In order to produce fundamental work which stands the test of time, we work not with specific programming languages but with mathematical abstractions of them. The recent development of dependently typed programming languages capable of supporting correct by construction programming makes this a very timely project, while the billions spent on software every year makes the potential impact of this project very significant.

Project work concentrated on foundations of correctness by construction. Research findings include theoretical contributions to proof theory, type theory, constructive set theory, constructive topology, homotopy type theory, categorical logic and complexity theory as well as practical case studies in programming languages for correct by construction programming and theoretical foundations of practical SAT and QBF solving. The success of the project lies not only in the results achieved, but also in the new connections established between these areas. Beneficiaries of our research include theoreticians in mathematics and computing as well as practitioners in software development and solving.

Our work led to 91 journal publications and 41 papers in conference proceedings, and was disseminated in more than 250 talks at international conferences, workshops and research seminars. Two project workshops were devoted to mathematical aspects for computation and attracted an international audience well beyond the institutions participating in the project. The project triggered a set of new international collaborations - many of which include early stage researchers - which will secure an enduring impact of the project in the scientific community.

The project involved partners in the UK (with the University of Leeds as coordinating institution), Germany, Italy, Sweden, India, Japan, New Zealand, Australia, Korea, and the US.

The project website is The contact details of the coordinator are:

Professor Olaf Beyersdorff
School of Computing
University of Leeds
Leeds, LS2 9JT, UK

Phone: +44 113 343 8319