Une biliothèque de graphes vérifiée - outils et techniques pour la vérification des programmes modulaires d'ordre supérieur

par Mário Parreira Pereira

Projet de thèse en Informatique

Sous la direction de Jean-Christophe Filliâtre.

Thèses en préparation à Paris Saclay , dans le cadre de Sciences et Technologies de l'Information et de la Communication , en partenariat avec LRI - Laboratoire de Recherche en Informatique (laboratoire) , VALS - Vérification d'Algorithmes, Langages et Systèmes (equipe de recherche) et de Université Paris-Sud (établissement de préparation de la thèse) depuis le 01-05-2015 .


  • Résumé

    Dans cette thèse, on se propose de vérifier une grosse bibliothèque de programmation. Nous choisissons une bibliothèque de graphes, car c'est en même temps un logiciel utile, large et complexe. Notre cible sera la bibliothèque OCamlgraph, une bibliothèque de graphes développée pour le langage de programmation OCaml. On a un double intérêt à choisir OCaml: en premier, il y a un grand nombre d'outils pour la vérification du code OCaml, notamment Why3, Coq et CFML; en deuxième, OCaml est le langage de choix pour la mise en oeuvre de compilateurs et outils d'analyse statique, donc il est logique d'écrire de tels outils sur la base de bibliothèques vérifiées. Pour réussir à prouver en toute généralité une bibliothèque de graphes, nous envisageons des défis intéressants tels que la preuve de programmes d'ordre supérieur avec des effets; nous devons traiter la modularité; et la spécification logique des structures de données et algorithmes de graphes.

  • Titre traduit

    A verified graphe library - tools and techniques for the verification of modular higher order programs


  • Résumé

    During this PhD thesis we propose the verification of a large programming library. We choose to verify a graph library, for it is at the same time a useful, large, and complex piece of software. Our target library will be OCamlGraph, a graph library developed for the OCaml programming language. Our interest in OCaml is two-fold: first, there exist several tools for deductive verification of OCaml code, namely Why3, Coq, and CFML; second, OCaml is a language of choice to implement compilers or static analysis tools and it would make sense to build such tools on top of verified libraries. To fully verify a graph library, we anticipate many interesting challenges such as the proof of higher-order, effectful code; we will have to deal with modularity; and the logical specification of graph data structures and algorithms.