Skip to main content
Aller à la page d’accueil de la Commission européenne (s’ouvre dans une nouvelle fenêtre)
français français
CORDIS - Résultats de la recherche de l’UE
CORDIS
CORDIS Web 30th anniversary CORDIS Web 30th anniversary

Verified Extraction from Coq to OCaml with GADTs

Description du projet

Vérification de l’extraction de code de Coq vers des langages à usage général

Coq est un système formel de gestion des preuves. L’une de ses applications type est la vérification de l’exactitude des logiciels critiques. Bien qu’un vérificateur de types pour Coq ait récemment été vérifié par le biais d’une preuve mathématique vérifiée par machine, l’extraction d’OCaml depuis Coq fait toujours partie de la base de calcul sécurisée. Financé par le programme Actions Marie Skłodowska-Curie, le projet Coqaml réduira encore davantage la base de calcul sécurisée pour les programmes extraits en fournissant une preuve de l’exactitude vérifiée par machine. Les chercheurs mettront en œuvre l’extraction de Coq comme un module d’extension MetaCoq vérifié mécaniquement, qui garantit que les programmes d’OCaml extraits se comportent exactement comme la fonction Coq spécifiée.

Objectif

The Coq proof assistant is a popular tool to verify the correctness of security-critical software. The CompCert C compiler, some implementations of blockchain languages, and the implementation of the P-256 elliptic curve in Google’s BoringSSL library are all OCaml programs obtained by extraction from Coq functions.

While a type checker for Coq has recently been verified via a machine-checked mathematical proof based on the MetaCoq project for verified meta-programming, the extraction process from Coq to OCaml is still part of the trusted computing base (TCB).

The Coqaml project will minimise the TCB for extracted programs even further by also providing a machine-checked correctness proof for the extraction mechanism to OCaml. Under the supervision of Nicolas Tabareau, head of the Inria Gallinette team in Nantes, the experienced researcher (ER) will implement Coq's extraction as mechanically verified MetaCoq-plugin, obtaining the guarantee that extracted OCaml programs behave exactly like the Coq function specified.

In order to be usable in industrial applications, Coqaml will include a novel extraction targeting generalized algebraic datatypes (GADTs) in OCaml. The project includes a secondment of the ER to Nomadic Labs in Paris, who require GADTs as target for Coq's extraction. The intermediate semantic correctness proof for type and proof erasure, allowing axioms like functional extensionality or proof irrelevance in verified programs, can also be exploited in other extraction projects like the CertiCoq compiler from Coq to C code.

The Coqaml project is interdisciplanary by design, spanning logic, type theory, programming languages, and compilers. The density of some of the world’s leading experts on Coq and type theory in the Gallinette team and the expertise at Nomadic Labs will ensure that the environment is ideal for the success of the Coqaml project and the most beneficial development of the ER, greatly enhancing his future career prospects.

Champ scientifique (EuroSciVoc)

CORDIS classe les projets avec EuroSciVoc, une taxonomie multilingue des domaines scientifiques, grâce à un processus semi-automatique basé sur des techniques TLN. Voir: https://op.europa.eu/en/web/eu-vocabularies/euroscivoc.

Vous devez vous identifier ou vous inscrire pour utiliser cette fonction

Coordinateur

INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET AUTOMATIQUE
Contribution nette de l'UE
€ 184 707,84