Validating Traces of Distributed Programs Against TLA+ Specifications - Department of Formal methods
Communication Dans Un Congrès Année : 2024

Validating Traces of Distributed Programs Against TLA+ Specifications

Résumé

TLA+ is a formal language for specifying systems, including distributed algorithms, that is supported by powerful verification tools. In this work we present a framework for checking if traces of distributed programs are compatible with high-level specifications written in TLA+ . The problem is reduced to a constrained model checking problem, realized using the TLC model checker. Our framework consists of an API for instrumenting Java programs in order to record traces of executions, of a collection of TLA+ operators that are used for relating those traces to specifications, and of scripts for running the model checker. Crucially, traces only contain updates to specification variables rather than full values, and developers may choose to trace only certain variables. We have applied our approach to several distributed programs, detecting discrepancies between the specifications and the implementations in all cases. We discuss reasons for these discrepancies, best practices for instrumenting programs, and how to interpret the verdict produced by TLC.
Fichier sous embargo
Fichier sous embargo
0 5 7
Année Mois Jours
Avant la publication
lundi 2 juin 2025
Fichier sous embargo
lundi 2 juin 2025
Connectez-vous pour demander l'accès au fichier

Dates et versions

hal-04813617 , version 1 (02-12-2024)

Licence

Copyright (Tous droits réservés)

Identifiants

  • HAL Id : hal-04813617 , version 1

Citer

Horatiu Cirstea, Markus A Kuppe, Benjamin Loillier, Stephan Merz. Validating Traces of Distributed Programs Against TLA+ Specifications. Software Engineering and Formal Methods, Nov 2024, Aveiro, Portugal. pp.126-143. ⟨hal-04813617⟩
0 Consultations
0 Téléchargements

Partager

More