## Periodic Report Summary 1 - CORCON (Correctness by Construction)

Summary description of project objectives:

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 proposal 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 proposal, while the billions spent on software every year makes the potential impact of this proposal very significant.

Description of the work performed since the beginning of the project:

The work has been organised into 7 workpackages (WP), which address individual topics and areas related to the overall project objectives. Due to the interdisciplinary nature of this project at the interface of mathematics, computing and applications, these 7 WPs are highly interlinked.

WP1 Proof Theory, Type Theory, and Constructive Set Theory

WP2 Constructive Topology and Analysis

WP3 Homotopy Type Theory

WP4 Categorical Logic

WP5 Programming Languages for Correct by Construction Programming

WP6 Correct by Construction programs over continuous data

WP7 Correct by Construction Programs with Limited Resources

There has been significant research progress on each individual WP as witnessed by a number of scientific visits, publications, and dissamination activities (cf. the attachement for a full account on the outcomes so far).

Description of the main results achieved so far:

This project draws together foundational research in logic and computation (WPs 1-4, WP7) with more applied topics such as software verification (WPs 5+6) and solving (WP7). Significant progress has been made on both fronts with strong connections emerging between the areas. We highlight examplary achievements so far. A more detailed account of our progress is contained in Section 6 of this report.

Categorical logic was used within the project to present abstract structure which is suitable to present models of constructive mathematics and computations and to study. For instance, categories of groupoids in a realizability environment have been studied to analyse the possibility to produce models of Homotopy Type Theory.

The elimination of classical choice and related non-constructive principles from otherwise constructive proofs is difficult and complex, but important progress has been made: Schuster and Wessel proved a general extension theorem for complete partial orders that abstracts from different typical applications of Zorn's Lemma in Algebra and may provide the key to a constructive understanding of such, prima facie non-constructive applications.

Rathjen investigated a famous theorem by Barr asserting that geometric implications deduced from a geometric theory via classical logic also have intuitionistic proofs, debunking claims on the elimination of the axiom of choice via Barr's theorem.

Gambino inspected validity proofs of Voevodsky’s axiom in simplicial sets, in order to determine the feasibility of a constructive proof. Schuster obtained an inductive proof of Scott's conservativity result for entailment relations.

Beyersdorff in a number of collaborations developed the foundations of proof complexity for Quantified Boolean formulas, with strong connections to circuit complexity, practical solving, and intuitionistic logic.

Benini and Gobbo analysed the knowledge needed to understand a computer program within the philosophy of information.

The project website is maintained by Dr Marco Benini (Insubria) and contains details about the project goals, achievements, secondment, as well as internal information. The website is available at http://corcon.net/about/

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 proposal 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 proposal, while the billions spent on software every year makes the potential impact of this proposal very significant.

Description of the work performed since the beginning of the project:

The work has been organised into 7 workpackages (WP), which address individual topics and areas related to the overall project objectives. Due to the interdisciplinary nature of this project at the interface of mathematics, computing and applications, these 7 WPs are highly interlinked.

WP1 Proof Theory, Type Theory, and Constructive Set Theory

WP2 Constructive Topology and Analysis

WP3 Homotopy Type Theory

WP4 Categorical Logic

WP5 Programming Languages for Correct by Construction Programming

WP6 Correct by Construction programs over continuous data

WP7 Correct by Construction Programs with Limited Resources

There has been significant research progress on each individual WP as witnessed by a number of scientific visits, publications, and dissamination activities (cf. the attachement for a full account on the outcomes so far).

Description of the main results achieved so far:

This project draws together foundational research in logic and computation (WPs 1-4, WP7) with more applied topics such as software verification (WPs 5+6) and solving (WP7). Significant progress has been made on both fronts with strong connections emerging between the areas. We highlight examplary achievements so far. A more detailed account of our progress is contained in Section 6 of this report.

Categorical logic was used within the project to present abstract structure which is suitable to present models of constructive mathematics and computations and to study. For instance, categories of groupoids in a realizability environment have been studied to analyse the possibility to produce models of Homotopy Type Theory.

The elimination of classical choice and related non-constructive principles from otherwise constructive proofs is difficult and complex, but important progress has been made: Schuster and Wessel proved a general extension theorem for complete partial orders that abstracts from different typical applications of Zorn's Lemma in Algebra and may provide the key to a constructive understanding of such, prima facie non-constructive applications.

Rathjen investigated a famous theorem by Barr asserting that geometric implications deduced from a geometric theory via classical logic also have intuitionistic proofs, debunking claims on the elimination of the axiom of choice via Barr's theorem.

Gambino inspected validity proofs of Voevodsky’s axiom in simplicial sets, in order to determine the feasibility of a constructive proof. Schuster obtained an inductive proof of Scott's conservativity result for entailment relations.

Beyersdorff in a number of collaborations developed the foundations of proof complexity for Quantified Boolean formulas, with strong connections to circuit complexity, practical solving, and intuitionistic logic.

Benini and Gobbo analysed the knowledge needed to understand a computer program within the philosophy of information.

The project website is maintained by Dr Marco Benini (Insubria) and contains details about the project goals, achievements, secondment, as well as internal information. The website is available at http://corcon.net/about/