skip to main content
research-article

Proof search for propositional abstract separation logics via labelled sequents

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

Abstract

Abstract separation logics are a family of extensions of Hoare logic for reasoning about programs that mutate memory. These logics are "abstract" because they are independent of any particular concrete memory model. Their assertion languages, called propositional abstract separation logics, extend the logic of (Boolean) Bunched Implications (BBI) in various ways.

We develop a modular proof theory for various propositional abstract separation logics using cut-free labelled sequent calculi. We first extend the cut-fee labelled sequent calculus for BBI of Hou et al to handle Calcagno et al's original logic of separation algebras by adding sound rules for partial-determinism and cancellativity, while preserving cut-elimination. We prove the completeness of our calculus via a sound intermediate calculus that enables us to construct counter-models from the failure to find a proof. We then capture other propositional abstract separation logics by adding sound rules for indivisible unit and disjointness, while maintaining completeness and cut-elimination. We present a theorem prover based on our labelled calculus for these logics.

Skip Supplemental Material Section

Supplemental Material

d2_left_t11.mp4

References

  1. A. W. Appel. Tactics for separation logic. Unpublished, 2006.Google ScholarGoogle Scholar
  2. F. Baader. The Description Logic Handbook: Theory, Implementation, and Applications. Cambridge University Press, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Berdine, C. Calcagno, and P. W. O'Hearn. Symbolic execution with separation logic. In phAPLAS, volume 3780 of LNCS, pages 52--68, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. Brochenin, S. Demria, and E. Lozes. On the almighty wand. Inform. and Comput., 211: 106--137, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Brotherston and M. Kanovich. Undecidability of propositional separation logic and its neighbours. In LICS, pages 130--139. IEEE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J. Brotherston and J. Villard. Parametric completeness for separation theories. Technical Report RN/13/11, UCL, 2013.Google ScholarGoogle Scholar
  7. C. Calcagno, H. Yang, and P. W. O'Hearn. Computability and complexity results for a spatial assertion language for data structures. In FSTTCS, volume 2245 of phLNCS, pages 108--119, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Calcagno, P. W. O'Hearn, and H. Yang. Local action and abstract separation logic. In phLICS, pages 366--378. IEEE, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Calcagno, M. Parkinson, and V. Vafeiadis. Modular safety checking for fine-grained concurrency. In phSAS, volume 4634 of phLNCS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Cherini and J. O. Blanco. Local reasoning for abstraction and sharing. In SAC, pages 552--557. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. R. Dockins, A. Hobor, and A. W. Appel. A fresh look at separation algebras and share accounting. In phAPLAS, volume 5904 of LNCS, pages 161--177, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Dodds, S. Jagannathan, and M. J. Parkinson. Modular reasoning for deterministic parallelism. In POPL, pages 259--270. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. Galmiche and D. Larchey-Wendling. Expressivity properties of boolean BI through relational models. In phFSTTCS, volume 4337 of LNCS, pages 357--368, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Galmiche and D. Méry. Tableaux and resource graphs for separation logic. J. Logic Comput., 20 (1): 189--231, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. Haack and C. Hurlin. Resource usage protocols for iterators. J. Object Tech., 8 (4): 55--83, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  16. Z. Hóu, A. Tiu, and R. Goré. A labelled sequent calculus for BBI: Proof theory and proof search. In Tableaux, LNCS, 2013. page 172--187; extended version at arXiv:1302.4783.Google ScholarGoogle Scholar
  17. S. Ishtiaq and P. W. O'Hearn. BI as an assertion language for mutable data structures. In phPOPL, pages 14--26. ACM, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. B. Jensen and L. Birkedal. Fictional separation logic. In phESOP, volume 7211 of phLNCS, pages 377--396, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. N. R. Krishnaswami. Reasoning about iterators with separation logic. In SAVCBS, pages 83--86. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. D. Larchey-Wendling. The formal strong completeness of partial monoidal boolean BI. To appear in J. Logic. Comput., 2013.Google ScholarGoogle Scholar
  21. D. Larchey-Wendling and D. Galmiche. Exploring the relation between intuitionistic BI and boolean BI: An unexpected embedding. Math. Structures Comput. Sci., 19 (3): 435--500, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Larchey-Wendling and D. Galmiche. The undecidability of boolean BI through phase semantics. In LICS, pages 140--149. IEEE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. W. Lee and S. Park. A proof system for separation logic with magic wand. Technical Report CSE-2013--7, POSTECH, 2013.Google ScholarGoogle Scholar
  24. A. McCreight. Practical tactics for separation logic. In TPHOLs, volume 5674 of Lecture Notes in Computer Science, pages 343--358. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. S. Negri and J. von Plato. Structural Proof Theory. Cambridge University Press, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  26. P. W. O'Hearn and D. J. Pym. The logic of bunched implications. Bull. Symbolic Logic, 5 (2): 215--244, 1999.Google ScholarGoogle ScholarCross RefCross Ref
  27. J. Park, J. Seo, and S. Park. A theorem prover for boolean BI. In POPL, pages 219--232. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. M. Parkinson. Local Reasoning for Java. PhD thesis, Cambridge, 2005.Google ScholarGoogle Scholar
  29. J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In LICS, pages 55--74. IEEE, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. H. Tuch, G. Klein, and M. Norrish. Types, bytes, and separation logic. In POPL, pages 97--108. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. T. Tuerk. A formalisation of smallfoot in HOL. In TPHOLs, volume 5674 of LNCS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. V. Vafeiadis and M. Parkinson. A marriage of rely/guarantee and separation logic. In CONCUR, volume 4703 of LNCS, pages 256--271, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. H. Yang. Local Reasoning for Stateful Programs. PhD thesis, Illinois at Urbana-Champaign, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Proof search for propositional abstract separation logics via labelled sequents

      Recommendations

      Reviews

      Markus Wolf

      Pointers and sharing have always been difficult problems in program verification, and several extensions to Hoare logic have been proposed and investigated over the decades. A very promising, quite recent approach is Reynolds' separation logic, which draws on experiences in substructural or resource-sensitive logics having connectives different from classical logic. This paper is concerned with proof search in the propositional kernel of abstract separation logics (PASL), which have algebraic structures as models that abstract away the details of a concrete memory model. These abstract separation logics are in several ways similar to the logic of Boolean bunched implications (BBI). The paper starts with a short introduction that gives a historical perspective and raises the question of whether the proof theory developed for BBI can be useful for PASL. Following this, a labeled sequent calculus for PASL is derived, and it is shown that the cut-elimination property of the labeled sequent calculus for BBI easily transfers to PASL. The next section presents a Kripke-style semantics for PASL and a corresponding completeness proof. Extensions of the sequent calculus with rules that have already been proposed for some variant separation logics are the focus of the next two sections, and it is shown that some of the extensions are compatible with the results proved in the previous sections and some are not. An implementation of proof search in the sequent calculus for PASL with the addition of the disjointness rule is considered in the following section, and the results of several experimental proof searches are stated. The paper concludes with two sections on future and related work. While this paper is very interesting for researchers working in program verification, it cannot be read in isolation because the necessary basic intuitions stemming from programming are not provided. Reynolds' seminal paper on separation logic [1] should be read first. From a purely logical perspective, it is mainly self-contained, only referencing several proofs as being analogous to already-published proofs. Online Computing Reviews Service

      Access critical reviews of Computing literature here

      Become a reviewer for Computing Reviews.

      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
      About Cookies On This Site

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

      Learn more

      Got it!