Affiliation:
1. University of Science and Technology of China, Hefei, China
Abstract
Locating linearization points (LPs) is an intuitive approach for proving linearizability, but it is difficult to apply the idea in Hoare-style logic for formal program verification, especially for verifying algorithms whose LPs cannot be statically located in the code. In this paper, we propose a program logic with a lightweight instrumentation mechanism which can verify algorithms with non-fixed LPs, including the most challenging ones that use the helping mechanism to achieve lock-freedom (as in HSY elimination-based stack), or have LPs depending on unpredictable future executions (as in the lazy set algorithm), or involve both features. We also develop a thread-local simulation as the meta-theory of our logic, and show it implies contextual refinement, which is equivalent to linearizability. Using our logic we have successfully verified various classic algorithms, some of which are used in the java.util.concurrent package.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
48 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A program logic for obstruction-freedom;Frontiers of Computer Science;2023-12-28
2. Efficient linearizability checking for actor‐based systems;Software: Practice and Experience;2023-08-22
3. Embedding Hindsight Reasoning in Separation Logic;Proceedings of the ACM on Programming Languages;2023-06-06
4. Proof Automation for Linearizability in Separation Logic;Proceedings of the ACM on Programming Languages;2023-04-06
5. A concurrent program logic with a future and history;Proceedings of the ACM on Programming Languages;2022-10-31