一句话:用 Karoubi envelope 为线性一致性建立组合语义,给出不依赖原子性与 happens-before 的新表述并重建其理论。
论文解决缺乏组合式线性一致性理论的问题。作者先指出并发计算组合模型中的普遍问题:与组合单位元交互会产生涌现行为,破坏组合性;范畴论中的 Karoubi envelope 提供了解决方案。核心发现是该抽象构造与线性一致性深刻相关,由此给出一种新的线性一致性表述,既不依赖原子性,也不直接依赖 happens-before 序,且只有借助组合性才能得到,揭示二者内在关联。基于此,作者重新审视线性一致性理论,给出局部性性质以及与观测精化等价性的新颖代数证明,并将语义与一个关于广义线性一致性可靠的简单程序逻辑连接,展示其实用性。
Compositionality is at the core of programming languages research and has become an important goal toward scalable verification of large systems. Despite that, there is no compositional account of linearizability, the gold standard of correctness for concurrent objects.In this paper, we develop a compositional semantics for linearizable concurrent objects. We start by showcasing a common issue, which is independent of linearizability, in the construction of compositional models of concurrent computation: interaction with the neutral element for composition can lead to emergent behaviors, a hindrance to compositionality. Category theory provides a solution for the issue in the form of the Karoubi envelope. Surprisingly, and this is the main discovery of our work, this abstract construction is deeply related to linearizability and leads to a novel formulation of it. Notably, this new formulation neither relies on atomicity nor directly upon happens-before ordering and is only possible because of compositionality, revealing that linearizability and compositionality are intrinsically related to each other.We use this new, and compositional, understanding of linearizability to revisit much of the theory of linearizability, providing novel, simple, algebraic proofs of the locality property and of an analogue of the equivalence with observational refinement. We show our techniques can be used in practice by connecting our semantics with a simple program logic that is nonetheless sound concerning this generalized linearizability.
@article{paperbot2101,
title = {A Compositional Theory of Linearizability},
author = {Arthur Oliveira Vale and Zhong Shao and Yixuan Chen},
journal = {Proceedings of the ACM on Programming Languages},
volume = {7},
number = {POPL},
year = {2023},
doi = {10.1145/3571231}
}