Trillium: Higher-Order Concurrent and Distributed Separation Logic for Intensional Refinement
Amin Timany, Simon Oddershede Gregersen, Léo Stefanesco, Jonas Kastberg Hinrichsen, Léon Gondelman, Abel Nieto, Lars Birkedal
TL;DR
Trillium introduces intensional refinement to overcome step-indexing limitations in Iris, enabling non-trivial safety and liveness reasoning for higher-order concurrent and distributed programs. The framework defines a language-agnostic trace-program logic and a liveness-first instantiation, Fairis, which uses a Fuel construction to handle fairness and finite stuttering, plus an Aneris-based distributed instantiation that refines to TLA+ models for protocols like Two-Phase Commit and Single-Decree Paxos. All results are formalized in Coq, with adequacy theorems guaranteeing that program traces refine model traces, thus transporting model properties to implementations. The work provides a practical, foundational approach to proving correctness and liveness of distributed systems through refinement against abstract specifications, offering a scalable path for verified protocol implementations and future modular reasoning about libraries and optimizations.
Abstract
Expressive state-of-the-art separation logics rely on step-indexing to model semantically complex features and to support modular reasoning about imperative higher-order concurrent and distributed programs. Step-indexing comes, however, with an inherent cost: it restricts the adequacy theorem of program logics to a fairly simple class of safety properties. In this paper, we explore if and how intensional refinement is a viable methodology for strengthening higher-order concurrent (and distributed) separation logic to prove non-trivial safety and liveness properties. Specifically, we introduce Trillium, a language-agnostic separation logic framework for showing intensional refinement relations between traces of a program and a model. We instantiate Trillium with a concurrent language and develop Fairis, a concurrent separation logic, that we use to show liveness properties of concurrent programs under fair scheduling assumptions through a fair liveness-preserving refinement of a model. We also instantiate Trillium with a distributed language and obtain an extension of Aneris, a distributed separation logic, which we use to show refinement relations between distributed systems and TLA+ models.
