Advertisement

Completeness of Cyclic Proofs for Symbolic Heaps with Inductive Definitions

  • Makoto TatsutaEmail author
  • Koji Nakazawa
  • Daisuke Kimura
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11893)

Abstract

Separation logic is successful for software verification in both theory and practice. Decision procedure for symbolic heaps is one of the key issues. This paper proposes a cyclic proof system for symbolic heaps with general form of inductive definitions called cone inductive definitions, and shows its soundness and completeness. Cone inductive definitions are obtained from bounded-treewidth inductive definitions by imposing some restrictions for existentials, but they still include a wide class of recursive data structures. The completeness is proved by using a proof search algorithm and it also gives us a decision procedure for entailments of symbolic heaps with cone inductive definitions. The time complexity of the algorithm is nondeterministic double exponential. A prototype system for the algorithm has been implemented and experimental results are also presented.

Notes

Acknowledgments

We would like to thank Prof. Kazushige Terui for valuable discussions. This is partially supported by Core-to-Core Program (A. Advanced Research Networks) of the Japan Society for the Promotion of Science.

References

  1. 1.
    Antonopoulos, T., Gorogiannis, N., Haase, C., Kanovich, M., Ouaknine, J.: Foundations for decision problems in separation logic with general inductive predicates. In: Muscholl, A. (ed.) FoSSaCS 2014. LNCS, vol. 8412, pp. 411–425. Springer, Heidelberg (2014).  https://doi.org/10.1007/978-3-642-54830-7_27CrossRefzbMATHGoogle Scholar
  2. 2.
    Berardi, S., Tatsuta, M.: Classical system of Martin-Löf’s inductive definitions is not equivalent to cyclic proof system. In: Esparza, J., Murawski, A.S. (eds.) FoSSaCS 2017. LNCS, vol. 10203, pp. 301–317. Springer, Heidelberg (2017).  https://doi.org/10.1007/978-3-662-54458-7_18CrossRefzbMATHGoogle Scholar
  3. 3.
    Berardi, S., Tatsuta, M.: Equivalence of inductive definitions and cyclic proofs under arithmetic. In: Proceedings of LICS 2017, pp. 1–12 (2017)Google Scholar
  4. 4.
    Brochenin, R., Demri, S., Lozes, E.: On the almighty wand. In: Kaminski, M., Martini, S. (eds.) CSL 2008. LNCS, vol. 5213, pp. 323–338. Springer, Heidelberg (2008).  https://doi.org/10.1007/978-3-540-87531-4_24CrossRefGoogle Scholar
  5. 5.
    Chang, B.-Y.E., Rival, X.: Relational inductive shape analysis. In: Proceedings of POPL 2008, pp. 247–260 (2008)CrossRefGoogle Scholar
  6. 6.
    Berdine, J., Calcagno, C., O’Hearn, P.W.: A decidable fragment of separation logic. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 97–109. Springer, Heidelberg (2004).  https://doi.org/10.1007/978-3-540-30538-5_9CrossRefzbMATHGoogle Scholar
  7. 7.
    Berdine, J., Calcagno, C., O’Hearn, P.W.: Symbolic execution with separation logic. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 52–68. Springer, Heidelberg (2005).  https://doi.org/10.1007/11575467_5CrossRefGoogle Scholar
  8. 8.
    Brotherston, J.: Formalised inductive reasoning in the logic of bunched implications. In: Nielson, H.R., Filé, G. (eds.) SAS 2007. LNCS, vol. 4634, pp. 87–103. Springer, Heidelberg (2007).  https://doi.org/10.1007/978-3-540-74061-2_6CrossRefGoogle Scholar
  9. 9.
    Brotherston, J., Simpson, A.: Sequent calculi for induction and infinite descent. J. Logic Comput. 21(6), 1177–1216 (2011)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Brotherston, J., Distefano, D., Petersen, R.L.: Automated cyclic entailment proofs in separation logic. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS (LNAI), vol. 6803, pp. 131–146. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-22438-6_12CrossRefzbMATHGoogle Scholar
  11. 11.
    Brotherston, J., Gorogiannis, N., Petersen, R.L.: A generic cyclic theorem prover. In: Jhala, R., Igarashi, A. (eds.) APLAS 2012. LNCS, vol. 7705, pp. 350–367. Springer, Heidelberg (2012).  https://doi.org/10.1007/978-3-642-35182-2_25CrossRefGoogle Scholar
  12. 12.
    Brotherston, J., Fuhs, C., Gorogiannis, N., Navarro Pérez, J.: A decision procedure for satisfiability in separation logic with inductive predicates. In: Proceedings of CSL-LICS 2014, Article 25 (2014)Google Scholar
  13. 13.
    Brotherston, J., Gorogiannis, N., Kanovich, M., Rowe, R.: Model checking for symbolic-heap separation logic with inductive predicates. In: Proceedings of POPL 2016, pp. 84–96 (2016)Google Scholar
  14. 14.
    Chin, W., David, C., Nguyen, H., Qin, S.: Automated verification of shape, size and bag properties via user-defined predicates in separation logic. Sci. Comput. Program. 77(9), 1006–1036 (2012)CrossRefGoogle Scholar
  15. 15.
    Chu, D., Jaffar, J., Trinh, M.: Automatic induction proofs of data-structures in imperative programs. In: Proceedings of PLDI 2015, pp. 457–466 (2015)CrossRefGoogle Scholar
  16. 16.
    Cook, B., Haase, C., Ouaknine, J., Parkinson, M., Worrell, J.: Tractable reasoning in a fragment of separation logic. In: Katoen, J.-P., König, B. (eds.) CONCUR 2011. LNCS, vol. 6901, pp. 235–249. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-23217-6_16CrossRefGoogle Scholar
  17. 17.
    Enea, C., Saveluc, V., Sighireanu, M.: Compositional invariant checking for overlaid and nested linked lists. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 129–148. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-37036-6_9CrossRefzbMATHGoogle Scholar
  18. 18.
    Enea, C., Lengál, O., Sighireanu, M., Vojnar, T.: Compositional entailment checking for a fragment of separation logic. In: Garrigue, J. (ed.) APLAS 2014. LNCS, vol. 8858, pp. 314–333. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-12736-1_17CrossRefGoogle Scholar
  19. 19.
    Iosif, R., Rogalewicz, A., Simacek, J.: The tree width of separation logic with recursive definitions. In: Bonacina, M.P. (ed.) CADE 2013. LNCS (LNAI), vol. 7898, pp. 21–38. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-38574-2_2CrossRefGoogle Scholar
  20. 20.
    Iosif, R., Rogalewicz, A., Vojnar, T.: Deciding entailments in inductive separation logic with tree automata. In: Cassez, F., Raskin, J.-F. (eds.) ATVA 2014. LNCS, vol. 8837, pp. 201–218. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-11936-6_15CrossRefGoogle Scholar
  21. 21.
    Katelaan, J., Matheja, C., Zuleger, F.: Effective entailment checking for separation logic with inductive definitions. In: Vojnar, T., Zhang, L. (eds.) TACAS 2019. LNCS, vol. 11428, pp. 319–336. Springer, Cham (2019).  https://doi.org/10.1007/978-3-030-17465-1_18CrossRefGoogle Scholar
  22. 22.
    Navarro Pérez, J.A., Rybalchenko, A.: Separation logic modulo theories. In: Shan, C. (ed.) APLAS 2013. LNCS, vol. 8301, pp. 90–106. Springer, Cham (2013).  https://doi.org/10.1007/978-3-319-03542-0_7CrossRefGoogle Scholar
  23. 23.
    Piskac, R., Wies, T., Zufferey, D.: Automating separation logic using SMT. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 773–789. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-39799-8_54CrossRefGoogle Scholar
  24. 24.
    Piskac, R., Wies, T., Zufferey, D.: Automating separation logic with trees and data. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 711–728. Springer, Cham (2014).  https://doi.org/10.1007/978-3-319-08867-9_47CrossRefGoogle Scholar
  25. 25.
    Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: Proceedings of Seventeenth Annual IEEE Symposium on Logic in Computer Science (LICS 2002), pp. 55–74 (2002)Google Scholar
  26. 26.
    Simpson, A.: Cyclic arithmetic is equivalent to Peano arithmetic. In: Esparza, J., Murawski, A.S. (eds.) FoSSaCS 2017. LNCS, vol. 10203, pp. 283–300. Springer, Heidelberg (2017).  https://doi.org/10.1007/978-3-662-54458-7_17CrossRefGoogle Scholar
  27. 27.
  28. 28.
  29. 29.
    Ta, Q.-T., Le, T.C., Khoo, S.-C., Chin, W.-N.: Automated mutual explicit induction proof in separation logic. In: Fitzgerald, J., Heitmeyer, C., Gnesi, S., Philippou, A. (eds.) FM 2016. LNCS, vol. 9995, pp. 659–676. Springer, Cham (2016).  https://doi.org/10.1007/978-3-319-48989-6_40CrossRefGoogle Scholar
  30. 30.
    Ta, Q., Le, T., Khoo, S., Chin, W.: Automated lemma synthesis in symbolic-heap separation logic. In: Proceedings of POPL 2018 (2018)Google Scholar
  31. 31.
    Tatsuta, M., Kimura, D.: Separation logic with monadic inductive definitions and implicit existentials. In: Feng, X., Park, S. (eds.) APLAS 2015. LNCS, vol. 9458, pp. 69–89. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-26529-2_5CrossRefzbMATHGoogle Scholar
  32. 32.
    Tatsuta, M., Nakazawa, K., Kimura, D.: Completeness of Cyclic Proofs for Symbolic Heaps (2018). https://arxiv.org/abs/1804.03938
  33. 33.
    The Cyclist Framework and Provers. http://www.cyclist-prover.org/

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.National Institute of Informatics/SokendaiHayamaJapan
  2. 2.Nagoya UniversityNagoyaJapan
  3. 3.Toho UniversityTokyoJapan

Personalised recommendations