skip to main content
research-article
Open Access

Unifying separation logic and region logic to allow interoperability

Authors Info & Claims
Published:01 August 2018Publication History
Skip Abstract Section

Abstract

Abstract

Framing is important for specification and verification, especially in programs that mutate data structures with shared data, such as DAGs. Both separation logic and region logic are successful approaches to framing, with separation logic providing a concise way to reason about data structures that are disjoint, and region logic providing the ability to reason about framing for shared mutable data. In order to obtain the benefits of both logics for programs with shared mutable data, this paper unifies them into a single logic, which can encode both of them and allows them to interoperate. The new logic thus provides a way to reason about program modules specified in a mix of styles.

References

  1. BCD+06 Barnett MChang B-YEDeLine RJacobs BLeino KRMBoogie: a modular reusable verifier for object-oriented programsFormal methods for components and objects (FMCO) 2005, revised lectures (Lecture notes in computer science)2006New York, NYSpringer-Verlag364387Google ScholarGoogle Scholar
  2. BCD+11 Barrett C, Conway CL, Deters M, Hadarean L, Jovanović D, King T, Reynolds A, Tinelli C (2011) Cvc4. In: Proceedings of the 23rd international conference on computer aided verification, CAV'11. Springer, Berlin, pp 171–177Google ScholarGoogle Scholar
  3. BCO05 Berdine, J., Calcagno, C., OHearn PW, : A decidable fragment of separation logic. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004: foundations of software technology and theoretical computer science. Lecture Notes in Computer Science, vol. 3328, pp. 97–109. Springer, Berlin (2004)Google ScholarGoogle Scholar
  4. BCO06 Berdine J, Calcagno C, O'Hearn PW (2006) Smallfoot: modular automatic assertion checking with separation logic. In: Proceedings of the 4th international conference on formal methods for components and objects, FMCO'05. Springer, Berlin, pp 115–137Google ScholarGoogle Scholar
  5. BCOM05 Berdine J, Calcagno C, O'Hearn PW, Mary Q (2005) Symbolic execution with separation logic. In: In APLAS. Springer, pp 52–68Google ScholarGoogle Scholar
  6. BE16a Bao Y, Ernst G (2016) A KIV project for defining semantics for intuitionistic separation logic. http://www.eecs.ucf.edu/~ybao/project/sl-semantics/index.xmlGoogle ScholarGoogle Scholar
  7. BE16b Bao Y, Ernst G (2016) A KIV project for proving encoding supported separation logic into unified fine-grained region logic. http://www.eecs.ucf.edu/~ybao/project/frl-sep-expr/index.xmlGoogle ScholarGoogle Scholar
  8. BF12 Bobot BFilliâtre J-CSeparation predicates: a taste of separation logic in first-order logicFormal methods and software engineering: 14th international conference on formal engineering methods, ICFEM 2012, Kyoto, Japan, November 12–16 proceedings2012BerlinSpringer16718110.1007/978-3-642-34281-3_14Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. BHS07 Beckert BHähnle RSchmitt PHVerification of object-oriented software: the KeY approach Lecture Notes in Computer Science2007BerlinSpringerGoogle ScholarGoogle Scholar
  10. BLE15 Bao Y, Leavens GT, Ernst G (2015) Conditional effects in fine-grained region logic. In: Proceedings of the 17th Workshop on formal techniques for Java-like programs, FTfJP '15. ACM, New York, NY, USA, pp 5:1–5:6Google ScholarGoogle Scholar
  11. BLE16 Bao Y, Leavens GT, Ernst G (2016) Fine-grained region logic and unified fine-grained region logic. Technical report CS-TR-16-01, Computer Science, University of Central Florida, Orlando, FL, August 2016. http://www.eecs.ucf.edu/~ybao/tech-reports/FRL-UFRL-TR.pdfGoogle ScholarGoogle Scholar
  12. BLS05 Barnett MLeino KRMSchulte WBarthe GBurdy LHuisman MLanet J-LMuntean TThe Spec# programming system: an overviewConstruction and analysis of safe, secure, and interoperable smart devices (CASSIS 2004) (Lecture Notes in Computer Science)2005NYNew York496910.1007/978-3-540-30569-9_3Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. BMR95 Borgida AMylopoulos JReiter ROn the frame problem in procedure specificationsIEEE Trans Softw Eng1995211078579810.1109/32.469460Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. BN13 Banerjee B, Naumann DA (2013) Local reasoning for global invariants, part ii: dynamic boundaries. J ACM 60(3):19:1–19:73Google ScholarGoogle Scholar
  15. BN14 Banerjee ANaumann DAA logical analysis of framing for specifications with pure method callsVerified software: theories, tools and experiments: 6th international conference, VSTTE 2014, Vienna, Austria, July 17–18, revised selected papers2014ChamSpringer320Google ScholarGoogle Scholar
  16. BNR08 Banerjee ANaumann DARosenberg SVitek JRegional logic for local reasoning about global invariantsEuropean conference on object-oriented programming (ECOOP) (Lecture Notes in Computer Science)2008New YorkSpringer387411Google ScholarGoogle Scholar
  17. BNR13 Banerjee A, Naumann DA, Rosenberg S (2013) Local reasoning for global invariants, part i: region logic. J ACM 60(3):18:1–18:56Google ScholarGoogle Scholar
  18. Bro07 Brotherston J (2007) Formalised inductive reasoning in the logic of bunched implications. In: Proceedings of the 14th international conference on static analysis, SAS'07. Springer, Berlin, pp 87–103Google ScholarGoogle Scholar
  19. CHO+11 Cook B, Haase C, Ouaknine J, Parkinson M, Worrell J (2011) Tractable reasoning in a fragment of separation logic. In: CONCUR 2011–Concurrency theory: 22nd international conference, CONCUR 2011, Aachen, Germany, September 6–9, 2011. Proceedings. Springer, Berlin, pp 235–249Google ScholarGoogle Scholar
  20. CKLP06 Chalin PKiniry JRLeavens GTPoll EBeyond assertions: advanced specification and verification with JML and ESC/Java2Formal methods for components and objects (FMCO) 2005, Revised Lectures (Lecture Notes in Computer Science)2006BerlinSpringer342363Google ScholarGoogle Scholar
  21. CLSE05 Cheon YLeavens GTSitaraman MEdwards SModel variables: cleanly supporting abstraction in design by contractSoftw Pract Exp200535658359910.1002/spe.649Google ScholarGoogle ScholarCross RefCross Ref
  22. dMB08 de Moura LBjørner NZ3: an efficient SMT solverTools and algorithms for the construction and analysis (TACAS) (Lecture Notes in Computer Science)2008BerlinSpringer337340Google ScholarGoogle Scholar
  23. DOY06 Distefano D, O'Hearn PW, Yang H (2006) A local shape analysis based on separation logic. In Proceedings of the 12th International conference on tools and algorithms for the construction and analysis of systems, TACAS'06. Springer, Berlin, pp 287–302Google ScholarGoogle Scholar
  24. EPS+14 Ernst G, Pfhler J, Schellhorn G,Haneberg D, Reif W (2014) Kiv: overview and verifythis competition. Int J Softw Tools Technol Transf 1–18Google ScholarGoogle Scholar
  25. FL17 Ford RL, Leino KRM (2017) Dafny reference manual (draft). https://github.com/Microsoft/dafny/blob/master/Docs/DafnyRef/out/DafnyRef.pdfGoogle ScholarGoogle Scholar
  26. GHW85 Guttag JVHorning JJWing JJThe Larch family of specification languagesIEEE Softw198525243610.1109/MS.1985.231756Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. HV13 Hobor A, Villard J (2012) The ramifications of sharing in data structures. In: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL '13. ACM, New York, pp 523–536Google ScholarGoogle Scholar
  28. IO01 Ishtiaq SS, O'Hearn PW (2001) BI as an assertion language for mutable data structures. In: Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL '01. ACM, New York, pp 14–26Google ScholarGoogle Scholar
  29. Jon86 Jones CBSystematic software development using VDM1986Prentice-Hall Inc, Englewood CliffsInternational Series in Computer Science0584.68008Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. JSP10 Jacobs B, Smans J, Piessens F (2010) The verifast program verifier: a tutorialGoogle ScholarGoogle Scholar
  31. Kas06 Kassios ITSekerinski EMisra JNipkow TDynamic frames: support for framing, dependencies and sharing without restrictionsFormal methods (FM) (Lecture Notes in Computer Science)2006BerlinSpringer268283Google ScholarGoogle Scholar
  32. Kas11 Kassios ITThe dynamic frames theoryForm Asp Comput2011233267288282226110.1007/s00165-010-0152-51252.68192Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. LBR01 Leavens GT, Baker AL, Ruby C (2001) Preliminary design of JML: a behavioral interface specification language for Java. Technical Report 98-06q, Iowa State University, Department of Computer Science, December 2001. This is an obsolete versionGoogle ScholarGoogle Scholar
  34. LBR06 Leavens GTBaker ALRuby CPreliminary design of JML: a behavioral interface specification language for JavaACM SIGSOFT Softw Eng Notes200631313810.1145/1127878.1127884Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Lei95 Leino KRM (1995) Toward reliable modular programs. Ph.D. thesis, California Institute of Technology. Available as Technical Report Caltech-CS-TR-95-03Google ScholarGoogle Scholar
  36. Lei98 Leino KRMData groups: specifying the modification of extended stateOOPSLA '98 conference proceedings (ACM SIGPLAN Notices), vol 33(10)1998New YorkACM144153Google ScholarGoogle Scholar
  37. Lei08 Leino KRM (2008) Specification and verification of object-oriented software. Lecture notes from Marktoberdorf Internation Summer School. http://research.microsoft.com/en-us/um/people/leino/papers/krml190.pdfGoogle ScholarGoogle Scholar
  38. Lei10 Leino KRM (2010) Dafny: an automatic program verifier for functional correctness. In: Logic for programming, artificial intelligence, and reasoning, 16th international conference, LPAR-16 (Lecture Notes in Computer Science), vol 6355. Springer, pp 348–370Google ScholarGoogle Scholar
  39. LM09 Leino KRMMüller PCastagna GA basis for verifying multi-threaded programsProgramming languages and systems, 18th European symposium on programming, ESOP 2009 (Lecture Notes in Computer Science)2009BerlinSpringer378393Google ScholarGoogle Scholar
  40. LM10 Leino KRM, Monahan R (2010) Dafny meets the verification benchmarks challenge. In: Proceedings of the third international conference on verified software: theories, tools, experiments (Lecture Notes in Computer Science), vol 6217. Springer, Berlin, pp 112–126Google ScholarGoogle Scholar
  41. LN02 Leino KRMNelson GData abstraction and information hidingACM Trans Program Lang Syst200224549155310.1145/570886.570888Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. LPHZ02 Leino KRM, Poetzsch-Heffter A, Zhou Y (2002) Using data groups to specify and check side effects. In: Proceedings of the ACM SIGPLAN 2002 Conference on programming language design and implementation (PLDI'02) (ACM SIGPLAN Notices), vol 37(5). ACM, New York, pp 246–257Google ScholarGoogle Scholar
  43. MPHL06 Müller PPoetzsch-Heffter ALeavens GTModular invariants for layered object structuresSci Comput Program2006623253286223407910.1016/j.scico.2006.03.0011100.68539Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. MU15 Mostowski W, Ulbrich M (2015) Dynamic dispatch for method contracts through abstract predicates. In: Proceedings of the 14th international conference on modularity, MODULARITY 2015. ACM, New York, pp 109–116Google ScholarGoogle Scholar
  45. Mül02 Müller PModular specification and verification of object-oriented programs (Lecture Notes in Computer Science)2002BerlinSpringer10.1007/3-540-45651-1Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. NVP98 Noble J, Vitek J, Potter J (1998) Flexible alias protection. In: Jul E (ed) ECOOP '98—Object-oriented programming, 12th European conference, Brussels, Belgium (Lecture Notes in Computer Science), vol 1445. Springer, pp 158–185Google ScholarGoogle Scholar
  47. ORY01 O'Hearn P, Reynolds J, Yang H (2001) Local reasoning about programs that alter data structures. In: Proceedings of CSL'01 (Lecture Notes in Computer Science), vol 2142. Springer, Berlin, pp 1–19Google ScholarGoogle Scholar
  48. OYR04 O'Hearn PW, Yang H, Reynolds JC (2004) Separation and information hiding. In: Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL '04. ACM, New York, pp 268–280Google ScholarGoogle Scholar
  49. OYR09 O'Hearn PW, Yang H, Reynolds JC (2009) Separation and information hiding. ACM Trans Program Lang Syst 31(3):11:1–11:50Google ScholarGoogle Scholar
  50. Par05 Parkinson MJ (2005) Local reasoning for Java. Technical Report 654, University of Cambridge Computer Laboratory, November 2005. The author's Ph.D. dissertationGoogle ScholarGoogle Scholar
  51. PB05 Parkinson MBierman GPalsberg JAbadi MSeparation logic and abstractionACM symposium on principles of programming languages2005New YorkACM247258Google ScholarGoogle Scholar
  52. PB08 Parkinson MBierman GWadler PSeparation logic, abstraction and inheritanceACM symposium on principles of programming languages2008New YorkACM7586Google ScholarGoogle Scholar
  53. PS12 Parkinson, M.J., Summers, A.J.: The relationship between separation logic and implicit dynamic frames. Log Methods Comput Sci 8(3), (2012)Google ScholarGoogle Scholar
  54. RBN12 Rosenberg SBanerjee ANaumann DADecision procedures for region logicVerification, Model checking, and abstract interpretation2012BerlinSpringer37939510.1007/978-3-642-27940-9_25Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Rey02 Reynolds JC (2002) Separation logic: a logic for shared mutable data structures. In: Proceedings of the seventeenth annual IEEE symposium on logic in computer science. IEEE Computer Society Press, Los Alamitos, pp 55–74Google ScholarGoogle Scholar
  56. SJP10 Smans J, Jacobs B, Piessens F (2010) Heap-dependent expressions in separation logic. In: Proceedings of the 12th IFIP WG 6.1 international conference and 30th IFIP WG 6.1 international conference on formal techniques for distributed systems, FMOODS'10/FORTE'10. Springer, Berlin, pp 170–185Google ScholarGoogle Scholar
  57. SJP12 Smans J, Jacobs B, Piessens F (2012) Implicit dynamic frames. ACM Trans Program Lang Syst 34(1):2:1–2:58Google ScholarGoogle Scholar
  58. SJPS10 Smans JJacobs BPiessens FSchulte WAutomatic verification of java programs with dynamic framesForm Asp Comput201022342345710.1007/s00165-010-0148-11204.68131Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Tue10 Tuerk T (2010) Local reasoning about while-loops. In: International conference on verified software: theories, tools and experiments—theory workshop (VS-TheoryGoogle ScholarGoogle Scholar
  60. Wei11 Weiß B (2011) Deductive Verification of object-oriented software: dynamic frames, dynamic logic and predicate abstraction. Ph.D. thesis, Karlsruhe Institute of TechnologyGoogle ScholarGoogle Scholar
  61. YO02 Yang H, O'Hearn PW (2002) A semantic basis for local reasoning. In: Proceedings of the 5th international conference on foundations of software science and computation structures, FoSSaCS '02. Springer, London, pp 402–416Google ScholarGoogle Scholar

Index Terms

  1. Unifying separation logic and region logic to allow interoperability
            Index terms have been assigned to the content through auto-classification.

            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