Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/2535838.2535871acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

A proof system for separation logic with magic wand

Published: 08 January 2014 Publication History

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.

Supplementary Material

MP4 File (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.
[2]
Josh Berdine, Cristiano Calcagno, and Peter W. O'Hearn. A decidable fragment of separation logic. In Proc. FSTTCS, pages 97--109, 2004.
[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.
[4]
Josh Berdine, Cristiano Calcagno, and Peter W. O'Hearn. Symbolic execution with separation logic. In Proc. APLAS, pages 52--68, 2005.
[5]
Rémi Brochenin, Stéphane Demri, and Etienne Lozes. On the almighty wand. Information and Computation, 211:106--137, 2012.
[6]
James Brotherston and Max Kanovich. Undecidability of propositional separation logic and its neighbours. In Proc. LICS, pages 130--139, 2010.
[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.
[8]
Cristiano Calcagno, Philippa Gardner, and Matthew Hague. From separation logic to first-order logic. In Proc. FOSSACS, pages 395--409, 2005.
[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.
[10]
Bor-Yuh Evan Chang and Xavier Rival. Relational inductive shape analysis. In Proc. POPL, pages 247--260, 2008.
[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.
[12]
Dino Distefano and Matthew J. Parkinson. jStar: towards practical verification for Java. In Proc. OOPSLA, pages 213--226, 2008.
[13]
Robert Dockins, Aquinas Hobor, and Andrew W. Appel. A fresh lookat separation algebras and share accounting. In Proc. APLAS, pages 161--177, 2009.
[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.
[15]
Didier Galmiche and Daniel Méry. Tableaux and resource graphs for separation logic. Journal of Logic and Computation, 20:189--231, 2010.
[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.
[17]
Aquinas Hobor and Jules Villard. The ramifications of sharing in data structures. In Proc. POPL, pages 523--536, 2013.
[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.
[19]
Bart Jacobs, Jan Smans, and Frank Piessens. VeriFast: Imperative programs as proofs. In Proc. VSTTE, pages 59--68, 2010.
[20]
Neelakantan R. Krishnaswami. Reasoning about iterators with separation logic. In Proc. SAVCBS, pages 83--86, 2006.
[21]
Dominique Larchey-Wendling and Didier Galmiche. The undecidability of boolean BI through phase semantics. In Proc. LICS, pages 140--149, 2010.
[22]
Toshiyuki Maeda, Haruki Sato, and Akinori Yonezawa. Extended alias type system using separating implication. In Proc. TLDI, pages 29--42, 2011.
[23]
Stephen Magill, Josh Berdine, Edmund M. Clarke, and Byron Cook. Arithmetic strengthening for shape analysis. In Proc. SAS, pages 419--436, 2007.
[24]
Juan Antonio Navarro Pérez and Andrey Rybalchenko. Separation logic + superposition calculus = heap theorem prover. In Proc. PLDI, pages 556--566, 2011.
[25]
Huu Hai Nguyen andWei-Ngan Chin. Enhancing program verification with lemmas. In Proc. CAV, pages 355--369, 2008.
[26]
Jonghyun Park, Jeongbong Seo, and Sungwoo Park. A theorem prover for Boolean BI. In Proc. POPL, pages 219--232, 2013.
[27]
Matthew J. Parkinson and Alexander J. Summers. The relationship between separation logic and implicit dynamic frames. In Proc. ESOP, pages 439--458, 2011.
[28]
John C. Reynolds. Separation logic: A logic for shared mutable data structures. In Proc. LICS, pages 55--74, 2002.
[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.

Cited By

View all
  • (2023)Beyond Backtracking: Connections in Fine-Grained Concurrent Separation LogicProceedings of the ACM on Programming Languages10.1145/35912757:PLDI(1340-1364)Online publication date: 6-Jun-2023
  • (2022)Diaframe: automated verification of fine-grained concurrent programs in IrisProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523432(809-824)Online publication date: 9-Jun-2022
  • (2022)Reasoning About Block-Based Cloud Storage Systems via Separation LogicTheoretical Computer Science10.1016/j.tcs.2022.09.015Online publication date: Sep-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

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
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 08 January 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. proof system
  2. separation logic
  3. theorem prover

Qualifiers

  • Research-article

Conference

POPL '14
Sponsor:

Acceptance Rates

POPL '14 Paper Acceptance Rate 51 of 220 submissions, 23%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)23
  • Downloads (Last 6 weeks)3
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Beyond Backtracking: Connections in Fine-Grained Concurrent Separation LogicProceedings of the ACM on Programming Languages10.1145/35912757:PLDI(1340-1364)Online publication date: 6-Jun-2023
  • (2022)Diaframe: automated verification of fine-grained concurrent programs in IrisProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523432(809-824)Online publication date: 9-Jun-2022
  • (2022)Reasoning About Block-Based Cloud Storage Systems via Separation LogicTheoretical Computer Science10.1016/j.tcs.2022.09.015Online publication date: Sep-2022
  • (2022)Sound Automation of Magic WandsComputer Aided Verification10.1007/978-3-031-13188-2_7(130-151)Online publication date: 6-Aug-2022
  • (2021)RefinedC: automating the foundational verification of C code with refined ownership typesProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454036(158-174)Online publication date: 19-Jun-2021
  • (2021)An adaptation-complete proof system for local reasoning about cloud storage systemsTheoretical Computer Science10.1016/j.tcs.2021.12.018Online publication date: Dec-2021
  • (2018)Modular Labelled Sequent Calculi for Abstract Separation LogicsACM Transactions on Computational Logic10.1145/319738319:2(1-35)Online publication date: 28-Apr-2018
  • (2018)Backwards and Forwards with Separation LogicInteractive Theorem Proving10.1007/978-3-319-94821-8_5(68-87)Online publication date: 4-Jul-2018
  • (2016)Expressive Completeness of Separation Logic with Two Variables and No Separating ConjunctionACM Transactions on Computational Logic10.1145/283549017:2(1-44)Online publication date: 7-Jan-2016
  • (2016)Completeness for a First-Order Abstract Separation LogicProgramming Languages and Systems10.1007/978-3-319-47958-3_23(444-463)Online publication date: 9-Oct-2016
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media