English

Data-Mining and Refactoring for arithmetic in Coq

Coq is a proof assistant that is based on the Curry-Howard isomorphism. This means that each proof in the system is represented by a term. For the moment, these proof terms are mainly used internally: alll the trust in the Coq system relies in the proof checker that typechecks these proof objects.

The goal of this internship is to show that the information that are in these proof terms can be used for other purposes. For this, we are going to concentrate on all the arithmetic statements that have been proved in Coq. Many contributions in the Coq libraries deal with arithmetic statements: they come from different developpers at different period of times. The idea is to build some tools to explore arithmetic proof terms in order to extract pertinent information that could be used for refactoring proof developments.

Requirements for this internship is an interesting in sofware engineering and functional programming.


Français

Exploration et reorganisation pour l'arithmetique dans Coq

Coq est un assistant à la preuve qui est fondé sur l'isomorphisme de Curry-Howard. Ceci signifie que chaque preuve dans le système est représenté par un objet. Pour le moment, ces objets preuves ne sont utilisés que de façon interne: la sûreté du système Coq est concentrée dans le vérificateur de preuve qui retype ces objets de preuve pour en vérifier la correction.

Le but de ce stage est de montrer que les informations contenues dans ces objets preuve peuvent être utilisées à d'autres fins. Pour cela, nous nous concentrerons aux énoncés arithmétiques prouvés en Coq. Dans les contributions de Coq, il y a beaucoup de développements qui concernent l'arithmétique: ils proviennent de differents auteurs à différents époques. L'idée de ce stage est de construire des outils d'analyse des preuves des énoncés arithmétiques pour en extraire des informations pertinentes qui pourront ensuite être utilisés pour la réorganisation de développements formels.

Les prérequis pour ce stage sont un intérêt pour le génie logiciel et la programmation fonctionnelle.


Laurent Théry