Abstract
Most automated verifiers for separation logic are based on the symbolic-heap fragment, which disallows both the magic-wand operator and the application of classical Boolean operators to spatial formulas. This is not surprising, as support for the magic wand quickly leads to undecidability, especially when combined with inductive predicates for reasoning about data structures. To circumvent these undecidability results, we propose assigning a more restrictive semantics to the separating conjunction. We argue that the resulting logic, strong-separation logic, can be used for symbolic execution and abductive reasoning just like “standard” separation logic, while remaining decidable even in the presence of both the magic wand and the list-segment predicate—a combination of features that leads to undecidability for the standard semantics.
Chapter PDF
Similar content being viewed by others
References
T. Antonopoulos, N. Gorogiannis, C. Haase, M. I. Kanovich, and J. Ouaknine. Foundations for decision problems in separation logic with general inductive predicates. In Foundations of Software Science and Computation Structures - 17th International Conference, FOSSACS 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5–13, 2014, Proceedings, pages 411–425. Springer, Berlin Heidelberg, 2014.
A. W. Appel. Program Logics - for Certified Compilers. Cambridge University Press, 2014.
J. Berdine, C. Calcagno, and P. W. O’Hearn. A decidable fragment of separation logic. In FSTTCS 2004: Foundations of Software Technology and Theoretical Computer Science, 24th International Conference, Chennai, India, December 16–18, 2004, Proceedings, pages 97–109. Springer, 2004.
J. Berdine, C. Calcagno, and P. W. O’Hearn. Symbolic execution with separation logic. In Programming Languages and Systems, Third Asian Symposium, APLAS 2005, Tsukuba, Japan, November 2–5, 2005, Proceedings, pages 52–68. 2005.
J. Berdine, B. Cook, and S. Ishtiaq. Slayer: Memory safety for systems-level code. In Computer Aided Verification - 23rd International Conference, CAV 2011, Snowbird, UT, USA, July 14–20, 2011. Proceedings, pages 178–183, 2011.
S. Blom and M. Huisman. Witnessing the elimination of magic wands. International Journal on Software Tools for Technology Transfer, 17(6), 757–781, 2015.
R. Bornat, C. Calcagno, P. W. O’Hearn, and M. J. Parkinson. Permission accounting in separation logic. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2005, Long Beach, California, USA, January 12–14, 2005, pages 259–270, 2005.
R. Brochenin, S. Demri, and E. Lozes. On the almighty wand. Information and Computation, 211:106–137, 2012.
C. Calcagno, D. Distefano, J. Dubreil, D. Gabi, P. Hooimeijer, M. Luca, P. O’Hearn, I. Papakonstantinou, J. Purbrick, and D. Rodriguez. Moving fast with software verification. In K. Havelund, G. Holzmann, and R. Joshi, editors, NASA Formal Methods: 7th International Symposium, NFM 2015, Pasadena, CA, USA, April 27–29, 2015, Proceedings, pages 3–11, Cham, 2015. Springer International Publishing.
C. Calcagno, D. Distefano, P. W. O’Hearn, and H. Yang. Compositional shape analysis by means of bi-abduction. J. ACM, 58(6):26:1–26:66, Dec. 2011.
C. Calcagno, P. O’Hearn, and H. Yang. Local action and abstract separation logic. In Logic in Computer Science, 2007. LICS 2007. 22nd Annual IEEE Symposium on, pages 366–378, July 2007.
C. Calcagno, H. Yang, and P. O’Hearn. Computability and complexity results for a spatial assertion language for data structures. In R. Hariharan, V. Vinay, and M. Mukund, editors, FST TCS 2001: Foundations of Software Technology and Theoretical Computer Science, volume 2245 of Lecture Notes in Computer Science, pages 108–119. Springer, Berlin Heidelberg, 2001.
B. Cook, C. Haase, J. Ouaknine, M. J. Parkinson, and J. Worrell. 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, pages 235–249, 2011.
S. Demri and M. Deters. Expressive completeness of separation logic with two variables and no separating conjunction. In Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic (CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS), CSL-LICS ’14, pages 37:1–37:10, New York, NY, USA, 2014. ACM.
S. Demri, D. Galmiche, D. Larchey-Wendling, and D. Méry. Separation logic with one quantified variable. In E. Hirsch, S. Kuznetsov, J.-É. Pin, and N. Vereshchagin, editors, Computer Science - Theory and Applications, volume 8476 of Lecture Notes in Computer Science, pages 125–138. Springer International Publishing, 2014.
S. Demri, É. Lozes, and A. Mansutti. The effects of adding reachability predicates in propositional separation logic. In C. Baier and U. Dal Lago, editors, Foundations of Software Science and Computation Structures, pages 476–493, Cham, 2018. Springer International Publishing.
K. Dudka, P. Peringer, and T. Vojnar. Predator: A practical tool for checking manipulation of dynamic data structures using separation logic. In Computer Aided Verification - 23rd International Conference, CAV 2011, Snowbird, UT, USA, July 14–20, 2011. Proceedings, pages 372–378, 2011.
M. Echenim, R. Iosif, and N. Peltier. The bernays-schönfinkel-ramsey class of separation logic on arbitrary domains. In M. Bojańczyk and A. Simpson, editors, Foundations of Software Science and Computation Structures, pages 242–259, Cham, 2019. Springer International Publishing.
N. Gorogiannis, M. Kanovich, and P. W. O’Hearn. The complexity of abduction for separated heap abstractions. In E. Yahav, editor, Static Analysis: 18th International Symposium, SAS 2011, Venice, Italy, September 14–16, 2011. Proceedings, pages 25–42, Berlin, Heidelberg, 2011. Springer, Berlin Heidelberg.
X. Gu, T. Chen, and Z. Wu. A complete decision procedure for linearly compositional separation logic with data constraints. In Automated Reasoning - 8th International Joint Conference, IJCAR 2016, Coimbra, Portugal, June 27 - July 2, 2016, Proceedings, pages 532–549, 2016.
R. Iosif, A. Rogalewicz, and J. Simácek. The tree width of separation logic with recursive definitions. In Automated Deduction - CADE-24 - 24th International Conference on Automated Deduction, Lake Placid, NY, USA, June 9–14, 2013. Proceedings, pages 21–38, 2013.
R. Iosif, A. Rogalewicz, and T. Vojnar. Deciding entailments in inductive separation logic with tree automata. In Automated Technology for Verification and Analysis - 12th International Symposium, ATVA 2014, Sydney, NSW, Australia, November 3–7, 2014, Proceedings, pages 201–218, 2014.
S. S. Ishtiaq and P. W. O’Hearn. BI as an assertion language for mutable data structures. In Conference Record of POPL 2001: The 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, London, UK, January 17–19, 2001, pages 14–26, 2001.
B. Jacobs, J. Smans, P. Philippaerts, F. Vogels, W. Penninckx, and F. Piessens. Verifast: A powerful, sound, predictable, fast verifier for C and java. In NASA Formal Methods - Third International Symposium, NFM 2011, Pasadena, CA, USA, April 18–20, 2011. Proceedings, pages 41–55, 2011.
J. Katelaan, D. Jovanović, and G. Weissenbacher. A separation logic with data: Small models and automation. In D. Galmiche, S. Schulz, and R. Sebastiani, editors, Automated Reasoning, pages 455–471, Cham, 2018. Springer International Publishing.
J. Katelaan, C. Matheja, and F. Zuleger. Effective entailment checking for separation logic with inductive definitions. In Tools and Algorithms for the Construction and Analysis of Systems - 25th International Conference, TACAS 2019, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2019, Prague, Czech Republic, April 6–11, 2019, Proceedings, Part II, pages 319–336, 2019.
J. Katelaan and F. Zuleger. Beyond symbolic heaps: Deciding separation logic with inductive definitions. In E. Albert and L. Kovács, editors, LPAR 2020: 23rd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, Alicante, Spain, May 22–27, 2020, volume 73 of EPiC Series in Computing, pages 390–408. EasyChair, 2020.
Q. L. Le, M. Tatsuta, J. Sun, and W. Chin. A decidable fragment in separation logic with inductive predicates and arithmetic. In Computer Aided Verification - 29th International Conference, CAV 2017, Heidelberg, Germany, July 24–28, 2017, Proceedings, Part II, pages 495–517, 2017.
P. Madhusudan, G. Parlato, and X. Qiu. Decidable logics combining heap structures and data. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’11, pages 611–622, New York, NY, USA, 2011. ACM.
P. W. O’Hearn. Resources, concurrency, and local reasoning. Theor. Comput. Sci., 375(1–3):271–307, 2007.
J. Pagel. Decision Procedures for Separation Logic: Beyond Symbolic Heaps. PhD thesis, TU Wien, 2020. https://repositum.tuwien.at/handle/20.500.12708/16333.
J. Pagel, C. Matheja, and F. Zuleger. Complete entailment checking for separation logic with inductive definitions. CoRR, abs/2002.01202, 2020.
J. Pagel and F. Zuleger. Strong-separation logic. CoRR, abs/2001.06235, 2020.
J. A. N. Pérez and A. Rybalchenko. Separation logic modulo theories. In Programming Languages and Systems - 11th Asian Symposium, APLAS 2013, Melbourne, VIC, Australia, December 9–11, 2013. Proceedings, pages 90–106. 2013.
R. Piskac, T. Wies, and D. Zufferey. Automating separation logic using SMT. In N. Sharygina and H. Veith, editors, Computer Aided Verification, volume 8044 of Lecture Notes in Computer Science, pages 773–789. Springer, Berlin Heidelberg, 2013.
R. Piskac, T. Wies, and D. Zufferey. Automating separation logic with trees and data. In Computer Aided Verification - 26th International Conference, CAV 2014, Held as Part of the Vienna Summer of Logic, VSL 2014, Vienna, Austria, July 18–22, 2014. Proceedings, pages 711–728, 2014.
X. Qiu, P. Garg, A. Stefanescu, and P. Madhusudan. Natural proofs for structure, data, and separation. In ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, Seattle, WA, USA, June 16–19, 2013, pages 231–242, 2013.
A. Reynolds, R. Iosif, and C. Serban. Reasoning in the bernays-schönfinkel-ramsey fragment of separation logic. In Verification, Model Checking, and Abstract Interpretation - 18th International Conference, VMCAI 2017, Paris, France, January 15–17, 2017, Proceedings, pages 462–482, 2017.
A. Reynolds, R. Iosif, C. Serban, and T. King. A decision procedure for separation logic in smt. In C. Artho, A. Legay, and D. Peled, editors, Automated Technology for Verification and Analysis, pages 244–261, Cham, 2016. Springer International Publishing.
J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In 17th IEEE Symposium on Logic in Computer Science (LICS 2002), 22–25 July 2002, Copenhagen, Denmark, Proceedings, pages 55–74, 2002.
M. Schwerhoff and A. J. Summers. Lightweight support for magic wands in an automatic verifier. In 29th European Conference on Object-Oriented Programming, ECOOP 2015, July 5–10, 2015, Prague, Czech Republic, pages 614–638, 2015.
M. Tatsuta and D. Kimura. Separation logic with monadic inductive definitions and implicit existentials. In Programming Languages and Systems - 13th Asian Symposium, APLAS 2015, Pohang, South Korea, November 30 - December 2, 2015, Proceedings, pages 69–89, 2015.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.
The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
Copyright information
© 2021 The Author(s)
About this paper
Cite this paper
Pagel, J., Zuleger, F. (2021). Strong-Separation Logic. In: Yoshida, N. (eds) Programming Languages and Systems. ESOP 2021. Lecture Notes in Computer Science(), vol 12648. Springer, Cham. https://doi.org/10.1007/978-3-030-72019-3_24
Download citation
DOI: https://doi.org/10.1007/978-3-030-72019-3_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-72018-6
Online ISBN: 978-3-030-72019-3
eBook Packages: Computer ScienceComputer Science (R0)