Liveness-Preserving Atomicity Abstraction

  • Alexey Gotsman
  • Hongseok Yang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6756)


Modern concurrent algorithms are usually encapsulated in libraries, and complex algorithms are often constructed using libraries of simpler ones. We present the first theorem that allows harnessing this structure to give compositional liveness proofs to concurrent algorithms and their clients. We show that, while proving a liveness property of a client using a concurrent library, we can soundly replace the library by another one related to the original library by a generalisation of a well-known notion of linearizability. We apply this result to show formally that lock-freedom, an often-used liveness property of non-blocking algorithms, is compositional for linearizable libraries, and provide an example illustrating our proof technique.


Concurrent Program Program Counter Liveness Property Method Invocation Library Method 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Alpern, B., Schneider, F.B.: Defining liveness. Inf. Process. Lett. 21(4) (1985)Google Scholar
  2. 2.
    Amit, D., Rinetzky, N., Reps, T., Sagiv, M., Yahav, E.: Comparison under abstraction for verifying linearizability. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 477–490. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  3. 3.
    Burckhardt, S., Dern, C., Musuvathi, M., Tan, R.: Line-up: A complete and automatic linearizability checker. In: PLDI (2010)Google Scholar
  4. 4.
    Cook, B., Gotsman, A., Podelski, A., Rybalchenko, A., Vardi, M.Y.: Proving that programs eventually do something good. In: POPL (2007)Google Scholar
  5. 5.
    Filipović, I., O’Hearn, P., Rinetzky, N., Yang, H.: Abstraction for concurrent objects. In: Castagna, G. (ed.) ESOP 2009. LNCS, vol. 5502, pp. 252–266. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Gotsman, A., Cook, B., Parkinson, M., Vafeiadis, V.: Proving that non-blocking algorithms don’t block. In: POPL (2009)Google Scholar
  7. 7.
    Gotsman, A., Yang, H.: Liveness-preserving atomicity abstraction, extended version (2011),
  8. 8.
    Harris, T.: A pragmatic implementation of non-blocking linked-lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, p. 300. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  9. 9.
    Hendler, D., Shavit, N., Yerushalmi, L.: A scalable lock-free stack algorithm. In: SPAA (2004)Google Scholar
  10. 10.
    Herlihy, M., Shavit, N.: The art of multiprocessor programming (2008)Google Scholar
  11. 11.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. TOPLAS 12 (1990)Google Scholar
  12. 12.
    Jones, C.: Splitting atoms safely. TCS 375 (2007)Google Scholar
  13. 13.
    Petrank, E., Musuvathi, M., Steensgaard, B.: Progress guarantee via bounded lock-freedom. In: PLDI (2009)Google Scholar
  14. 14.
    Treiber, R.K.: Systems programming: Coping with parallelism. Technical Report RJ 5118, IBM Almaden Research Center (1986)Google Scholar
  15. 15.
    Vafeiadis, V.: Modular fine-grained concurrency verification. PhD Thesis. Technical Report UCAM-CL-TR-726, University of Cambridge (2008)Google Scholar
  16. 16.
    Vafeiadis, V.: Automatically proving linearizability. In: Touili, T., Cook, B., Jackson, P. (eds.) CAV 2010. LNCS, vol. 6174, pp. 450–464. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  17. 17.
    Vardi, M.Y.: Verification of concurrent programs—the automata-theoretic framework. Annals of Pure and Applied Logic 51 (1991)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Alexey Gotsman
    • 1
  • Hongseok Yang
    • 2
  1. 1.IMDEA Software InstituteSpain
  2. 2.University of OxfordUK

Personalised recommendations