General Decidability Results for Asynchronous Shared-Memory Programs: Higher-Order and Beyond
Rupak Majumdar, Ramanathan S. Thinniyam, Georg Zetzsche

TL;DR
This paper establishes comprehensive decidability and undecidability results for asynchronous shared-memory programs, including higher-order cases, providing a unified theoretical framework for safety, termination, and liveness verification.
Contribution
It introduces a general language-theoretic framework that characterizes the decidability of various verification problems for asynchronous programs, including new decidability results for higher-order programs.
Findings
Decidability of safety, termination, and boundedness for higher-order asynchronous programs.
Undecidability of liveness verification for order-2 asynchronous programs.
Decidability of configuration reachability and liveness are equivalent under certain conditions.
Abstract
The model of asynchronous programming arises in many contexts, from low-level systems software to high-level web programming. We take a language-theoretic perspective and show general decidability and undecidability results for asynchronous programs that capture all known results as well as show decidability of new and important classes. As a main consequence, we show decidability of safety, termination and boundedness verification for higher-order asynchronous programs -- such as OCaml programs using Lwt -- and undecidability of liveness verification already for order-2 asynchronous programs. We show that under mild assumptions, surprisingly, safety and termination verification of asynchronous programs with handlers from a language class are decidable iff emptiness is decidable for the underlying language class. Moreover, we show that configuration reachability and liveness (fair…
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
TopicsDistributed systems and fault tolerance · Logic, programming, and type systems · Security and Verification in Computing
