Encodages de la théorie des ensembles de TLA+ pour la preuve automatique - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2023

Encoding TLA+’s Set Theory for Automated Theorem Provers

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

Résumé

This thesis is about TLA+, a specification language based on temporal logic and untyped set theory. TLA+ is mainly used in the industry for the verification of concurrent and distributed systems. We focus on interactive theorem proving in the context of TLA+ , which is supported by the proof assistant TLAPS. This system manages the proof obligations that correspond to each step of the user's reasoning, and calls different backend automated provers to check these obligations. Currently the provers available are LS4 for the temporal fragment of the logic, Isabelle/TLA+, Zenon, and the SMT solvers Z3, CVC4 and veriT. All TLA+ obligations are encoded into the respective logics of the backend solvers by TLAPS. The SMT encoding, notably, combines a powerful preprocessing phase with type inference, simplifying obligations in an attempt to remove the TLA+ primitive symbols with no counterpart in SMT's language. It is natural to perform these simplifications, as TLA+'s set theory is much more expressive than what SMT is designed for, which is first-order logic with theories such as integer arithmetic. In principle, one could encode TLA+ directly by inserting the necessary axioms of set theory into the SMT problem. This approach was discarded in favor of preprocessing because SMT solvers do not cope well with quantified formulas, and the axiomatic theory of TLA+ involves many of them. Regardless, we must ensure that TLAPS does not encode invalid TLA+ obligations as valid problems, otherwise one would be able to prove faulty statements unknowingly. Unfortunately, the current version of the SMT encoding is too complex to be verified, which is why we decided to implement the naive, direct encoding of TLA+ , as a basis for future optimizations. This work has lead to two important contributions. The first is an encoding into higher-order logic, completed by the addition of a new backend for TLAPS: Zipperposition. A higher-order backend is a worthy addition to the system, because specific situations, in particular around induction, require higher-order reasoning to be carried out. The second contribution is a new version of the SMT encoding. This version extends the direct encoding with heuristics for instantiating the axioms of set theory. More precisely, we annotated our axioms with triggers. Triggers are a popular feature of SMT solvers that allow users to guide the instantiation module of the solvers for custom axiomatizations. They allow us to extend the encoding without compromising its soundness, as they do not alter the semantics of formulas. Surprisingly, our encoding achieves performances comparable to the previous version, despite its simpler design.
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é rejetté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'il 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.
Fichier principal
Vignette du fichier
thesis.pdf (1.59 Mo) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Licence : CC BY - Paternité

Dates et versions

tel-04408971 , version 1 (22-01-2024)

Licence

Paternité

Identifiants

  • HAL Id : tel-04408971 , version 1

Citer

Antoine Defourné. Encodages de la théorie des ensembles de TLA+ pour la preuve automatique. Informatique [cs]. Université de Lorraine, 2023. Français. ⟨NNT : 2023LORR0263⟩. ⟨tel-04408971⟩
30 Consultations
18 Téléchargements

Partager

Gmail Facebook X LinkedIn More