• Corpus ID: 17791960

Alloy meets TLA+: An exploratory study

  title={Alloy meets TLA+: An exploratory study},
  author={Nuno Macedo and Alcino Cunha},
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. Nonetheless, while TLA+ focuses on temporal properties, Alloy is better suited to handle structural properties, requiring ad hoc mechanisms to reason about temporal properties. Thus, both have limitations in the specification and analysis of systems rich in both… 

Figures and Tables from this paper

Lightweight specification and analysis of dynamic systems with rich configurations
Electrum is proposed, an extension of the Alloy specification language with temporal logic operators, where both rich configurations and expressive temporal properties can easily be defined, and two alternative model-checking techniques are proposed, one bounded and the other unbounded, to verify systems expressed in this language.
TLA+ model checking made symbolic
This paper presents APALACHE -- a first symbolic model checker for TLA+.
Verification of the Chord protocol in TLA
This thesis presents a formal specification of the Chord distributed hash table protocol, using the TLA specification language, and shows that the introduction of failures leads the specification to admit several behaviors which break the safety properties Chord promises, potentially leading to permanent partitions in the network and performance degradation.
Specifying and verifying usage control models and policies in TLA $$^+$$ +
This paper considers a case study where a formal model in TLA is specified for both a policy-neutral and policy-specific UseCON usage control model, and aims to shed light in the analysis and verification of usage control models and policies by sharing the experience when using TLA.
A Translation from Alloy to B
In this paper, we introduce a translation of the specification language Alloy to classical B. Our translation closely follows the Alloy grammar, each construct is translated into a semantically
Analysis of Message Passing SoftwareUsing Electrum
This work explores and proposes a technique to automatically verify system-wide safety properties of ROS-based applications in continuous integration environments based on the formalization of ROS architectural models and node behaviours in Electrum, a specification language of first-order temporal logic supported by a model-finder.


Temporal Logic Model Checking in Alloy
This article shows how a symbolic representation of the semantics of computational tree logic with fairness constraints (CTLFC) can be written in first-order logic with the transitive closure operator, and therefore described in Alloy.
Symbolic model checking of declarative relational models
A BDD-based model checker for the language, and successfully verified a straightforward model of the dependency algorithm in Apache Ant for up to 5 nodes are built.
Bounded Model Checking of Temporal Formulas with Alloy
An extension of Alloy is proposed to allow the specification of temporal formulas using LTL, and it is shown how they can be verified by bounded model checking with the Alloy Analyzer.
An Imperative Extension to Alloy
A translation from the extended Alloy language with the standard imperative constructs to the existing first-order logic of the Alloy Analyzer is presented, allowing for efficient analysis of models.
Symbolic Model Checking without BDDs
This paper shows how boolean decision procedures, like Stalmarck's Method or the Davis & Putnam Procedure, can replace BDDs, and introduces a bounded model checking procedure for LTL which reduces model checking to propositional satisfiability.
Software Abstractions - Logic, Language, and Analysis
This revised edition of Software Abstractions updates the text, examples, and appendixes to be fully compatible with the latest version of Alloy, a language that captures the essence of software abstractions simply and succinctly, using a minimal toolkit of mathematical notions.
Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review]
This book will teach you how to write specifications of computer systems, using the language TLA+, which is a simple variant of Pnueli's original logic.
Detection of Design Flaws in the Android Permission Protocol Through Bounded Verification
A study of real-world Android applications corroborates the finding that the flaws in the Android permission protocol can have severe security implications, in some cases allowing the attacker to bypass the permission checks entirely.
Kodkod: A Relational Model Finder
Three new techniques are addressed with three new techniques: a symmetry detection algorithm that works in the presence of partial solutions, a sparse-matrix representation of relations, and a compact representation of boolean formulas inspired by boolean expression diagrams and reduced boolean circuits.
Why Amazon Chose TLA +
The reasons why TLA+ was chosen instead of other methods, and areas in which the team would welcome further progress are described.