Abstract
This paper presents a simple mechanized formalization of Separation Logic for sequential programs. This formalization is aimed for teaching the ideas of Separation Logic, including its soundness proof and its recent enhancements. The formalization serves as support for a course that follows the style of the successful Software Foundations series, with all the statement and proofs formalized in Coq. This course only assumes basic knowledge of lambda-calculus, semantics and logics, and therefore should be accessible to a broad audience.
Supplemental Material
- Amal Jamil Ahmed. 2004. Semantics of Types for Mutable State. Ph.D. Dissertation. Princeton University.Google Scholar
Digital Library
- Andrew W. Appel. 2011. Verified Software Toolchain. In Proceedings of the 20th European Conference on Programming Languages and Systems: Part of the Joint European Conferences on Theory and Practice of Software (Saarbrücken, Germany) (ESOP'11/ETAPS'11). Springer-Verlag, Berlin, Heidelberg, 1-17. https://doi.org/10.1007/978-3-642-28891-3_2 Google Scholar
Digital Library
- Andrew W Appel. 2014. Program logics for certified compilers. Cambridge University Press. https://doi.org/10.1017/ CBO9781107256552 With Robert Dockins, Aquinas Hobor, Lennart Beringer, Josiah Dodds, Gordon Stewart, Sandrine Blazy, and Xavier Leroy. Google Scholar
Cross Ref
- Andrew W Appel and Sandrine Blazy. 2007. Separation logic for small-step Cminor. In International Conference on Theorem Proving in Higher Order Logics, Klaus Schneider and Jens Brandt (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 5-21. https://doi.org/10.1007/978-3-540-74591-4_3 Google Scholar
Cross Ref
- Andrew W. Appel and Qinxiang Cao. 2020. Verifiable C. Software Foundations, Vol. 5beta. Electronic textbook. http://softwarefoundations.cis.upenn. edu Version 0.9.5.Google Scholar
- Andrew W. Appel, Robert Dockins, Aquinas Hobor, Lennart Beringer, Josiah Dodds, Gordon Stewart, Sandrine Blazy, and Xavier Leroy. 2014. Program Logics for Certified Compilers. Cambridge University Press, USA. https://doi.org/10.1017/ CBO9781107256552 Google Scholar
Cross Ref
- Andrew W. Appel and David McAllester. 2001. An Indexed Model of Recursive Types for Foundational Proof-Carrying Code. ACM Trans. Program. Lang. Syst. 23, 5 (Sept. 2001 ), 657-683. https://doi.org/10.1145/504709.504712 Google Scholar
Digital Library
- Andrew W. Appel, Paul-André Melliès, Christopher D. Richards, and Jérôme Vouillon. 2007. A Very Modal Model of a Modern, Major, General Type System. In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Nice, France) (POPL '07). Association for Computing Machinery, New York, NY, USA, 109-122. https://doi.org/10.1145/1190216.1190235 Google Scholar
Digital Library
- Callum Bannister, Peter Höfner, and Gerwin Klein. 2018. Backwards and Forwards with Separation Logic. In Interactive Theorem Proving, Jeremy Avigad and Assia Mahboubi (Eds.). Springer International Publishing, Cham, 68-87. https: //doi.org/10.1007/978-3-319-94821-8_5 Google Scholar
Cross Ref
- Jesper Bengtson, Jonas Braband Jensen, and Lars Birkedal. 2012. Charge!. In Interactive Theorem Proving, Lennart Beringer and Amy Felty (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 315-331. https://doi.org/10.1007/978-3-642-32347-8_21 Google Scholar
Cross Ref
- Jesper Bengtson, Jonas Braband Jensen, Filip Sieczkowski, and Lars Birkedal. 2011. Verifying Object-Oriented Programs with Higher-Order Separation Logic in Coq. In Interactive Theorem Proving, Marko van Eekelen, Herman Geuvers, Julien Schmaltz, and Freek Wiedijk (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 22-38. https://doi.org/10.1007/978-3-642-22863-6_5 Google Scholar
Cross Ref
- Bodil Biering, Lars Birkedal, and Noah Torp-Smith. 2005. BI Hyperdoctrines and Higher-Order Separation Logic. In Proceedings of the 14th European Conference on Programming Languages and Systems (Edinburgh, UK) (ESOP'05). SpringerVerlag, Berlin, Heidelberg, 233-247. https://doi.org/10.1007/978-3-540-31987-0_17 Google Scholar
Digital Library
- Bodil Biering, Lars Birkedal, and Noah Torp-Smith. 2007. BI-Hyperdoctrines, Higher-Order Separation Logic, and Abstraction. ACM Trans. Program. Lang. Syst. 29, 5 (Aug. 2007 ), 24-es. https://doi.org/10.1145/1275497.1275499 Google Scholar
Digital Library
- Lars Birkedal and Aleš Bizjak. 2018. Lecture Notes on Iris: Higher-Order Concurrent Separation Logic. https://irisproject.org/tutorial-material.htmlGoogle Scholar
- Lars Birkedal, Bernhard Reus, Jan Schwinghammer, and Hongseok Yang. 2008. A Simple Model of Separation Logic for Higher-Order Store. In Automata, Languages and Programming (ICALP), Luca Aceto, Ivan Damgård, Leslie Ann Goldberg, Magnús M. Halldórsson, Anna Ingólfsdóttir, and Igor Walukiewicz (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 348-360. https://doi.org/10.1007/978-3-540-70583-3_29 Google Scholar
Digital Library
- Lars Birkedal, Noah Torp-Smith, and Hongseok Yang. 2005. Semantics of separation-logic typing and higher-order frame rules. In 20th Annual IEEE Symposium on Logic in Computer Science (LICS'05). IEEE, 260-269. https://doi.org/10.1109/ LICS. 2005.47 Google Scholar
Digital Library
- Lars Birkedal, Noah Torp-smith, and Hongseok Yang. 2006. Semantics of separation-logic typing and higher-order frame rules for algol-like languages, PrakashEditor Panangaden (Ed.). Logical Methods in Computer Science 2, 5. https: //doi.org/10.2168/lmcs-2( 5 :1) 2006 Google Scholar
Cross Ref
- Lars Birkedal and Hongseok Yang. 2007. Relational Parametricity and Separation Logic. In Foundations of Software Science and Computational Structures, Helmut Seidl (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 93-107. https: //doi.org/10.1007/978-3-540-71389-0_8 Google Scholar
Cross Ref
- Aleš Bizjak, Daniel Gratzer, Robbert Krebbers, and Lars Birkedal. 2019. Iron: Managing Obligations in Higher-Order Concurrent Separation Logic. Proc. ACM Program. Lang. 3, POPL, Article 65 ( Jan. 2019 ), 30 pages. https://doi.org/10. 1145/3290378 Google Scholar
Digital Library
- R. M. Burstall. 1972. Some Techniques for Proving Correctness of Programs which Alter Data Structures. In Machine Intelligence 7, B. Meltzer and D. Mitchie (Eds.). Edinburgh University Press, Edinburgh, Scotland., 23-50.Google Scholar
- Hongxu Cai, Zhong Shao, and Alexander Vaynberg. 2007. Certified Self-Modifying Code. SIGPLAN Not. 42, 6 ( June 2007 ), 66-77. https://doi.org/10.1145/1273442.1250743 Google Scholar
Digital Library
- Cristiano Calcagno, Dino Distefano, Jeremy Dubreil, Dominik Gabi, Pieter Hooimeijer, Martino Luca, Peter O'Hearn, Irene Papakonstantinou, Jim Purbrick, and Dulma Rodriguez. 2015. Moving Fast with Software Verification. In NASA Formal Methods, Klaus Havelund, Gerard Holzmann, and Rajeev Joshi (Eds.). Springer International Publishing, Cham, 3-11. https://doi.org/10.1007/978-3-319-17524-9_1 Google Scholar
- Cristiano Calcagno, Peter W. O'Hearn, and Hongseok Yang. 2007. Local Action and Abstract Separation Logic. In Logic in Computer Science (LICS). 366-378. https://doi.org/10.1109/LICS. 2007.30 Google Scholar
Digital Library
- Qinxiang Cao, Lennart Beringer, Samuel Gruetter, Josiah Dodds, and Andrew W Appel. 2018a. VST-Floyd : A separation logic tool to verify correctness of C programs. Journal of Automated Reasoning 61, 1-4 ( 2018 ), 367-422. https://doi.org/ 10.1007/s10817-018-9457-5 Google Scholar
Digital Library
- Qinxiang Cao, Shengyi Wang, Aquinas Hobor, and Andrew W. Appel. 2018b. Proof pearl: Magic wand as frame. Unpublished.Google Scholar
- Arthur Charguéraud. 2011. Characteristic Formulae for the Verification of Imperative Programs. In International Conference on Functional Programming (Tokyo, Japan) ( ICFP '11). Association for Computing Machinery, New York, NY, USA, 418-430. https://doi.org/10.1145/2034773.2034828 Google Scholar
Digital Library
- Arthur Charguéraud and François Pottier. 2015. Machine-Checked Verification of the Correctness and Amortized Complexity of an Eficient Union-Find Implementation. In Interactive Theorem Proving, Christian Urban and Xingyuan Zhang (Eds.). Springer International Publishing, Cham, 137-153. https://doi.org/10.1007/978-3-319-22102-1_9 Google Scholar
Cross Ref
- Arthur Charguéraud and François Pottier. 2019. Verifying the Correctness and Amortized Complexity of a Union-Find Implementation in Separation Logic with Time Credits. Journal of Automated Reasoning (JAR) 62, 3 (March 2019 ), 331-365. https://doi.org/10.1007/s10817-017-9431-7 Google Scholar
Digital Library
- Arthur Charguéraud. 2010. Characteristic Formulae for Mechanized Program Verification. Ph.D. Dissertation. Université Paris Diderot. http://www.chargueraud.org/research/2010/thesis/thesis_final.pdfGoogle Scholar
- Arthur Charguéraud. 2020. Supplementary material. http://www.chargueraud.org/teach/verif/Google Scholar
- Arthur Charguéraud and François Pottier. 2017. Temporary Read-Only Permissions for Separation Logic. In European Symposium on Programming (ESOP) (Lecture Notes in Computer Science, Vol. 10201 ), Hongseok Yang (Ed.). Springer, 260-286. https://doi.org/10.1007/978-3-662-54434-1_10 Google Scholar
Cross Ref
- Haogang Chen, Daniel Ziegler, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. 2015. Using Crash Hoare Logic for Certifying the FSCQ File System. In Proceedings of the 25th Symposium on Operating Systems Principles (Monterey, California) ( SOSP '15). Association for Computing Machinery, New York, NY, USA, 18-37. https: //doi.org/10.1145/2815400.2815402 Google Scholar
Digital Library
- Adam Chlipala. 2011. Mostly-Automated Verification of Low-Level Programs in Computational Separation Logic. SIGPLAN Not. 46, 6 ( June 2011 ), 234-245. https://doi.org/10.1145/1993316.1993526 Google Scholar
Digital Library
- Adam Chlipala. 2013. The Bedrock Structured Programming System: Combining Generative Metaprogramming and Hoare Logic in an Extensible Program Verifier, In Proceedings of the 18th ACM SIGPLAN International conference on Functional programming. SIGPLAN Not. 48, 9, 391-402. https://doi.org/10.1145/2544174.2500592 Google Scholar
Digital Library
- Adam Chlipala. 2015. From Network Interface to Multithreaded Web Applications: A Case Study in Modular Program Verification. SIGPLAN Not. 50, 1 (Jan. 2015 ), 609-622. https://doi.org/10.1145/2775051.2677003 Google Scholar
Digital Library
- Adam Chlipala. 2018a. Formal reasoning about programs. http://adam.chlipala.net/frap/frap_book. pdf Course notes.Google Scholar
- Adam Chlipala. 2018b. Formal reasoning about programs, Coq material for Chapter 14. https://github.com/achlipala/frap/ blob/master/SeparationLogic.vGoogle Scholar
- Adam Chlipala, Gregory Malecha, Greg Morrisett, Avraham Shinnar, and Ryan Wisnesky. 2009. Efective Interactive Proofs for Higher-Order Imperative Programs. In ACM International Conference on Functional Programming ( ICFP) (Edinburgh, Scotland) (ICFP '09). Association for Computing Machinery, New York, NY, USA, 79-90. https://doi.org/10.1145/1596550. 1596565 Google Scholar
Digital Library
- David Costanzo and Zhong Shao. 2012. A Case for Behavior-Preserving Actions in Separation Logic. In Programming Languages and Systems, Ranjit Jhala and Atsushi Igarashi (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 332-349. https://doi.org/10.1007/978-3-642-35182-2_24 Google Scholar
Cross Ref
- Robert Dockins, Andrew W. Appel, and Aquinas Hobor. 2008. Multimodal Separation Logic for Reasoning About Operational Semantics. Electronic Notes in Theoretical Computer Science 218 ( 2008 ), 5-20. https://doi.org/10.1016/j.entcs. 2008. 10. 002 Proceedings of the 24th Conference on the Mathematical Foundations of Programming Semantics (MFPS XXIV). Google Scholar
Digital Library
- Robert Dockins, Aquinas Hobor, and Andrew W. Appel. 2009. A Fresh Look at Separation Algebras and Share Accounting. In Programming Languages and Systems, Zhenjiang Hu (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 161-177. https://doi.org/10.1007/978-3-642-10672-9_13 Google Scholar
Digital Library
- Xinyu Feng, Zhaozhong Ni, Zhong Shao, and Yu Guo. 2007. An Open Framework for Foundational Proof-Carrying Code. In Proc. 2007 ACM SIGPLAN International Workshop on Types in Language Design and Implementation (TLDI'07) (Nice, France). ACM Press, New York, NY, USA, 67-78. https://doi.org/10.1145/1190315.1190325 Google Scholar
Digital Library
- Robbert Krebbers, Jacques-Henri Jourdan, Ralf Jung, Joseph Tassarotti, Jan-Oliver Kaiser, Amin Timany, Arthur Charguéraud, and Derek Dreyer. 2018. MoSeL: A General, Extensible Modal Framework for Interactive Proofs in Separation Logic. Proc. ACM Program. Lang. 2, ICFP, Article 77 ( July 2018 ), 30 pages. https://doi.org/10.1145/3236772 Google Scholar
Digital Library
- Robbert Krebbers, Ralf Jung, Aleš Bizjak, Jacques-Henri Jourdan, Derek Dreyer, and Lars Birkedal. 2017. The Essence of Higher-Order Concurrent Separation Logic. In Proceedings of the 26th European Symposium on Programming Languages and Systems-Volume 10201. Springer-Verlag, Berlin, Heidelberg, 696-723. https://doi.org/10.1007/978-3-662-54434-1_26 Google Scholar
Digital Library
- Neelakantan R. Krishnaswami. 2012. Verifying Higher-Order Imperative Programs with Higher-Order Separation Logic. Ph.D. Dissertation. USA. Advisor(s) Aldrich, Jonathan. https://doi.org/10.5555/2519942 Google Scholar
Digital Library
- Neelakantan R. Krishnaswami, Jonathan Aldrich, and Lars Birkedal. 2007. Modular verification of the subject-observer pattern via higher-order separation logic. In In Proceedings of Formal Techniques for Java-like Programs (FTfJP).Google Scholar
- Neel R. Krishnaswami, Lars Birkedal, and Jonathan Aldrich. 2010. Verifying Event-Driven Programs Using Ramified Frame Properties. In Proceedings of the 5th ACM SIGPLAN Workshop on Types in Language Design and Implementation (Madrid, Spain) ( TLDI '10). Association for Computing Machinery, New York, NY, USA, 63-76. https://doi.org/10.1145/1708016. 1708025 Google Scholar
Digital Library
- Ramana Kumar, Magnus O. Myreen, Michael Norrish, and Scott Owens. 2014. CakeML: A Verified Implementation of ML. In Principles of Programming Languages (POPL). ACM Press, 179-191. https://doi.org/10.1145/2535838.2535841 Google Scholar
Digital Library
- Peter Lammich. 2019a. Generating Verified LLVM from Isabelle/HOL. In 10th International Conference on Interactive Theorem Proving, ITP 2019, September 9-12, 2019, Portland, OR, USA (LIPIcs, Vol. 141 ), John Harrison, John O'Leary, and Andrew Tolmach (Eds.). Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 22 : 1-22 : 19. https://doi.org/10.4230/LIPIcs.ITP. 2019.22 Google Scholar
Cross Ref
- Peter Lammich. 2019b. Refinement to Imperative HOL. Journal of Automated Reasoning (JAR) 62, 4 (April 2019 ), 481-503. https://doi.org/10.1007/s10817-017-9437-1 Google Scholar
Digital Library
- Xavier Leroy. 2009. Formal Verification of a Realistic Compiler. Commun. ACM 52, 7 ( July 2009 ), 107-115. https: //doi.org/10.1145/1538788.1538814 Google Scholar
Digital Library
- Nicolas Marti, Reynald Afeldt, and Akinori Yonezawa. 2006. Formal Verification of the Heap Manager of an Operating System Using Separation Logic. In Proceedings of the 8th International Conference on Formal Methods and Software Engineering (Macao, China) (ICFEM'06). Springer-Verlag, Berlin, Heidelberg, 400-419. https://doi.org/10.1007/11901433_22 Google Scholar
Digital Library
- Andrew McCreight, Zhong Shao, Chunxiao Lin, and Long Li. 2007. A General Framework for Certifying Garbage Collectors and Their Mutators. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (San Diego, California, USA) ( PLDI '07). Association for Computing Machinery, New York, NY, USA, 468-479. https://doi.org/10.1145/1250734.1250788 Google Scholar
Digital Library
- Peter Müller, Malte Schwerhof, and Alexander J. Summers. 2016. Viper: A Verification Infrastructure for Permission-Based Reasoning. In Verification, Model Checking, and Abstract Interpretation, Barbara Jobstmann and K. Rustan M. Leino (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 41-62. https://doi.org/10.1007/978-3-662-49122-5_2 Google Scholar
Digital Library
- Magnus O Myreen. 2008. Formal verification of machine-code programs. Ph.D. Dissertation.Google Scholar
- Magnus O. Myreen and Michael J. C. Gordon. 2007. Hoare Logic for Realistically Modelled Machine Code. In Proceedings of the 13th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (Braga, Portugal) (TACAS'07). Springer-Verlag, Berlin, Heidelberg, 568-582. https://doi.org/10.1007/978-3-540-71209-1_44 Google Scholar
Cross Ref
- Glen Mével, Jacques-Henri Jourdan, and François Pottier. 2019. Time credits and time receipts in Iris. In European Symposium on Programming (ESOP) (Lecture Notes in Computer Science, Vol. 11423 ), Luis Caires (Ed.). Springer, 1-27. https: //doi.org/10.1007/978-3-030-17184-1_1 Google Scholar
Cross Ref
- Aleksandar Nanevski, Greg Morrisett, and Lars Birkedal. 2006. Polymorphism and Separation in Hoare Type Theory. SIGPLAN Not. 41, 9 (Sept. 2006 ), 62-73. https://doi.org/10.1145/1160074.1159812 Google Scholar
Digital Library
- Aleksandar Nanevski, Greg Morrisett, and Lars Birkedal. 2008a. Hoare Type Theory, Polymorphism and Separation. J. Funct. Program. 18, 5-6 ( Sept. 2008 ), 865-911. https://doi.org/10.1017/S0956796808006953 Google Scholar
Digital Library
- Aleksandar Nanevski, Greg Morrisett, Avraham Shinnar, Paul Govereau, and Lars Birkedal. 2008b. Ynot: Dependent Types for Imperative Programs. SIGPLAN Not. 43, 9 (Sept. 2008 ), 229-240. https://doi.org/10.1145/1411203.1411237 Google Scholar
Digital Library
- Zhaozhong Ni and Zhong Shao. 2006. Certified Assembly Programming with Embedded Code Pointers. In Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Charleston, South Carolina, USA) ( POPL '06). Association for Computing Machinery, New York, NY, USA, 320-333. https://doi.org/10.1145/1111037.1111066 Google Scholar
Digital Library
- Zhaozhong Ni, Dachuan Yu, and Zhong Shao. 2007. Using XCAP to Certify Realistic Systems Code: Machine Context Management. In Theorem Proving in Higher Order Logics, Klaus Schneider and Jens Brandt (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 189-206. https://doi.org/10.1007/978-3-540-74591-4_15 Google Scholar
Cross Ref
- O'Hearn, Reynolds, and Yang. 2001. Local Reasoning about Programs that Alter Data Structures. In CSL: 15th Workshop on Computer Science Logic. LNCS, Springer-Verlag. https://doi.org/10.1007/3-540-44802-0_1 Google Scholar
Cross Ref
- Peter W. O'Hearn. 2019. Separation logic. Commun. ACM 62, 2 ( 2019 ), 86-95. https://doi.org/10.1145/3211968 The appendix is linked as supplementary material from the ACM digital library. Google Scholar
Digital Library
- Peter W. O'Hearn and David J. Pym. 1999. The Logic of Bunched Implications. The Bulletin of Symbolic Logic 5, 2 ( 1999 ), 215-244. http://www.jstor.org/stable/421090Google Scholar
- Pieter Philippaerts, Jan Tobias Mühlberg, Willem Penninckx, Jan Smans, Bart Jacobs, and Frank Piessens. 2014. Software Verification with VeriFast: Industrial Case Studies. Sci. Comput. Program. 82 (March 2014 ), 77-97. https://doi.org/10. 1016/j.scico. 2013. 01.006 Google Scholar
Digital Library
- Benjamin C. Pierce and many contributors. 2016. Software Foundations. https://softwarefoundations.cis.upenn.edu/Google Scholar
- François Pottier. 2008. Hiding local state in direct style: a higher-order anti-frame rule. In IEEE Symposium on Logic In Computer Science (LICS). Pittsburgh, Pennsylvania, 331-340. https://doi.org/10.1109/LICS. 2008.16 Google Scholar
Digital Library
- François Pottier. 2017. Verifying a Hash Table and Its Iterators in Higher-Order Separation Logic. In ACM SIGPLAN Conference on Certified Programs and Proofs (CPP) (Paris, France) (CPP 2017 ). Association for Computing Machinery, New York, NY, USA, 3-16. https://doi.org/10.1145/3018610.3018624 Google Scholar
Digital Library
- Viorel Preoteasa. 2006. Mechanical Verification of Recursive Procedures Manipulating Pointers Using Separation Logic. In FM 2006: Formal Methods, Jayadev Misra, Tobias Nipkow, and Emil Sekerinski (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 508-523. https://doi.org/10.1007/11813040_34 Google Scholar
Digital Library
- Bernhard Reus and Jan Schwinghammer. 2006. Separation Logic for Higher-Order Store. In Computer Science Logic, Zoltán Ésik (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 575-590. https://doi.org/10.1007/11874683_38 Google Scholar
Digital Library
- John C. Reynolds. 2002. Separation Logic: A Logic for Shared Mutable Data Structures. In Annual IEEE Symposium on Logic in Computer Science (LICS). 55-74. https://doi.org/10.1109/LICS. 2002.1029817 Google Scholar
Cross Ref
- John C Reynolds. 2006. A short course on separation logic. http://cs.ioc.ee/yik/schools/win2006/reynolds/estslides.pdfGoogle Scholar
- Adam Sandberg Ericsson, Magnus O. Myreen, and Johannes Åman Pohjola. 2019. A Verified Generational Garbage Collector for CakeML. Journal of Automated Reasoning (JAR) 63 ( 2019 ). https://doi.org/10.1007/s10817-018-9487-z Google Scholar
Digital Library
- Jan Schwinghammer, Lars Birkedal, Bernhard Reus, and Hongseok Yang. 2009. Nested Hoare Triples and Frame Rules for Higher-Order Store. In Computer Science Logic, Erich Grädel and Reinhard Kahle (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 440-454. https://doi.org/10.1007/978-3-642-04027-6_32 Google Scholar
Cross Ref
- Jan Schwinghammer, Hongseok Yang, Lars Birkedal, François Pottier, and Bernhard Reus. 2010. A Semantic Foundation for Hidden State. In Foundations of Software Science and Computational Structures, Luke Ong (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 2-17. https://doi.org/10.1007/978-3-642-12032-9_2 Google Scholar
Digital Library
- Kasper Svendsen, Lars Birkedal, and Matthew Parkinson. 2010. Verifying Generics and Delegates. In ECOOP 2010-Object-Oriented Programming, Theo D'Hondt (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 175-199. https: //doi.org/10.1007/978-3-642-14107-2_9 Google Scholar
Cross Ref
- Joseph Tassarotti, Ralf Jung, and Robert Harper. 2017. A Higher-Order Logic for Concurrent Termination-Preserving Refinement. In Programming Languages and Systems, Hongseok Yang (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 909-936. https://doi.org/10.1007/978-3-662-54434-1_34 Google Scholar
Digital Library
- Harvey Tuch, Gerwin Klein, and Michael Norrish. 2007. Types, Bytes, and Separation Logic. SIGPLAN Not. 42, 1 (Jan. 2007 ), 97-108. https://doi.org/10.1145/1190215.1190234 Google Scholar
Digital Library
- Thomas Tuerk. 2010. Local Reasoning about While-Loops. In In International Conference on Verified Software: Theories, Tools and Experiments.Google Scholar
- Thomas Tuerk. 2011. A separation logic framework for HOL. Technical Report UCAM-CL-TR-799. University of Cambridge, Computer Laboratory. https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-799.pdfGoogle Scholar
- Viktor Vafeiadis and Matthew Parkinson. 2007. A Marriage of Rely/Guarantee and Separation Logic. In CONCUR 2007-Concurrency Theory, Luís Caires and Vasco T. Vasconcelos (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 256-271. https://doi.org/10.1007/978-3-540-74407-8_18 Google Scholar
Cross Ref
- Carsten Varming and Lars Birkedal. 2008. Higher-Order Separation Logic in Isabelle/HOLCF. Electronic Notes in Theoretical Computer Science 218 ( 2008 ), 371-389. https://doi.org/10.1016/j.entcs. 2008. 10. 022 Proceedings of the 24th Conference on the Mathematical Foundations of Programming Semantics (MFPS XXIV). Google Scholar
Digital Library
- Wei Wang, Zhong Shao, Xinyu Jiang, and Yu Guo. 2011. A Simple Model for Certifying Assembly Programs with FirstClass Function Pointers. In 5th IEEE International Symposium on Theoretical Aspects of Software Engineering, TASE 2011, Xi'an, China, 29-31 August 2011, Zhenhua Duan and C.-H. Luke Ong (Eds.). IEEE Computer Society, 125-132. https://doi.org/10.1109/TASE. 2011.16 Google Scholar
Digital Library
- Tjark Weber. 2004. Towards Mechanized Program Verification with Separation Logic. In Computer Science Logic, Jerzy Marcinkowski and Andrzej Tarlecki (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 250-264. https://doi.org/10. 1007/978-3-540-30124-0_21 Google Scholar
Cross Ref
- Fengwei Xu, Ming Fu, Xinyu Feng, Xiaoran Zhang, Hui Zhang, and Zhaohui Li. 2016. A practical verification framework for preemptive OS kernels. In International Conference on Computer Aided Verification, Swarat Chaudhuri and Azadeh Farzan (Eds.). Springer, Springer International Publishing, Cham, 59-79. https://doi.org/10.1007/978-3-319-41540-6_4 Google Scholar
Cross Ref
- Dachuan Yu, Nadeem A. Hamid, and Zhong Shao. 2003. Building Certified Libraries for PCC: Dynamic Storage Allocation. In Programming Languages and Systems, Pierpaolo Degano (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 363-379. https://doi.org/10.1007/3-540-36575-3_25 Google Scholar
Cross Ref
- Dachuan Yu, Nadeem A. Hamid, and Zhong Shao. 2004. Building Certified Libraries for PCC: Dynamic Storage Allocation. Science of Computer Programming 50, 1-3 ( 2004 ), 101-127. https://doi.org/10.1007/3-540-36575-3_25 Google Scholar
Cross Ref
Index Terms
Separation logic for sequential programs (functional pearl)
Recommendations
Interactive proofs in higher-order concurrent separation logic
POPL '17When using a proof assistant to reason in an embedded logic -- like separation logic -- one cannot benefit from the proof contexts and basic tactics of the proof assistant. This results in proofs that are at a too low level of abstraction because they ...
Interactive proofs in higher-order concurrent separation logic
POPL '17: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming LanguagesWhen using a proof assistant to reason in an embedded logic -- like separation logic -- one cannot benefit from the proof contexts and basic tactics of the proof assistant. This results in proofs that are at a too low level of abstraction because they ...
Cyclic proofs of program termination in separation logic
POPL '08We propose a novel approach to proving the termination of heap-manipulating programs, which combines separation logic with cyclic proof within a Hoare-style proof system.Judgements in this system express (guaranteed) termination of the program when ...






Comments