10 research outputs found
Proposition of an action layer for electrum
Electrum is an extension of Alloy that adds (1) mutable signatures and fields to the modeling layer; and (2) connectives from linear temporal logic (with past) and primed variables à la TLA+ to the constraint language. The analysis of models can then be translated into a SAT-based bounded model-checking problem, or to an LTL-based unbounded model-checking problem. Electrum has proved to be useful to model and verify dynamic systems with rich configurations. However, when specifying events, the tedious and sometimes error-prone handling of traces and frame conditions (similarly as in Alloy) remained necessary. In this paper, we introduce an extension of Electrum with a so-called “action” layer that addresses these questions.This work is financed by the ERDF - European Regional Development Fund - through the Operational Programme for Competitiveness and Internationalisation - COMPETE 2020 - and by National Funds through the Portuguese funding agency, FCT - Fundação para a Ciência e a Tecnologia, within project POCI-01-0145-FEDER016826, and the French Research Agency project FORMEDICIS ANR-16-CE25-000
Event extension of a lightweight formal method and application to analyzing Chord distributed protocol
Cette étude concerne l’utilisation de la logique du premier ordre et la logique temporelle linéaire pour la spécification et la vérification des systèmes dynamiques ayant des structures riches. Elle concerne l’étude de la correction de fonctionnement du protocole de recherche distribuée Chord. L’objectif est d’une part d’améliorer la spécification et la vérification des systèmes dans le langage formel Electrum qui est une extension dynamique du langage formel Alloy basé sur la logique du premier ordre temporelle linéaire.Pour ce faire, nous avons développé une couche syntaxique au-dessus d’Electrum. L’objectif de cette couche est de faciliter la spécification du comportement dans Electrum, pour ce faire, nous avons défini une syntaxe permettant de générer automatiquement une partie de la spécification du comportement. Par ailleurs cette couche permet également de réduire les erreurs de spécification en déchargeant les utilisateurs de la spécification de certaines tâches comportementales ardues et sujettes aux erreurs.D’autre part, l’objectif est d’analyser formellement la correction de la propriété fondamentale de vivacité du protocole Chord. Pour ce faire nous avons spécifié et vérifié le protocole Chord avec l’extension d’Electrum que nous avons développée, puis nous avons prouvé sa correction et montré les avantages de notre méthode d’analyse.This study deals with the use of first-order logic and linear temporal logic for specificationand verification of dynamics system with rich structural properties. It also concerns the studyof the operating safety of the distributed lookup protocol Chord. The aim is on the one hand toimprove the specification and verification of systems whith the formal language Electrum a dynamicextension of the formal language Alloy based on first-order linear temporal logic. To do this, we havedeveloped an action layer above Electrum. The purpose of this layer is to make the specification ofthe behavior in Electrum easier, to do this, we have defined a syntax to automatically generate partof the specification of the behavior. Moreover, this layer also makes it possible to reduce specificationerrors by getting rid the users of the specification of certain laborious and error-prone behavioraltasks. On the other hand, the aim is the formal analyzing of the fundamental liveness property ofthe Chord protocol. To do this, we specified and verified the Chord protocol with the extension ofElectrum that we have developed, then we proved its correctness and showed the advantages of ouranalysis method
Extension événementielle d’une méthode formelle légère et application à l’analyse du protocole distribué Chord
This study deals with the use of first-order logic and linear temporal logic for specification and verification of dynamics system with rich structural properties. It also concerns the study of the operating safety of the distributed lookup protocol Chord. The aim is on the one hand to improve the specification and verification of systems whith the formal language Electrum a dynamic extension of the formal language Alloy based on first-order linear temporal logic. To do this, we have developed an action layer above Electrum. The purpose of this layer is to make the specification of the behavior in Electrum easier, to do this, we have defined a syntax to automatically generate part of the specification of the behavior. Moreover, this layer also makes it possible to reduce specification errors by getting rid the users of the specification of certain laborious and error-prone behavioral tasks. On the other hand, the aim is the formal analyzing of the fundamental liveness property of the Chord protocol. To do this, we specified and verified the Chord protocol with the extension of Electrum that we have developed, then we proved its correctness and showed the advantages of our analysis method.Cette étude concerne l’utilisation de la logique du premier ordre et la logique temporelle linéaire pour la spécification et la vérification des systèmes dynamiques ayant des structures riches. Elle concerne l’étude de la correction de fonctionnement du protocole de recherche distribuée Chord. L’objectif est d’une part d’améliorer la spécification et la vérification des systèmes dans le langage formel Electrum qui est une extension dynamique du langage formel Alloy basé sur la logique du premier ordre temporelle linéaire. Pour ce faire, nous avons développé une couche syntaxique au-dessus d’Electrum.L’objectif de cette couche est de faciliter la spécification du comportement dans Electrum, pour ce faire, nous avons défini une syntaxe permettant de générer automatiquement une partie de la spécification du comportement. Par ailleurs cette couche permet également de réduire les erreurs de spécification en déchargeant les utilisateurs de la spécification de certaines tâches comportementales ardues et sujettes aux erreurs.D’autre part, l’objectif est d’analyser formellement la correction de la propriété fondamentale de vivacité du protocole Chord. Pour ce faire nous avons spécifié et vérifié le protocole Chord avec l’extension d’Electrum que nous avons développée, puis nous avons prouvé sa correction et montré les avantages de notre méthode d’analyse
Analyzing the Fundamental Liveness Property of the Chord Protocol
International audienceChord is a protocol that provides a scalable distributed hash table over an underlying peer-to-peer network. Since it combines data structures, asynchronous communications, concurrency, and fault tolerance, it features rich structural and temporal properties that make it an interesting target for formal specification and verification. Previous work has mainly focused on automatic proofs of safety properties or manual proofs of the full correctness of the protocol (a liveness property). In this paper, we report on analyzing automatically the correctness of Chord with the Electrum language (developed in former work) on small instance of networks. In particular, we were able to find various corner cases in previous work and showed that the protocol was not correct as described there. We fixed all these issues and provided a version of protocol for which we were not able to find any counterexample using our method