skip to main content
research-article

A proof system for separation logic with magic wand

Authors Info & Claims
Published:08 January 2014Publication History
Skip Abstract Section

Abstract

Separation logic is an extension of Hoare logic which is acknowledged as an enabling technology for large-scale program verification. It features two new logical connectives, separating conjunction and separating implication, but most of the applications of separation logic have exploited only separating conjunction without considering separating implication. Nevertheless the power of separating implication has been well recognized and there is a growing interest in its use for program verification. This paper develops a proof system for full separation logic which supports not only separating conjunction but also separating implication. The proof system is developed in the style of sequent calculus and satisfies the admissibility of cut. The key challenge in the development is to devise a set of inference rules for manipulating heap structures that ensure the completeness of the proof system with respect to separation logic. We show that our proof of completeness directly translates to a proof search strategy.

Skip Supplemental Material Section

Supplemental Material

d2_left_t12.mp4

References

  1. Josh Berdine, Cristiano Calcagno, Byron Cook, Dino Distefano, Peter W. O'Hearn, Thomas Wies, and Hongseok Yang. Shape analysis for composite data structures. In Proc. CAV, pages 178--192, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Josh Berdine, Cristiano Calcagno, and Peter W. O'Hearn. A decidable fragment of separation logic. In Proc. FSTTCS, pages 97--109, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Josh Berdine, Cristiano Calcagno, and Peter W. O'Hearn. Smallfoot: Modular automatic assertion checking with separation logic. In Proc. FMCO, pages 115--137, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Josh Berdine, Cristiano Calcagno, and Peter W. O'Hearn. Symbolic execution with separation logic. In Proc. APLAS, pages 52--68, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Rémi Brochenin, Stéphane Demri, and Etienne Lozes. On the almighty wand. Information and Computation, 211:106--137, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. James Brotherston and Max Kanovich. Undecidability of propositional separation logic and its neighbours. In Proc. LICS, pages 130--139, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Cristiano Calcagno and Dino Distefano. Infer: an automatic program verifier for memory safety of C programs. In Proceedings of the Third international conference on NASA Formal methods, pages 459--465, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cristiano Calcagno, Philippa Gardner, and Matthew Hague. From separation logic to first-order logic. In Proc. FOSSACS, pages 395--409, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cristiano Calcagno, Hongseok Yang, and Peter W. O'Hearn. Computability and complexity results for a spatial assertion language for data structures. In Proceedings of the 21st Conference on Foundations of Software Technology and Theoretical Computer Science, pages 108--119, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Bor-Yuh Evan Chang and Xavier Rival. Relational inductive shape analysis. In Proc. POPL, pages 247--260, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Dino Distefano, Peter W. O'Hearn, and Hongseok Yang. A local shape analysis based on separation logic. In Proc. TACAS, pages 287--302, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dino Distefano and Matthew J. Parkinson. jStar: towards practical verification for Java. In Proc. OOPSLA, pages 213--226, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Robert Dockins, Aquinas Hobor, and Andrew W. Appel. A fresh lookat separation algebras and share accounting. In Proc. APLAS, pages 161--177, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kamil Dudka, Petr Müller, Petr Peringer, and Tomáš Vojnar. Predator: a tool for verification of low-level list manipulation. In Proc. TACAS, pages 627--629, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Didier Galmiche and Daniel Méry. Tableaux and resource graphs for separation logic. Journal of Logic and Computation, 20:189--231, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Christoph Haase, Samin Ishtiaq, Joël Ouaknine, and Matthew J. Parkinson. SeLoger: A tool for graph-based reasoning in separation logic. In Proc. CAV, pages 790--795, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Aquinas Hobor and Jules Villard. The ramifications of sharing in data structures. In Proc. POPL, pages 523--536, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Samin S. Ishtiaq and Peter W. O'Hearn. BI as an assertion language for mutable data structures. In Proc. POPL, pages 14--26, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Bart Jacobs, Jan Smans, and Frank Piessens. VeriFast: Imperative programs as proofs. In Proc. VSTTE, pages 59--68, 2010.Google ScholarGoogle Scholar
  20. Neelakantan R. Krishnaswami. Reasoning about iterators with separation logic. In Proc. SAVCBS, pages 83--86, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Dominique Larchey-Wendling and Didier Galmiche. The undecidability of boolean BI through phase semantics. In Proc. LICS, pages 140--149, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Toshiyuki Maeda, Haruki Sato, and Akinori Yonezawa. Extended alias type system using separating implication. In Proc. TLDI, pages 29--42, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Stephen Magill, Josh Berdine, Edmund M. Clarke, and Byron Cook. Arithmetic strengthening for shape analysis. In Proc. SAS, pages 419--436, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Juan Antonio Navarro Pérez and Andrey Rybalchenko. Separation logic + superposition calculus = heap theorem prover. In Proc. PLDI, pages 556--566, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Huu Hai Nguyen andWei-Ngan Chin. Enhancing program verification with lemmas. In Proc. CAV, pages 355--369, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Jonghyun Park, Jeongbong Seo, and Sungwoo Park. A theorem prover for Boolean BI. In Proc. POPL, pages 219--232, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Matthew J. Parkinson and Alexander J. Summers. The relationship between separation logic and implicit dynamic frames. In Proc. ESOP, pages 439--458, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. John C. Reynolds. Separation logic: A logic for shared mutable data structures. In Proc. LICS, pages 55--74, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Hongseok Yang. An example of local reasoning in BI pointer logic: the Schorr-Waite graph marking algorithm. In Proceedings of the 1st Workshop on Semantics, Program Analysis, and Computing Environments for Memory Management, pages 41--68, 2001.Google ScholarGoogle Scholar

Index Terms

  1. A proof system for separation logic with magic wand

        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

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 49, Issue 1
          POPL '14
          January 2014
          661 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2578855
          Issue’s Table of Contents
          • cover image ACM Conferences
            POPL '14: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
            January 2014
            702 pages
            ISBN:9781450325448
            DOI:10.1145/2535838

          Copyright © 2014 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 8 January 2014

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!