Tutorial on the Executable ASM Specification of the AB Protocol and Comparison with TLA$^+$
Paolo Dini, Manuel Bravo, Philipp Paulweber, Alexander Raschke and, Gabriela Moreira

TL;DR
This paper introduces ASM and TLA+ specification methods for the AB protocol, compares their frameworks, and explores their complementary use and potential formal connections in software engineering.
Contribution
It provides an introductory tutorial on ASM and TLA+ for software specifications, compares executable frameworks, and investigates their combined application and formal relationships.
Findings
ASMs and Quint are better for top-down specification.
TLA+ is more suited for bottom-up development.
Models are semantically equivalent but differ in usability.
Abstract
The main aim of this report is to provide an introductory tutorial on the Abstract State Machines (ASM) specification method for software engineering to an audience already familiar with the Temporal Logic of Actions (TLA) method. The report asks to what extent the ASM and TLA methods are complementary in checking specifications against stated requirements and proposes some answers. A second aim is to provide a comparison between different executable frameworks that have been developed for the same specification languages. Thus, the ASM discussion is complemented by executable Corinthian ASM (CASM) and CoreASM models. Similarly, the two TLA specifications presented, which rely on the TLC and Apalache model checkers, respectively, are complemented by a Quint specification, a new language developed by Informal Systems to serve as a user-friendly syntax layer for TLA. For…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Logic, programming, and type systems · Security and Verification in Computing
