Thèse soutenue

La Méthode Data-abstraction : une technique d’abstraction de structures de données non-bornées dans des clauses de Horn, le cas des tableaux

FR  |  
EN
Auteur / Autrice : Julien Braine
Direction : Laure Gonnord
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 11/05/2022
Etablissement(s) : Lyon
Ecole(s) doctorale(s) : École doctorale en Informatique et Mathématiques de Lyon (Lyon ; 2009-....)
Partenaire(s) de recherche : établissement opérateur d'inscription : École normale supérieure de Lyon (2010-...)
Laboratoire : Laboratoire de l'informatique du parallélisme (Lyon ; 1988-....) - Compilation et Analyse, Logiciel et Matériel
Jury : Président / Présidente : Damien Pous
Examinateurs / Examinatrices : Laure Gonnord, Damien Pous, Antoine Miné, Mihaela Sighireanu, Martin Bodin, Jérôme Feret, David Monniaux
Rapporteurs / Rapporteuses : Antoine Miné, Mihaela Sighireanu

Mots clés

FR  |  
EN

Mots clés contrôlés

Résumé

FR  |  
EN

Prouver des propriétés sur des programmes utilisant des structures de données telles que des tableaux nécessite souvent des invariants universellement quantifiés, par exemple, "tous les éléments avec indice plus petit que i sont non nuls". Au lieu de manipuler directement les programmes, nous utilisons des clauses de Horn, un format de plus en plus courant pour exprimer les propriétés de sécurité des programmes. Dans ce manuscrit, nous proposons un schéma d'abstraction général opérant sur des formules de Horn pour des structures de données non bornées. L'idée principale est d'utiliser l'abstraction pour simplifier les structures de données en types plus simples tels que les entiers. Comme une telle simplification perd de l’information, toutes les propriétés ne peuvent pas être prouvées après abstraction. Il est donc essentiel de choisir la bonne abstraction pour le problème donné. Notre contribution est d'avoir créé une méthode générale où les structures de données et l'abstraction à appliquer sont paramétrées. La spécificité de cette méthode est l'attention portée à une propriété que nous nommons complétude relative et qui spécifie que l’algorithme implémente exactement la simplification induite par l'abstraction. Cette approche contraste avec les travaux antérieurs qui utilisent principalement des benchmarks pour prouver la validité de la technique au lieu d'analyser si la technique vérifie une propriété similaire. Bien que le cadre proposé soit général et puisse théoriquement gérer des structures de données telles que des arbres et graphes, nous nous sommes concentrés sur une abstraction spécifique de tableaux, déjà étudiée dans la littérature et appelée abstraction de cellule. Cette abstraction est particulièrement intéressante car elle peut gérer la plupart des algorithmes de conteneur. La contribution de ce manuscrit peut être résumée en trois points. Tout d'abord, nous démontrons que notre méthode, en combinaison avec l'abstraction de cellule, permet d'exprimer, et donc de gérer, de nombreuses techniques existantes. Deuxièmement, nous prouvons qu'une de ces techniques existantes satisfait le propriété de complétude relative et une extension de celle-ci pour gérer une classe plus large de programmes. Troisièmement, même si nous nous sommes focalisés sur les tableaux, les définitions, algorithmes et théorèmes que nous fournissons sont paramétrés avec l'abstraction souhaitée et donne les bases pour de futures abstractions d'autres structures de données.