Verifying Opacity of a Transactional Mutex Lock

  • John DerrickEmail author
  • Brijesh Dongol
  • Gerhard Schellhorn
  • Oleg Travkin
  • Heike Wehrheim
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9109)


Software transactional memory (STM) provides programmers with a high-level programming abstraction for synchronization of parallel processes, allowing blocks of codes that execute in an interleaved manner to be treated as an atomic block. This atomicity property is captured by a correctness criterion called opacity. Opacity relates histories of a sequential atomic specification with that of STM implementations.

In this paper we prove opacity of a recently proposed STM implementation (a Transactional Mutex Lock) by Dalessandro et al.. The proof is carried out within the interactive verifier KIV and proceeds via the construction of an intermediate level in between sequential specification and implementation, leveraging existing proof techniques for linearizability.


Transactional Memory Proof Method Correctness Criterion Linearization Point Memory Sequence 
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.
    Attiya, H., Gotsman, A., Hans, S., Rinetzky, N.: Safety of live transactions in transactional memory: TMS is necessary and sufficient. In: Kuhn, F. (ed.) DISC 2014. LNCS, vol. 8784, pp. 376–390. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  2. 2.
    Attiya, H., Gotsman, A., Hans, S., Rinetzky, N.: A programming language perspective on transactional memory consistency. In: Fatourou, P., Taubenfeld, G. (eds.) PODC 2013, pp. 309–318. ACM (2013)Google Scholar
  3. 3.
    Dice, D., Shalev, O., Shavit, N.: Transactional locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Dalessandro, L., Dice, D., Scott, M.L., Shavit, N., Spear, M.F.: Transactional mutex locks. In: D’Ambra, P., Guarracino, M., Talia, D. (eds.) Euro-Par 2010, Part II. LNCS, vol. 6272, pp. 2–13. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  5. 5.
    Derrick, J., Schellhorn, G., Wehrheim, H.: Verifying linearisability with potential linearisation points. In: Butler, M., Schulte, W. (eds.) FM 2011. LNCS, vol. 6664, pp. 323–337. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  6. 6.
    Doherty, S., Groves, L., Luchangco, V., Moir, M.: Towards formally specifying and verifying transactional memory. Formal Asp. Comput. 25(5), 769–799 (2013)CrossRefzbMATHMathSciNetGoogle Scholar
  7. 7.
    Guerraoui, R., Henzinger, T.A., Singh, V.: Model checking transactional memories. Distributed Computing 22(3), 129–145 (2010)CrossRefzbMATHGoogle Scholar
  8. 8.
    Guerraoui, R., Kapalka, M.: On the correctness of transactional memory. In: Chatterjee, S., Scott, M.L. (eds.) PPOPP, pp. 175–184. ACM (2008)Google Scholar
  9. 9.
    Guerraoui, R., Kapalka, M.: Principles of Transactional Memory. Synthesis Lectures on Distributed Computing Theory. Morgan & Claypool Publishers (2010)Google Scholar
  10. 10.
    Harris, T., Larus, J.R., Rajwar, R.: Transactional Memory, 2nd edition. Synthesis Lectures on Computer Architecture. Morgan & Claypool Publishers (2010)Google Scholar
  11. 11.
    Harris, T.L., Fraser, K.: Language support for lightweight transactions. In: Crocker, R., Steele Jr., G.L. (eds.) OOPSLA, pp. 388–402. ACM (2003)Google Scholar
  12. 12.
    Herlihy, M., Wing, J.M.: Linearizability: A correctness condition for concurrent objects. ACM TOPLAS 12(3), 463–492 (1990)CrossRefGoogle Scholar
  13. 13.
    Imbs, D., Raynal, M.: Virtual world consistency: A condition for STM systems (with a versatile protocol with invisible read operations). Theor. Comput. Sci. 444, 113–127 (2012)CrossRefzbMATHMathSciNetGoogle Scholar
  14. 14.
    Lesani, M.: On the Correctness of Transactional Memory Algorithms. PhD thesis, UCLA (2014)Google Scholar
  15. 15.
    Lesani, M., Palsberg, J.: Decomposing opacity. In: Kuhn, F. (ed.) DISC 2014. LNCS, vol. 8784, pp. 391–405. Springer, Heidelberg (2014)CrossRefGoogle Scholar
  16. 16.
    Luchangco, V., Lesani, M., Moir, M.: Putting opacity in its place. In: Workshop on the Theory of Transactional Memory (2012)Google Scholar
  17. 17.
    Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26(4), 631–653 (1979)CrossRefzbMATHMathSciNetGoogle Scholar
  18. 18.
    Reif, W., Schellhorn, G., Stenzel, K., Balser, M.: Structured specifications and interactive proofs with KIV. In: Automated Deduction—A Basis for Applications. Interactive Theorem Proving, vol. II, ch.1, pp. 13–39. Kluwer (1998)Google Scholar
  19. 19.
    Schellhorn, G., Derrick., J., Wehrheim, H.: A Sound and Complete Proof Technique for Linearizability of Concurrent Data Structures. ACM Trans. Comput. Logic, 15 (2014)Google Scholar
  20. 20.
    Shavit, N., Touitou, D.: Software transactional memory. Distributed Computing 10(2), 99–116 (1997)CrossRefGoogle Scholar
  21. 21.
    Spivey, J.M.: The Z Notation: A Reference Manual. Prentice Hall (1992)Google Scholar
  22. 22.
    Vafeiadis, V.: Modular fine-grained concurrency verification. PhD thesis, University of Cambridge (2007)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • John Derrick
    • 1
    Email author
  • Brijesh Dongol
    • 2
  • Gerhard Schellhorn
    • 3
  • Oleg Travkin
    • 4
  • Heike Wehrheim
    • 4
  1. 1.Department of ComputingUniversity of SheffieldSheffieldUK
  2. 2.Department of Computer ScienceBrunel UniversityLondonUK
  3. 3.Institut für InformatikUniversität AugsburgAugsburgGermany
  4. 4.Institut für InformatikUniversität PaderbornPaderbornGermany

Personalised recommendations