Skip to main content
European Commission logo
italiano italiano
CORDIS - Risultati della ricerca dell’UE
CORDIS
CORDIS Web 30th anniversary CORDIS Web 30th anniversary

Verified Extraction from Coq to OCaml with GADTs

Descrizione del progetto

Verificare l’estrazione di codice da Coq per i linguaggi di uso generale

Coq è un sistema formale per la gestione di dimostrazioni. Una delle sue applicazioni comuni consiste nella verifica della correttezza del software critico. Nonostante sia stato recentemente controllato un type checker per Coq tramite una dimostrazione matematica verificata automaticamente, l’estrazione di Ocaml da Coq fa ancora parte della base di calcolo fidata. Il progetto Coqaml, finanziato dal programma di azioni Marie Skłodowska-Curie, ridurrà ulteriormente al minimo la base di calcolo fidata per i programmi estratti fornendo una prova di correttezza verificata dalla macchina. I ricercatori attueranno l’estrazione di Coq come un plugin di MetaCoq verificato a livello meccanico, garantendo che i programmi Ocaml estratti si comportino esattamente come la funzione Coq specificata.

Obiettivo

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.

Coordinatore

INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET AUTOMATIQUE
Contribution nette de l'UE
€ 184 707,84
Indirizzo
DOMAINE DE VOLUCEAU ROCQUENCOURT
78153 Le Chesnay Cedex
Francia

Mostra sulla mappa

Regione
Ile-de-France Ile-de-France Yvelines
Tipo di attività
Research Organisations
Collegamenti
Costo totale
€ 184 707,84