一句话:提出高阶关系式并发分离逻辑 Lilo,支持并发程序活性与终止性的模块化验证,并在 Coq 中机械化。
并发分离逻辑(CSL)在安全性验证上成果丰富,但对活性性质支持有限。已有 TaDA Live 难以处理非局部线性化点等程序,且不支持“好事无限频繁发生”等一般活性;FOS 虽表达力强,却缺少线程模块化推理与模块规约。本文提出 Lilo,一种高阶、关系式 CSL:基于 FOS 保持原语简单,并引入 refinement 证明、Iris 风格不变式与模块规约;受 Nola 启发提出分层命题,避免 step-indexing 以支持高阶推理。案例研究包括首个消除栈的模块化终止性验证,且逻辑与例子已在 Coq 中机械化。
Concurrent separation logic (CSL) has excelled in verifying safety properties across various applications, yet its application to liveness properties remains limited. While existing approaches like TaDA Live and Fair Operational Semantics (FOS) have made significant strides, they still face limitations. TaDA Live struggles to verify certain classes of programs, particularly concurrent objects with non-local linearization points, and lacks support for general liveness properties such as “good things happen infinitely often”. On the other hand, FOS's scalability is hindered by the absence of thread modular reasoning principles and modular specifications. This paper introduces Lilo, a higher-order, relational CSL designed to overcome these limitations. Our core observation is that FOS helps us to maintain simple primitives for our logic, which enable us to explore design space with fewer restrictions. As a result, Lilo adapts various successful techniques from literature. It supports reasoning about non-terminating programs by supporting refinement proofs, and also provides Iris-style invariants and modular specifications to facilitate modular verification. To support higher-order reasoning without relying on step-indexing, we develop a technique called stratified propositions inspired by Nola. In particular, we develop novel abstractions for liveness reasoning that bring these techniques together in a uniform way. We show Lilo’s scalability through case studies, including the first termination-guaranteeing modular verification of the elimination stack. Lilo and examples in this paper are mechanized in Coq.
@article{paperbot3162,
title = {Lilo: A Higher-Order, Relational Concurrent Separation Logic for Liveness},
author = {Dongjae Lee and Janggun Lee and Taeyoung Yoon and Minki Cho and Jeehoon Kang and Chung-Kil Hur},
journal = {Proceedings of the ACM on Programming Languages},
volume = {9},
number = {OOPSLA1},
year = {2025},
doi = {10.1145/3720525}
}