skip to main content
research-article
Open Access

Proving linearizability with temporal logic

Authors Info & Claims
Published:01 January 2011Publication History
Skip Abstract Section

Abstract

Abstract

Linearizability is a global correctness criterion for concurrent systems. One technique to prove linearizability is applying a composition theorem which reduces the proof of a property of the overall system to sufficient rely-guarantee conditions for single processes. In this paper, we describe how the temporal logic framework implemented in the KIV interactive theorem prover can be used to model concurrent systems and to prove such a composition theorem. Finally, we show how this generic theorem can be instantiated to prove linearizability of two classic lock-free implementations: a Treiber-like stack and a slightly improved version of Michael and Scott’s queue.

References

  1. AC05 Abrial J-RCansell DFormal construction of a non-blocking concurrent queue algorithm (a case study in atomicity)J Univers Comput Sci2005115744770Google ScholarGoogle Scholar
  2. AL95 Abadi MLamport LConjoining specificationsACM Trans Program Lang Syst19951750753410.1145/203095.201069Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. ARR+07 Amit D, Rinetzky N, Reps TW, Sagiv M, Yahav E (2007) Comparison under abstraction for verifying linearizability. In: CAV, pp 477–490Google ScholarGoogle Scholar
  4. AS87 Alpern BSchneider FBRecognizing safety and livenessDistrib Comput1987231171260641.6803910.1007/BF01782772Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Bal05 Balser M (2005) Verifying concurrent system with symbolic execution—temporal reasoning is symbolic execution with a little induction. PhD thesis, University of Augsburg, Augsburg, GermanyGoogle ScholarGoogle Scholar
  6. BBO+99 Bjørner NS, Browne A, Michael A Col On, Finkbeiner B, Sipma HB, Uribe T (1999) Verifying temporal properties of reactive systems: a STeP tutorial. In: Formal methods in system design, vol 16, 2000 pGoogle ScholarGoogle Scholar
  7. BBRS08 Balser M, Bäumler S, Reif W, Schellhorn G (2008) Interactive verification of concurrent systems using symbolic execution. In: Proceedings of 7th international workshop of implementation of logics (IWIL 08)Google ScholarGoogle Scholar
  8. BLAM+08 Berdine J, Lev-Ami T, Manevich R, Ramalingam G, Sagiv M (2008) Thread quantification for concurrent shape analysis. In: CAV’08. Springer, New YorkGoogle ScholarGoogle Scholar
  9. BNBR08 Bäumler S, Nafz F, Balser M, Reif W (2008) Compositional proofs with symbolic execution. In: Beckert B, Klein G (eds) Proceedings of the 5th international verification workshop, vol 372 of Ceur workshop proceedingsGoogle ScholarGoogle Scholar
  10. BS03 Börger EStärk RFAbstract state machines—a method for high-level system design and analysis2003New YorkSpringer-Verlag1040.68042Google ScholarGoogle Scholar
  11. Bur74 Burstall RMProgram proving as hand simulation with a little inductionInf Process197474309312Google ScholarGoogle Scholar
  12. CC96 Cau ACollette PParallel composition of assumption-commitment specifications: a unifying approach for shared variable and distributed message passing concurrencyActa Inform199633215317610.1007/s0023600500391378918Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. CDG05 Colvin RDoherty SGroves LVerifying concurrent data structures by simulationENTCS200513793110Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. CGP00 Clarke EGrumberg OPeled DModel checking2000CambridgeMIT PressGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  15. CMZ02 Cau A, Moszkowski B, Zedan H (2002) ITL—interval temporal logic. Software Technology Research Laboratory, SERCentre, De Montfort University, The Gateway, Leicester LE1 9BH, UK. www.cms.dmu.ac.uk/~cau/itlhomepageGoogle ScholarGoogle Scholar
  16. CPV07 Calcagno C, Parkinson MJ, Vafeiadis V (2007) Modular safety checking for fine-grained concurrency. In: SAS, pp 233–248Google ScholarGoogle Scholar
  17. DGLM04 Doherty S, Groves L, Luchangco V, Moir M (2004) Formal verification of a practical lock-free queue algorithm. In: FORTE 2004, vol 3235 of LNCS, pp 97–114Google ScholarGoogle Scholar
  18. Dij65 Dijkstra EWSolution of a problem in concurrent programming controlCommun ACM19658956910.1145/365559.365617Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. DOY06 Distefano D, O’Hearn PW, Yang H (2006) A local shape analysis based on separation logic. In: TACAS, vol 3920. Springer, New York, pp 287–302Google ScholarGoogle Scholar
  20. dRdBH+01 de Roever W-P, de Boer F, Hannemann U, Hooman J, Lakhnech Y, Poel M, Zwiers J (2001) Concurrency verification: introduction to compositional and noncompositional methods. Number 54 in Cambridge Tracts in Theoretical Computer Science. Cambridge University PressGoogle ScholarGoogle Scholar
  21. DSW07 Derrick J, Schellhorn G, Wehrheim H (2007) Proving linearizability via non-atomic refinement. In: IFM, pp 195–214Google ScholarGoogle Scholar
  22. DSW08 Derrick J, Schellhorn G, Wehrheim H (2008) Mechanising a correctness proof for a lock-free concurrent stack. In: Prooceedings of FMOODS 2008, Oslo, vol 5051 of LNCS, pp 78–95Google ScholarGoogle Scholar
  23. GC07 Groves LColvin RDerivation of a scalable lock-free stack algorithmElectron Notes Theor Comput Sci2007187557410.1016/j.entcs.2006.08.044Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. GC09 Groves LColvin RTrace-based derivation of a scalable lock-free stack algorithmForm Asp Comp2009211–21872231165.6806410.1007/s00165-008-0092-5Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. GGH07 Gao HGroote JFHesselink WHLock-free parallel and concurrent garbage collection by mark&sweepSci Comput Program20076433413741178.6852810.1016/j.scico.2006.10.0012312641Google ScholarGoogle Scholar
  26. Gur95 Gurevich YBörger EEvolving algebras 1993: Lipari guideSpecification and validation methods1995OxfordOxford University Press936Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Har84 Harel DGabbay DGuenther FDynamic logicHandbook of philosophical logic, vol 21984DordrechtReidel496604Google ScholarGoogle Scholar
  28. Hes06 Hesselink WHRefinement verification of the lazy caching algorithmActa Inform20064331952221100.6812610.1007/s00236-006-0020-12263643Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. HSY04 Hendler D, Shavit N, Yerushalmi L (2004) A scalable lock-free stack algorithm. In: SPAA ’04: ACM symposium on parallelism in algorithms and architectures, New York, NY, USA. ACM Press, pp 206–215Google ScholarGoogle Scholar
  30. HW90 Herlihy MWing JLinearizability: a correctness condition for concurrent objectsACM Trans Program Lang Syst199012346349210.1145/78969.78972Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Jon83 Jones CBTentative steps toward a development method for interfering programsACM Trans Program Lang Syst1983545966190517.6803210.1145/69575.69577Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. JT96 Jonsson BTsay Y-KAssumption/guarantee specifications in linear-time temporal logicTheor Comput Sci19961671–247720874.6821010.1016/0304-3975(96)00069-21422510Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Kal95 Kalvala S (1995) A formulation of TLA in Isabelle. http://www.research.digital.com/SRC/personal/lamport/tla/tla.html Accessed June 1995Google ScholarGoogle Scholar
  34. KIV Web presentation of the composition theorem and the lock-free stack and queue case study in KIV. URL: http://www.informatik.uni-augsburg.de/swt/projects/lock-free.htmlGoogle ScholarGoogle Scholar
  35. Lam94 Lamport LThe temporal logic of actionsACM Trans Program Lang Syst199416387292310.1145/177492.177726Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Lam06 Lamport L (2006) The +CAL algorithm language. Technical report, MicrosoftGoogle ScholarGoogle Scholar
  37. MC81 Misra J, Chandi KM (1981) Proofs of networks of processes. IEEE Trans Softw EngGoogle ScholarGoogle Scholar
  38. Mer95 Merz S (1995) Mechanizing TLA in Isabelle. In: Rodošek R (ed) Workshop on verification in new orientations. Univeristy of Maribor, Maribor, pp 54–74Google ScholarGoogle Scholar
  39. Mos86 Moszkowski BExecuting temporal logic programs1986CambridgeCambridge University PressGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  40. MS96 Michael MM, Scott ML (1996) Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of 15th ACM symposium on principles of distributed computing, pp 267–275Google ScholarGoogle Scholar
  41. OG76 Owicki SSGries DAn axiomatic proof technique for parallel programs IActa Inform197663193400312.6801110.1007/BF00268134413587Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. PA03 Pnueli A, Arons T (2003) TLPVS: a PVS-based LTL verification system. In: Verification-theory and practice. Proceedings of an international symposium in honor of Zohar Manna’s 64th birthday. Lecture Notes in Computer Science. Springer-Verlag, New York, pp 84–98Google ScholarGoogle Scholar
  43. Pre03 Prensa Nieto LDegano PThe rely-guarantee method in Isabelle/HOLEuropean symposium on programming (ESOP’03), vol 2618 of LNCS2003New YorkSpringer348362Google ScholarGoogle Scholar
  44. Rey02 Reynolds JC (2002) Separation logic: a logic for shared mutable data structures. In: LICS ’02: Proceedings of the 17th annual IEEE symposium on logic in computer science, Washington, DC, USA. IEEE Computer Society, pp 55–74Google ScholarGoogle Scholar
  45. RSSB98 Reif W, Schellhorn G, Stenzel K, Balser M (1998) Structured specifications and interactive proofs with KIV. In: Bibel W, Schmitt P (eds) Automated deduction—a basis for applications, vol II: systems and implementation techniques, chapter 1: interactive theorem proving. Kluwer Academic Publishers, Dordrecht, pp 13–39Google ScholarGoogle Scholar
  46. Tre86 Treiber RK (1986) System programming: coping with parallelism. Technical report RJ 5118. IBM Almaden Research CenterGoogle ScholarGoogle Scholar
  47. Vaf07 Vafeiadis V (2007) Modular fine-grained concurrency verification. PhD thesis, University of CambridgeGoogle ScholarGoogle Scholar
  48. Vaf09 Vafeiadis V (2009) Shape-value abstraction for verifying linearizability. In: Proceedings VMCAI 2009, vol 5403 of LNCS. Springer, New YorkGoogle ScholarGoogle Scholar
  49. VHHS06 Vafeiadis V, Herlihy M, Hoare T, Shapiro M (2006) Proving correctness of highly-concurrent linearisable objects. In: PPoPP ’06: Proceedings of the eleventh ACM SIGPLAN symposium on principles and practice of parallel programming, New York, NY, USA. ACM, pp 129–136Google ScholarGoogle Scholar
  50. VP07 Vafeiadis V, Parkinson MJ (2007) A marriage of rely/guarantee and separation logic. In: CONCUR, pp 256–271Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader