The FLINT Project

Research

People

Publications

Software

Support

Links

Internal

Reasoning about Optimistic Concurrency Using a Program Logic for History

Last modified: Thu Sep 16 21:27:41 2010 GMT.

Authors

Ming Fu
Yong Li
Xinyu Feng
Zhong Shao
Yu Zhang

Abstract

Optimistic concurrency algorithms provide good performance for parallel programs but they are extremely hard to reason about. Program logics such as concurrent separation logic and rely-guarantee reasoning can be used to verify these algorithms, but they make heavy uses of history variables which may obscure the high-level intuition underlying the design of these algorithms. In this paper, we propose a novel program logic that uses invariants on history traces to reason about optimistic concurrency algorithms. We use past tense temporal operators in our assertions to specify execution histories. Our logic supports modular program specifications with history information by providing separation over both space (program states) and time. We prove Michael's non-blocking stack algorithm and show that the intuition behind such algorithm can be naturally captured using trace invariants.

Published

  • In Proc. 21st International Conference on Concurrency Theory (CONCUR'10), Paris, France, August 2010. Lecture Notes in Computer Science Vol. 6269, pages 388-402. © 2010 Springer-Verlag. [PDF]
  • Technical Report YALEU/DCS/TR-1428 [PDF]

Copyright © 1996-2017 The FLINT Group <flint at cs dot yale dot edu>
Yale University Department of Computer Science
Validate this page
colophon