Validating Traces of Distributed Programs Against TLA+ Specifications

April 24, 2024 Β· Declared Dead Β· πŸ› IEEE International Conference on Software Engineering and Formal Methods

πŸ‘» CAUSE OF DEATH: Ghosted
No code link whatsoever

"No code URL or promise found in abstract"

Evidence collected by the PWNC Scanner

Authors Horatiu Cirstea, Markus A. Kuppe, Benjamin Loillier, Stephan Merz arXiv ID 2404.16075 Category cs.PL: Programming Languages Cross-listed cs.SE Citations 12 Venue IEEE International Conference on Software Engineering and Formal Methods Last Checked 3 months ago
Abstract
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 relating traces of distributed programs to 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.
Community shame:
Not yet rated
Community Contributions

Found the code? Know the venue? Think something is wrong? Let us know!

πŸ“œ Similar Papers

In the same crypt β€” Programming Languages

Died the same way β€” πŸ‘» Ghosted