Abstract
Separation Logic has witnessed tremendous success in recent years in reasoning about programs that deal with heap storage. Its success owes to the fundamental principle that one should keep separate areas of the heap storage separate in program reasoning. However, the way Separation Logic deals with program variables continues to be based on traditional Hoare Logic without taking any benefit of the separation principle. This has led to unwieldy proof rules suffering from lack of clarity as well as questions surrounding their soundness. In this paper, we extend the separation idea to the treatment of variables in Separation Logic, especially Concurrent Separation Logic, using the system of Syntactic Control of Interference proposed by Reynolds in 1978. We extend the original system with permission algebras, making it more powerful and able to deal with the issues of concurrent programs. The result is a streamined presentation of Concurrent Separation Logic, whose rules are memorable and soundness obvious. We also include a discussion of how the new rules impact the semantics and devise static analysis techniques to infer the required permissions automatically.
Supplemental Material
Available for Download
The file popl233-reddy-supplemental.pdf contains the technical appendix for the paper "Syntactic Control of Interference for Separation Logic" by Uday S. Reddy and John C. Reynolds.
- S. Abramsky and G. McCusker. Linearity, sharing and state. In Algol-like Languages tOT, chapter 20.Google Scholar
- S. Abramsky, K. Honda, and G. McCusker. A fully abstract game semantics for general references. In LICS 1998, pages 334--344, 1998. Google Scholar
Digital Library
- K. R. Apt. Ten years of Hoare's logic: A survey. ACM Trans. Program. Lang. Syst., 3 (4): 431--483, Oct. 1981. Google Scholar
Digital Library
- J. Berdine and I. Wehrman. Variable conditions and CSL. Private communication, 4th April, 2011.Google Scholar
- K. Bierhoff. API protocol compliance in object-oriented software. Technical Report Carnegie Mellon University-ISR-09--108, Carnegie-Mellon University, Apr 2009.Google Scholar
- R. Bornat, C. Calcagno, P. O'Hearn, and M. Parkinson. Permission accounting in Separation Logic. In ACM Symp. on Princ. of Program. Lang., pages 59--70. ACM Press, 2005. Google Scholar
Digital Library
- R. Bornat, C. Calcagno, and H. Yang. Variables as resource in Separation Logic. In Proc. 22nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXII) MFPS 06, pages 247--276. Google Scholar
Digital Library
- J. Boyland. Checking interference with fractional permissions. In R. Cousot, editor, Static Analysis: 10th Intern. Symp., volume 2694 of LNCS, pages 55--72. Springer, 2003. Google Scholar
Digital Library
- 973)}Brinch-Hansen-monitorsP. Brinch Hansen. Operating System Principles. Prentice-Hall, Englewood Cliffs, 1973. Google Scholar
Digital Library
- P. Brinch Hansen. Structured multiprogramming. Comm. ACM, 15: 574--577, July 1972. Google Scholar
Digital Library
- S. D. Brookes. A semantics for Concurrent Separation Logic. Theoretical Comput. Sci., 375 (1--3): 227--270, Apr 2007. Google Scholar
Digital Library
- S. D. Brookes. A revisionist history of Concurrent Separation Logic. In MFPS 2011, pages 5--28. Google Scholar
Digital Library
- S. D. Brookes. Variables as resource for shared-memory programs: Semantics and soundness. In Proc. 22nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXII) MFPS 06, pages 123--150. DOI: 10.1016/j.entcs.2006.04.008. Google Scholar
Digital Library
- L. Damas and R. Milner. Principal type-schemes for functional programs. In ACM Symp. on Princ. of Program. Lang., pages 207--212, 1982. Google Scholar
Digital Library
- J.-Y. Girard. Linear logic. Theoretical Comput. Sci., 50: 1--102, 1987. Google Scholar
Digital Library
- A. Gotsman, J. Berdine, and B. Cook. Precision and the conjunction rule in Concurrent Separation Logic. In MFPS 2011.Google Scholar
Digital Library
- C. A. R. Hoare. Towards a theory of parallel programming. In C. A. R. Hoare and R. H. Perrott, editors, Operating Systems Techniques, pages 61--71. Academic Press, 1972.Google Scholar
- C. A. R. Hoare. Monitors: An operating system structuring concept. Comm. ACM, 17 (10): 549--558, Oct. 1974. Google Scholar
Digital Library
- B. J., C. Calcagno, and P. W. O'Hearn. Smallfoot: Modular automatic assertion checking with Separation Logic. In F. S. de Boer, editor, Formal Methods for Components and Objects, 4th Intern. Symp., volume 4111 of LNCS, pages 115--137. Springer-Verlag, 2005. Google Scholar
Digital Library
- K. Kapoor, K. Lodaya, and U. S. Reddy. Fine grained concurrency with Separation Logic. J. Philosophical Logic, 40 (5): 583--632, Oct 2011. 10.1007/s10992-011--9195--1.Google Scholar
Cross Ref
- M. Main, A. Melton, and M. Mislove. Proc. 22nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXII), volume 158 of Elect. Notes in Theor. Comput. Sci. Elsevier, 2006.Google Scholar
- G. McCusker. A graph model for imperative computation. Logical Methods in Comp. Sci., 6 (1--2), Jan 2010.Google Scholar
- R. Milner. A theory of type polymorphism in programming. J. Comput. Syst. Sci., 17: 348--375, 1978.Google Scholar
Cross Ref
- M. Mislove and J. Ouaknine, editors. Proc. 27nd Ann. Conf. on Math. Found. of Program. Semantics (MFPS XXVII), volume 276 of Elect. Notes in Theor. Comput. Sci. Elsevier, 2011.Google Scholar
- P. W. O'Hearn. Resources, concurrency and local reasoning. Theoretical Comput. Sci., 375 (1--3): 271--307, May 2007. Google Scholar
Digital Library
- P. W. O'Hearn. Linear logic and interference control. In Category Theory and Computer Science, volume 350 of LNCS, pages 74--93. Springer-Verlag, 1991. Google Scholar
Digital Library
- P. W. O'Hearn and D. J. Pym. The logic of bunched implications. Bulletin Symbolic Logic, 5 (2): 215--244, June 1999.Google Scholar
Cross Ref
- P. W. O'Hearn and R. D. Tennent. Algol-like Languages (Two volumes). Birkhauser, Boston, 1997.Google Scholar
Digital Library
- P. W. O'Hearn, A. J. Power, M. Takeyama, and R. D. Tennent. Syntactic control of interference revisited. In S. D. Brookes, M. Main, A. Melton, and M. Mislove, editors, Math. Found. of Program. Semantics: Eleventh Ann. Conference, volume 1 of Elect. Notes in Theor. Comput. Sci. Elsevier, 1995. (Reprinted as Chapter 18 of OT).Google Scholar
- P. W. O'Hearn, J. C. Reynolds, and H. Yang. Local reasoning about programs that alter data structures. In L. Fribourg, editor, CSL 2001, volume 2142 of LNCS, pages 1--19, Berlin, 2001. Springer-Verlag. Google Scholar
Digital Library
- S. Owicki and D. Gries. Verifying properties of parallel programs: An axiomatic approach. Comm. ACM, 19 (5): 279--285, May 1976. Google Scholar
Digital Library
- M. Parkinson, R. Bornat, and Calcagno. Variables as resource in Hoare Logics. In Symp. on Logic in Comput. Sci., pages 137--146. IEEE, 2006. Google Scholar
Digital Library
- U. S. Reddy. Global state considered unnecessary: An introduction to object-based semantics. J. Lisp and Symbolic Computation, 9: 7--76, 1996. (Reprinted as Chapter 19 of OT).Google Scholar
Cross Ref
- J. Reynolds. Separation Logic: A logic for shared mutable data structures. In LICS, pages 55--74, 2002. Google Scholar
Digital Library
- J. C. Reynolds. A problematic program (joint work with Josh Berdine). Presentation at the Dagstuhl workshop on Types, Logics and Semantics for State, 2008.Google Scholar
- J. C. Reynolds. Syntactic control of interference. In ACM Symp. on Princ. of Program. Lang., pages 39--46. ACM, 1978. (Reprinted as Chapter 10 of OT). Google Scholar
Digital Library
- J. C. Reynolds. Idealized Algol and its specification logic. In D. Neel, editor, Tools and Notions for Program Construction, pages 121--161. Cambridge Univ. Press, 1982. (Reprinted as Chapter 6 of OT).Google Scholar
- V. Vafeiadis. Concurrent Separation Logic and operational semantics. In MFPS 2011.Google Scholar
- H. Yang and P. W. O'Hearn. A semantics basis for local reasoning. In FOSSACS, pages 402--416, Berlin, 2002. Springer-Verlag. Google Scholar
Digital Library
- H. Yasuoka and T. Terauchi. Polymorphic fractional capabilities. In Static Analysis Symposium/Workshop on Static Analysis, pages 36--51, 2009. 10.1007/978--3--642-03237-0_5. Google Scholar
Digital Library
Index Terms
Syntactic control of interference for separation logic
Recommendations
Syntactic control of interference for separation logic
POPL '12: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesSeparation Logic has witnessed tremendous success in recent years in reasoning about programs that deal with heap storage. Its success owes to the fundamental principle that one should keep separate areas of the heap storage separate in program ...
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 ...
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 ...







Comments