Thèse soutenue

Encodages de la théorie des ensembles de TLA+ pour la preuve automatique

FR  |  
EN
Auteur / Autrice : Rosalie Defourné
Direction : Stephan MerzPascal Fontaine
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 07/11/2023
Etablissement(s) : Université de Lorraine
Ecole(s) doctorale(s) : École doctorale IAEM Lorraine - Informatique, Automatique, Électronique - Électrotechnique, Mathématiques de Lorraine (1992-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire lorrain de recherche en informatique et ses applications
Jury : Président / Présidente : Catherine Dubois
Examinateurs / Examinatrices : Stephan Merz, Pascal Fontaine, Aurélie Hurault, David Delahaye, Jasmin Blanchette, Chantal Keller, Guillaume Bonfante
Rapporteurs / Rapporteuses : Aurélie Hurault, David Delahaye

Résumé

FR  |  
EN

Cette thèse porte sur TLA⁺, un langage de spécification fondé sur la logique temporelle et la théorie des ensembles non typée. TLA⁺ est principalement utilisé dans l'industrie pour vérifier des systèmes concurrents et distribués. On s'intéresse en particulier à la preuve interactive de théorèmes TLA⁺, qui peut être réalisée avec l'outil TLAPS. Cet assistant de preuve emploie une batterie de prouveurs automatiques externes afin de vérifier les obligations de preuve qui correspondent aux étapes de raisonnement de l'utilisateur. Parmi les prouveurs disponibles, on trouve LS4 pour la logique temporelle, Isabelle/TLA⁺, Zenon, et des solveurs SMT dont Z3, CVC4 et veriT. Divers encodages de TLA⁺ sont implémentés pour que TLAPS traduise les obligations vers les logiques d'entrée de chaque prouveur. L'encodage SMT, en particulier, est fondé sur un puissant système de réécriture, complété par un mécanisme d'inférence de types, permettant à TLAPS de simplifier les obligations de façon considérable avant l'envoi vers SMT. Il est naturel de chercher à simplifier les obligations : la théorie des ensembles de TLA⁺ est bien plus expressive que la logique de SMT, qui comprend la logique du premier ordre et certaines théories, par exemple l'arithmétique des entiers. Il est possible d'encoder directement TLA⁺ en fournissant à SMT tous les axiomes qui spécifient les ensembles ; mais cette approche a auparavant été rejetée, car les axiomes sont des formules avec quantificateurs, et SMT ne peut gérer ces quantificateurs efficacement. Néanmoins, il est important de s'assurer que les encodages de TLAPS n'introduisent pas d'erreur dans la traduction, autrement il serait possible de prouver de faux résultats avec l'outil. L'encodage SMT actuel est trop complexe pour être vérifié, nous avons donc entrepris d'implémenter l'encodage direct et naïf de TLA⁺, dans l'optique de l'optimiser ensuite. Ce travail a abouti à deux contributions. La première est l'implémentation d'un encodage vers la logique d'ordre supérieure et l'ajout d'un nouveau prouveur à TLAPS : Zipperposition. Il est intéressant de disposer d'un tel prouveur, car une petite partie des obligations en TLA⁺ impliquent des étapes d'ordre supérieur. Cela se produit particulièrement souvent autour des preuves par induction. La seconde contribution est une refonte de l'encodage SMT, cette fois basée sur l'encodage direct mais optimisée avec des heuristiques pour instancier les axiomes de la théorie des ensembles. Il s'agit de la technique des triggers, populaire parmi les utilisateurs de SMT, et qui nous permet en quelque sorte d'implémenter des procédures d'instanciation selon nos besoins. L'intérêt majeur des triggers pour notre approche est qu'ils s'ajoutent à la traduction directe sans en modifier le sens, donc sans compromettre la sûreté de l'encodage. De façon assez surprenante, notre encodage mène à des résultats aussi bons que le précédent.