English
Related papers

Related papers: Validating Traces of Distributed Programs Against …

200 papers

TLA+ is a formal specification language used for designing, modeling, documenting, and verifying systems through model checking. Despite significant interest from the research community, knowledge about usage of the TLA+ ecosystem in…

Software Engineering · Computer Science 2024-11-22 Roman Bögli , Leandro Lerena , Christos Tsigkanos , Timo Kehrer

Using an algorithm due to Safra for distributed termination detection as a running example, we present the main tools for verifying specifications written in TLA+. Examining their complementary strengths and weaknesses, we suggest a…

Logic in Computer Science · Computer Science 2022-11-15 Igor Konnov , Markus Kuppe , Stephan Merz

This paper presents our experience specifying and verifying the correctness of ZooKeeper, a complex and evolving distributed coordination system. We use TLA+ to model fine-grained behaviors of ZooKeeper and use the TLC model checker to…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-10-16 Lingzhi Ouyang , Xudong Sun , Ruize Tang , Yu Huang , Madhav Jivrajani , Xiaoxing Ma , Tianyin Xu

In this paper I discuss how can lightweight formal methods be used to specify and verify software with complex configurations (for example, distributed protocols that work on specific network configurations). More specifically, I briefly…

Software Engineering · Computer Science 2024-07-19 Alcino Cunha

TLA+ is a specification language based on standard set theory and temporal logic that has constructs for hierarchical proofs. We describe how to write TLA+ proofs and check them with TLAPS, the TLA+ Proof System. We use Peterson's mutual…

Software Engineering · Computer Science 2012-08-30 Denis Cousineau , Damien Doligez , Leslie Lamport , Stephan Merz , Daniel Ricketts , Hernán Vanzetto

Developing and maintaining CLP programs requires visualization and explanation tools. However, existing tools are built in an ad hoc way. Therefore porting tools from one platform to another is very difficult. We have shown in previous work…

Programming Languages · Computer Science 2007-05-23 Ludovic Langevine , Pierre Deransart , Mireille Ducasse , Erwan Jahier

Offline runtime verification involves the static analysis of executions of a system against a specification. For distributed systems, it is generally not possible to characterize executions in the form of global traces, given the absence of…

Software Engineering · Computer Science 2024-03-06 Erwan Mahe , Boutheina Bannour , Christophe Gaston , Arnault Lapitre , Pascale Le Gall

Contracts specifying a procedure's behavior in terms of pre- and postconditions are essential for scalable software verification, but cannot express any constraints on the events occurring during execution of the procedure. This…

Software Engineering · Computer Science 2022-11-22 Richard Bubel , Dilian Gurov , Reiner Hähnle , Marco Scaletta

Alloy and TLA+ are two formal specification languages that are increasingly popular due to their simplicity and flexibility, as well as the effectiveness of their companion model checkers, the Alloy Analyzer and TLC, respectively.…

Software Engineering · Computer Science 2016-03-14 Nuno Macedo , Alcino Cunha

Programs with constraints are hard to debug. In this paper, we describe a general architecture to help develop new debugging tools for constraint programming. The possible tools are fed by a single general-purpose tracer. A tracer-driver is…

Software Engineering · Computer Science 2007-05-23 Ludovic Langevine , Mireille Ducasse

Large Language Models (LLMs) are unable to reliably reason about specific physical systems. Attempts to imbue LLMs with knowledge of the necessary physics concepts have shown great promise, but explainability and validation remain open…

Artificial Intelligence · Computer Science 2026-05-22 Sean Memery , Kartic Subr

Formal modelling is a powerful tool for developing complex systems. At MongoDB, we use TLA+ to model and verify multiple aspects of several systems. Ensuring conformance between a specification and its implementation can add value to any…

Software Engineering · Computer Science 2020-06-15 A. Jesse Jiryu Davis , Max Hirschhorn , Judah Schvimer

We discuss the workflows supported by the TLA+ Toolbox to write and verify specifications. We focus on features that are useful in industry because its users are primarily engineers. Two features are novel in the scope of formal IDEs:…

Software Engineering · Computer Science 2019-12-24 Markus Alexander Kuppe , Leslie Lamport , Daniel Ricketts

Formal theorem proving with TLA+ provides rigorous guarantees for system specifications, but constructing proofs requires substantial expertise and effort. While large language models have shown promise in automating proofs for tactic-based…

Logic in Computer Science · Computer Science 2026-03-03 Yuhao Zhou , Stavros Tripakis

ZooKeeper is a coordination service, widely used as a backbone of various distributed systems. Though its reliability is of critical importance, testing is insufficient for an industrial-strength system of the size and complexity of…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-10-17 Lingzhi Ouyang , Yu Huang , Binyu Huang , Xiaoxing Ma

TLAPS, the TLA+ proof system, is a platform for the development and mechanical verification of TLA+ proofs written in a declarative style requiring little background beyond elementary mathematics. The language supports hierarchical and…

Logic in Computer Science · Computer Science 2010-11-12 Kaustuv Chaudhuri , Damien Doligez , Leslie Lamport , Stephan Merz

Trace analysis can be a useful way to discover problems in a program under test. Rather than writing a special purpose trace analysis tool, this paper proposes that traces can usefully be analysed by checking them against a formal model…

Logic in Computer Science · Computer Science 2011-11-14 Y. Howard , S. Gruner , A. Gravell , C. Ferreira , J. C. Augusto

What properties about the internals of a program explain the possible differences in its overall running time for different inputs? In this paper, we propose a formal framework for considering this question we dub trace-set discrimination.…

Programming Languages · Computer Science 2017-02-24 Saeid Tizpaz-Niari , Pavol Cerny , Bor-Yuh Evan Chang , Sriram Sankaranarayanan , Ashutosh Trivedi

Fault-tolerant distributed algorithms are central for building reliable spatially distributed systems. Unfortunately, the lack of a canonical precise framework for fault-tolerant algorithms is an obstacle for both verification and…

Formal Languages and Automata Theory · Computer Science 2012-10-16 Annu John , Igor Konnov , Ulrich Schmid , Helmut Veith , Josef Widder

Recent work has shown that Large Language Models (LLMs) are not only a suitable tool for code generation but also capable of generating annotation-based code specifications. Scaling these methodologies may allow us to deduce provable…

Software Engineering · Computer Science 2025-06-26 Samuel Teuber , Bernhard Beckert
‹ Prev 1 2 3 10 Next ›