Project description
Developing a deductive verification framework for OCaml programmes
Deductive software verification proposes to convert a computer programme’s correctness into a mathematical statement and then prove it. Software written in the OCaml language seems to be a particularly good target for verification: it is the language of choice for implementing sensible software; it is a multi-paradigm language, allowing one to write concise and elegant code; and it features a simple execution model and operational semantics. However, a mostly automated verification tool that can handle code directly written in OCaml does not yet exist. To address this problem, the EU-funded Cameleer project aims to develop a deductive verification framework with a focus on proof automation, which directly tackles the verification of OCaml-written programmes. This will result in a powerful, usable and mostly automated verification framework for the OCaml community, leading more programmers to include formal methods on their development routines.
Objective
Deductive software verification, a subject within the broader field of formal methods, proposes a very ambitious path: to turn the correctness of a computer program into a mathematical statement, and then prove it. This project aims to develop a deductive verification framework, with a clear focus on proof automation, that directly tackles the verification of OCaml-written programs.
OCaml seems to be particularly good target for verification. On one hand, it is the language of choice for the implementation of sensible software such as proof assistants, automated solvers, and compilers. On the other hand, OCaml is a multi-paradigm language, supporting both the functional and imperative paradigm, one can write clean, concise, type-safe, and efficient code. Yet, a verification tool that can handle hand-written code and is mostly automated does not currently exist. OCaml programmers must chose between proof automation, with the price of learning and programming in a verification-aware language, and then perform code extraction, or tools that require manual proof assistance.
The Cameleer project aims to remedy this situation by providing the tools and principles for the verification of OCaml programs. The main outcome of this project is a powerful, usable, and mostly automated verification framework for the OCaml-written code. This will be a major step towards making verification more accessible to OCaml programmers, even in case they are not verification experts. The Cameleer framework will feature a translation of OCaml programs annotated with specifications written in GOSPEL, a recently proposed specification language, to different intermediate verification languages, namely WhyML, Viper, and Coq. This coexistence of multiple intermediate verification infrastructures allows the devised framework to target the verification of a large subset of OCaml programs, while combining the strengths of each individual intermediate language to obtain better verification results.
Fields of science (EuroSciVoc)
CORDIS classifies projects with EuroSciVoc, a multilingual taxonomy of fields of science, through a semi-automatic process based on NLP techniques. See: https://op.europa.eu/en/web/eu-vocabularies/euroscivoc.
CORDIS classifies projects with EuroSciVoc, a multilingual taxonomy of fields of science, through a semi-automatic process based on NLP techniques. See: https://op.europa.eu/en/web/eu-vocabularies/euroscivoc.
- natural sciences computer and information sciences software
- social sciences sociology industrial relations automation
You need to log in or register to use this function
We are sorry... an unexpected error occurred during execution.
You need to be authenticated. Your session might have expired.
Thank you for your feedback. You will soon receive an email to confirm the submission. If you have selected to be notified about the reporting status, you will also be contacted when the reporting status will change.
Programme(s)
Multi-annual funding programmes that define the EU’s priorities for research and innovation.
Multi-annual funding programmes that define the EU’s priorities for research and innovation.
-
H2020-EU.1.3. - EXCELLENT SCIENCE - Marie Skłodowska-Curie Actions
MAIN PROGRAMME
See all projects funded under this programme -
H2020-EU.1.3.2. - Nurturing excellence by means of cross-border and cross-sector mobility
See all projects funded under this programme
Topic(s)
Calls for proposals are divided into topics. A topic defines a specific subject or area for which applicants can submit proposals. The description of a topic comprises its specific scope and the expected impact of the funded project.
Calls for proposals are divided into topics. A topic defines a specific subject or area for which applicants can submit proposals. The description of a topic comprises its specific scope and the expected impact of the funded project.
Funding Scheme
Funding scheme (or “Type of Action”) inside a programme with common features. It specifies: the scope of what is funded; the reimbursement rate; specific evaluation criteria to qualify for funding; and the use of simplified forms of costs like lump sums.
Funding scheme (or “Type of Action”) inside a programme with common features. It specifies: the scope of what is funded; the reimbursement rate; specific evaluation criteria to qualify for funding; and the use of simplified forms of costs like lump sums.
MSCA-IF-EF-ST - Standard EF
See all projects funded under this funding scheme
Call for proposal
Procedure for inviting applicants to submit project proposals, with the aim of receiving EU funding.
Procedure for inviting applicants to submit project proposals, with the aim of receiving EU funding.
(opens in new window) H2020-MSCA-IF-2019
See all projects funded under this callCoordinator
Net EU financial contribution. The sum of money that the participant receives, deducted by the EU contribution to its linked third party. It considers the distribution of the EU financial contribution between direct beneficiaries of the project and other types of participants, like third-party participants.
1099 085 Lisboa
Portugal
The total costs incurred by this organisation to participate in the project, including direct and indirect costs. This amount is a subset of the overall project budget.