Logiques pour raisonner sur la correction de systèmes distribués reconfigurables
Auteur / Autrice : | Lucas Bueri |
Direction : | Radu Iosif, Marius Bozga |
Type : | Projet de thèse |
Discipline(s) : | Informatique |
Date : | Inscription en doctorat le Soutenance le 12/12/2024 |
Etablissement(s) : | Université Grenoble Alpes |
Ecole(s) doctorale(s) : | École doctorale Mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 1995-....) |
Partenaire(s) de recherche : | Laboratoire : VERIMAG |
Jury : | Président / Présidente : Mihaela Sighireanu |
Examinateurs / Examinatrices : Radu Iosif, Parthasarathy Madhusudan, Marius Bozga, Nicolas Peltier, Anca Muscholl, Stephane Demri | |
Rapporteur / Rapporteuse : Parthasarathy Madhusudan, Stephane Demri |
Mots clés
Mots clés libres
Résumé
Le calcul distribué est massivement utilisé dans de nombreux systèmes numériques vitaux, tels les centres de données ou les réseaux d'information. Tous ces systèmes nécessitent des modifications régulières, pour la maintenance, la correction d'erreurs, le développement ou les problèmes de routage. Cependant, il peut être pénalisant voire impossible d'interrompre le système, ce qui motive l'utilisation de systèmes dynamiquement reconfigurables. La reconfiguration dynamique est une source majeure d'erreurs, pouvant endommager le système entier si réalisée incorrectement. Le besoin de modélisation et vérification des systèmes distribués reconfigurables est primordial ; c'est ce que nous abordons ici. Les systèmes distribués considérés suivent une structure similaire aux hypergraphes : un ensemble de composantes (éléments d'un univers) et d'interactions (tuples de relation entre composantes). Un exemple simple mais classique sont les chaînes : suites finies de composantes, chacune reliée au suivant par une relation binaire. En parallèle d'un comportement distribué (comme un jeton bougeant le long de la chaîne), il nous faut exécuter un programme de reconfiguration (comme raccourcir la chaîne). Une preuve de cette procédure permet d'éviter des états bloquants ou dangereux (comme perdre le jeton). Les langages de structures sont décrits par une logique de séparation sur les relations (SLR), à l'aide d'un ensemble de définitions inductives (SID). Atomes de relation et prédicats sont combinés par la conjonction de séparation (issu de la logique de séparation standard), interprété comme une composition localement disjointe des modèles (les relations des systèmes composés doivent être disjointes). Un système satisfait une formule lorsque les tuples de relation apparaissant dans la formule sont exactement ceux présents dans la système. Cela permet des propriétés locales intéressantes, augmentant grandement les performances des problèmes de vérification décisionnels, comparé à la logique monadique du second ordre (MSO). Cette thèse apporte dans un premier temps une preuve de décidabilité du problème de satisfaisabilité en SLR. Les configurations sont abstraites en base tuples (plus proches de la définition logique), permettant de vérifier la satisfaction, ainsi que d'autres problèmes reliés. Néanmoins, le problème d'implication logique (entailment) tout aussi crucial requiert des contraintes supplémentaires. La largeur arborescente (treewidth) d'une structure évalue sa similarité à un arbre. La seconde contribution est une procédure de décision pour vérifier si une formule SLR décrit un langage à largeur arborescente bornée. On s'appuiera ici sur le fait que chaque modèle peut être décrit comme fusion de modèles canoniques (obtenus par une interprétation injective), la largeur arborescente de ces derniers étant toujours bornée. La définissabilité en MSO apporte de bonnes propriétés sur les graphes, notamment pour décider l'implication logique sur des structures riches de taille ou degré non borné. Pour caractériser les SIDs exprimables en MSO, on utilisera le théorème de translation inverse pour les transductions MSO-définissables, sur l'opérateur de fission (l'inverse de la fusion de structures). La dernière contribution est une application au processus de reconfiguration (changer les composantes et interactions) en parallèle aux actions chaotiques (le comportement distribué continu du système). On étudie la décidabilité et complexité du problème d'invariance chaotique. La preuve est basée sur un transducteur d'arbres, pour représenter les actions chaotiques dans le monde des automates, exploitant ainsi des résultats connus. L'objectif est de permettre une preuve à la Hoare pour certifier automatiquement la correction d'un processus de reconfiguration malgré la présence d'interactions de communication entremêlées.