skip to main content
research-article
Open Access

Automated mutual induction proof in separation logic

Authors Info & Claims
Published:01 April 2019Publication History
Skip Abstract Section

Abstract

Abstract

We present a deductive proof system to automatically prove separation logic entailments by mathematical induction. Our technique is called the mutual induction proof. It is an instance of the well-founded induction, a.k.a., Noetherian induction. More specifically, we propose a novel induction principle based on a well-founded relation of separation logic models. We implement this principle explicitly as inference rules so that it can be easily integrated into a deductive proof system. Our induction principle allows a goal entailment and other entailments derived during the proof search to be used as hypotheses to mutually prove each other. This feature increases the success chance of proving the goal entailment. We have implemented this mutual induction proof technique in a prototype prover and evaluated it on two entailment benchmarks collected from the literature as well as a synthetic benchmark. The experimental results are promising since our prover can prove most of the valid entailments in these benchmarks, and achieves a better performance than other state-of-the-art separation logic provers.

References

  1. BCI11 Berdine J, Cook B, Ishtiaq S (2011) SLAyer: memory safety for systems-level code. In: International conference on computer aided verification (CAV), pp 178–183Google ScholarGoogle Scholar
  2. BCO04 Berdine J, Calcagno C, O'Hearn PW (2004) A decidable fragment of separation logic. In: International conference on foundations of software technology and theoretical computer science (FSTTCS), pp 97–109Google ScholarGoogle Scholar
  3. BCO05 Berdine J, Calcagno C, O'Hearn PW (2005) Symbolic execution with separation logic. In: Asian symposium on programming languages and systems (APLAS), pp 52–68Google ScholarGoogle Scholar
  4. BDP11 Brotherston J, Distefano D, Petersen RL (2011) Automated cyclic entailment proofs in separation logic. In: International conference on automated deduction (CADE), pp 131–146Google ScholarGoogle Scholar
  5. BGP12 Brotherston J, Gorogiannis N, Petersen RL (2012) A generic cyclic theorem prover. In: Asian symposium on programming languages and systems (APLAS), pp 350–367Google ScholarGoogle Scholar
  6. BIP10 Bozga MIosif RPerarnau SQuantitative separation logic and programs with listsJ Autom Reason2010452131156267045910.1007/s10817-010-9179-91207.03038Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Bro+16 Brotherston J, Gorogiannis N, Kanovich MI, Rowe R (2016) Model checking for Symbolic-Heap Separation Logic with inductive predicates. In: Symposium on principles of programming languages (POPL), pp 84–96Google ScholarGoogle Scholar
  8. Bro07 Brotherston J (2007) Formalised inductive reasoning in the logic of bunched implications. In: International static analysis symposium (SAS), pp 87–103Google ScholarGoogle Scholar
  9. Bun01 Bundy ARobinson JAVoronkov AThe automation of proof by mathematical inductionHandbook of automated reasoning, vol 22001MIT PressElsevier84591110.1016/B978-044450813-3/50015-1Google ScholarGoogle ScholarCross RefCross Ref
  10. Cal+15 Calcagno C, Distefano D, Dubreil J, Gabi D, Hooimeijer P, Luca M, O'Hearn PW, Papakonstantinou I, Purbrick J, Rodriguez D (2015) Moving fast with software verification. In: NASA international symposium on formal methods (NFM), pp 3–11Google ScholarGoogle Scholar
  11. Chi+12 Chin W-NDavid CNguyen HHQin SAutomated verification of shape, size and bag properties via user-defined predicates in separation logicSci Comput Program20127791006103610.1016/j.scico.2010.07.0041243.68148Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. CJT15 Chu D-H, Jaffar J, Trinh M-T (2015) Automatic induction proofs of data-structures in imperative programs. In: Conference on programming language design and implementation (PLDI), pp 457–466Google ScholarGoogle Scholar
  13. Ene+14 Enea C, Lengál O, Sighireanu M, Vojnar T (2014) Compositional entailment checking for a fragment of separation logic. In: Asian symposium on programming languages and systems (APLAS), pp 314–333Google ScholarGoogle Scholar
  14. ESW15 Enea C, Sighireanu M, Wu Z (2015) On automated lemma generation for separation logic with inductive definitions. In: International symposium on automated technology for verification and analysis (ATVA), pp 80–96Google ScholarGoogle Scholar
  15. God92 Godel K (1992) On formally undecidable propositions of principia mathematica and related systems (Meltzer B, Trans.). Dover Publications, Mineola. ISBN: 0486669807Google ScholarGoogle Scholar
  16. Har09 Harrison J (2009) Handbook of practical logic and automated reasoning, 1st edn. Cambridge University Press, New York. ISBN: 0521899575, 9780521899574Google ScholarGoogle Scholar
  17. IRS13 Iosif R, Rogalewicz A, Simácek J (2013) The tree width of separation logic with recursive definitions. In: International conference on automated deduction (CADE), pp 21–38Google ScholarGoogle Scholar
  18. IRV14 Iosif R, Rogalewicz A, Vojnar T (2014) Deciding entailments in inductive separation logic with tree automata. In: International symposium on automated technology for verification and analysis (ATVA), pp 201–218Google ScholarGoogle Scholar
  19. KN87 Kapur DNarendran PMatching, unification and complexityACM SIGSAM Bull19872146910.1145/36330.363320626.68036Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. MB08 De Moura LM, Bjørner N (2008) Z3: an efficient SMT solver. In: International conference on tools and algorithms for construction and analysis of systems (TACAS), pp 337–340Google ScholarGoogle Scholar
  21. NC08 Nguyen HH, Chin W-N (Wei-Ngan) Enhancing program verification with lemmas. In: International conference on computer aided verification (CAV), pp 355–369Google ScholarGoogle Scholar
  22. Ngu+07 Nguyen HH, David C, Qin S, Chin W-N (2007) Automated verification of shape and size properties via separation logic. In: International conference on verification, model checking, and abstract interpretation (VMCAI), pp 251–266Google ScholarGoogle Scholar
  23. PQM14 Pek E, Qiu X, Madhusudan P (2014) Natural proofs for data structure manipulation in C using separation logic. In: Conference on programming language design and implementation (PLDI), p 46Google ScholarGoogle Scholar
  24. PR11 Pérez JAN, Rybalchenko A (2011) Separation Logic + superposition calculus = heap theorem prover. In: Conference on programming language design and implementation (PLDI), pp 556–566Google ScholarGoogle Scholar
  25. PR13 Pérez JAN, Rybalchenko A (2013) Separation logic modulo theories. In: Asian symposium on programming languages and systems (APLAS), pp 90–106Google ScholarGoogle Scholar
  26. PWZ13 Piskac R, Wies T, Zufferey D (2013) Automating separation logic using SMT. In: International conference on computer aided verification (CAV), pp 773–789Google ScholarGoogle Scholar
  27. Qiu+13 Qiu X, Garg P, Stefanescu A, Madhusudan P (2013) Natural proofs for structure, data, and separation. In: Conference on programming language design and implementation (PLDI), pp 231–242Google ScholarGoogle Scholar
  28. Rey02 Reynolds JC (2002) Separation logic: a logic for shared mutable data structures. In: Symposium on logic in computer science (LICS), pp 55–74Google ScholarGoogle Scholar
  29. Rey08 Reynolds JC (2008) An introduction to separation logic. In: Lecture notes for the PhD fall school on logics and semantics of state, Copenhagen. Retrieved on 2017, March 16th, 2008. http://www.cs.cmu.edu/~jcr/copenhagen08.pdfGoogle ScholarGoogle Scholar
  30. SC16 Sighireanu MCok DRReport on SL-COMP 2014J Satisf Boolean Model Comput201691731863512055Google ScholarGoogle ScholarCross RefCross Ref
  31. Ta+16 Ta Q-T, Le TC, Khoo S-C, Chin W-N (2016) Automated mutual explicit induction proof in separation logic. In: FM 2016: Formal methods—21st international symposium, Limassol, Cyprus, 9–11 Nov 2016, Proceedings. pp 659–676Google ScholarGoogle Scholar
  32. Ta+18 Ta Q-T, Le TC, Khoo S-C, Chin W-N (2018) Automated lemma synthesis in symbolic-heap separation logic. In: Symposium on principles of programming languages (POPL), pp 9:1–9:29Google ScholarGoogle Scholar

Index Terms

  1. Automated mutual induction proof in separation logic
          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

          • Published in

            cover image Formal Aspects of Computing
            Formal Aspects of Computing  Volume 31, Issue 2
            Special Issue on Extended Versions of Papers Presented at FM 2016
            Apr 2019
            153 pages
            ISSN:0934-5043
            EISSN:1433-299X
            Issue’s Table of Contents

            © British Computer Society 2018

            Publisher

            Springer-Verlag

            Berlin, Heidelberg

            Publication History

            • Published: 1 April 2019
            • Accepted: 5 September 2018
            • Received: 10 September 2017
            Published in fac Volume 31, Issue 2

            Qualifiers

            • research-article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader