skip to main content
article
Open access

BI-hyperdoctrines, higher-order separation logic, and abstraction

Published: 02 August 2007 Publication History

Abstract

We present a precise correspondence between separation logic and a simple notion of predicate BI, extending the earlier correspondence given between part of separation logic and propositional BI. Moreover, we introduce the notion of a BI hyperdoctrine, show that it soundly models classical and intuitionistic first- and higher-order predicate BI, and use it to show that we may easily extend separation logic to higher-order. We also demonstrate that this extension is important for program proving, since it provides sound reasoning principles for data abstraction in the presence of aliasing.

References

[1]
Banerjee, A. and Naumann, D. 2005a. Ownership confinement ensures representation independence for object-oriented programs. J. ACM 52, 6, 894--960.
[2]
Banerjee, A. and Naumann, D. 2005b. State based ownership, reentrance and encapsulation. In Proceedings of the European Conference on Object-Oriented Programming. Lecture Notes in Computer Science, vol. 3586. Springer, 387--411.
[3]
Barnett, M., DeLine, R., Fähndrich, M., Leino, K., and Schulte, W. 2003. Verification of object-oriented programs with invariants. In Proceedings of the Conference on Formal Techniques for Java-Like Programs.
[4]
Barnett, M. and Naumann, D. 2004. Friends need a bit more: Maintaining invariants over shared shate. In Proceedings of the Conference on Mathematics of Program Construction (MPC).
[5]
Biering, B. 2004. On the logic of bunched implications and its relation to separation logic. M.S. thesis, University of Copenhagen.
[6]
Biering, B., Birkedal, L., Butz, C., Hyland, J., van Oosten, J., and Streicher, P. R. T. 2006. Notes on the dialectica topos. To appear.
[7]
Birkedal, L., Torp-Smith, N., and Yang, H. 2005. Semantics of separation-logic typing and higher-order frame rules. In Proceedings of the 20th Annual IEEE Symposium on Logic in Computer Science (LICS). IEEE Press, Chicago, IL, 260--269.
[8]
Birkedal, L., Torp-Smith, N., and Reynolds, J. 2004. Local reasoning about a copying garbage collector. In Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) (Venice, Italy). 220--231.
[9]
Bornat, R., Calcagno, C., O'Hearn, P., and Parkinson, M. 2005. Permission accounting in separation logic. In Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL) (Long Beach, CA). ACM, New York.
[10]
Bornat, R., Calcagno, C., and O'Hearn, P. 2004. Local reasoning, separation and aliasing. In Proceedings of the SPACE (Venice, Italy).
[11]
Birkedal, L. and Yang, H. 2006. Relational parametricity and separation logic. To appear.
[12]
Hoare, C. A. R. 1972. Proof of correctness of data representations. Acta Inf. 1, 271--281.
[13]
Hoare, C. A. R. 1971. Procedures and parameters: An axiomatic approach. In Proceedings of the Symposium on Semantics of Algorithmic Languages, E. Engler, ed. Springer, 102--116.
[14]
Ishtiaq, S. and O'Hearn, P. W. 2001. BI as an assertion language for mutable data structures. In Proceedings of the 28th Annual ACM SIGPLAN - SIGACT Symposium on Principles of Programming Languages (POPL) (London).
[15]
Jacobs, B. 1999. Categorical Logic and Type Theory. Studies in Logic and the Foundations of Mathematics, vol. 141. North-Holland, Amsterdam, The Netherlands.
[16]
Krishnaswami, N., Birkedal, L., Aldrich, J., and Reynolds, J. 2006. Idealized ML and its separation logic. To appear.
[17]
Lawvere, F. 1969. Adjointness in foundations. Dialectica 23, 3-4, 281--296.
[18]
Leavans, G. 1988. Verifying object-oriented programs that use subtypes. Ph.D. thesis, MIT. Published as MIT/LCS/TR-439 in February 1989.
[19]
Leino, K. 1995. Toward reliable modular programs. Ph.D. thesis, California Institute of Technology.
[20]
Leino, K. R. M. and Müller, P. 2006. A verification methodology for model fields. In Proceedings of the European Symposium on Programming (ESOP), P. Sestoft, ed. Lecture Notes in Computer Science, vol. 3924. Springer, 115--130.
[21]
Leino, K. and Müller, P. 2004. Object invariants in dynamic contexts. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP).
[22]
Liskow, B. and Guttag, J. 1986. Abstraction and Specification in Program Development. MIT Press, Cambridge, MA.
[23]
MacLane, S. and Moerdijk, I. 1994. Sheaves in Geometry and Logic. Universitext. Springer, New York. A first introduction to topos theory, Corrected reprint of the 1992 edition.
[24]
Mitchell, J. C. and Plotkin, G. D. 1985. Abstract types have existential type. In Proceedings of the 12th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL) (New Orleans, LA), 37--51.
[25]
Müller, P. 2002. Modular Specification and Verification of Object-Oriented Programs. Lecture Notes in Computer Science, vol. 2262, Springer.
[26]
Nanevski, A., Ahmed, A., Morrisett, G., and Birkedal, L. 2006. Abstract predicates and mutable ADTs in Hoare type theory. Tech. Rep. TR--14-06, Harvard University.
[27]
Naumann, D. and Barnett, M. 2006. Towards imperative modules: Reasoning about invariants and mutable state. Theor. Comput. Sci. 365, 143--168.
[28]
O'Hearn, P. W. 2004. Resources, concurrency and local reasoning. In Proceedings of the 15th International Conference on Concurrency Theory (CONCUR) (London). Lecture Notes in Computer Science, vol. 3170. Springer, 49--67.
[29]
O'Hearn, P. W., Yang, H., and Reynolds, J. C. 2004. Separation and information hiding. In Proceedings of the 31st ACM SIGPLAN - SIGACT Symposium on Principles of Programming Languages (POPL) (Venice, Italy). 268--280.
[30]
O'Hearn, P. W., Yang, H., and Reynolds, J. C. 2003. Separation and information hiding (work in progress). Extended version of O'Hearn et al. {2004}.
[31]
O'Hearn, P. and Pym, D. J. 1999. The logic of bunched implications. Bull. Symb. Logic 5, 2 (Jun.).
[32]
Parkinson, M. and Bierman, G. 2005. Separation logic and abstraction. In Proceedings of the 32nd Annual ACM SIGPLAN - SIGACT Symposium on Principles of Programming Languages (POPL) (Long Beach, CA). 247--258.
[33]
Pitts, A. M. 2001. Categorical logic. In Handbook of Logic in Computer Science, volume 5: Algebraic and Logical Structures, S. Abramsky et al., eds. Clarendon Press, Oxford, UK. Chapter 2.
[34]
Pym, D. J. 2004. Errata and remarks for the semantics and proof theory of the logic of bunched implications. Addendum to Pym {2002}. http://www.cs.bath.ac.uk/~pym/.
[35]
Pym, D. 2002. The Semantics and Proof Theory of the Logic of Bunched Implications. Applied Logics Series, vol. 26. Kluwer.
[36]
Pym, D. J., O'Hearn, P. W., and Yang, H. 2004. Possible worlds and resources: The semantics of BI. Theor. Comput. Sci. 315, 1, 257--305.
[37]
Reynolds, J. C. 2002. Separation logic: A logic for shared mutable data structures. In Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science (LICS) (Copenhagen, Denmark). IEEE Press 55--74.
[38]
Silberschatz, A. and Galvin, P. 1998. Operating Systems Concepts, 5th ed. World Student Series. Addison-Wesley, Reading, MA.
[39]
Yang, H. 2001. Local reasoning for stateful programs. Ph.D. thesis, University of Illinois, Urbana-Champaign.
[40]
Yang, H. and O'Hearn, P. 2002. A semantic basis for local reasoning. In Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures (FOSSACS) (Grenoble, France). Springer, 402--416.

Cited By

View all
  • (2023)Lilac: A Modal Separation Logic for Conditional ProbabilityProceedings of the ACM on Programming Languages10.1145/35912267:PLDI(148-171)Online publication date: 6-Jun-2023
  • (2022)Mechanized verification of a fine-grained concurrent queue from meta’s folly libraryProceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3497775.3503689(100-115)Online publication date: 17-Jan-2022
  • (2021)Theorems for free from separation logic specificationsProceedings of the ACM on Programming Languages10.1145/34735865:ICFP(1-29)Online publication date: 19-Aug-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 29, Issue 5
Special Issue ESOP'05
August 2007
213 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/1275497
Issue’s Table of Contents
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 02 August 2007
Published in TOPLAS Volume 29, Issue 5

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Separation logic
  2. abstraction
  3. hyperdoctrines

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)114
  • Downloads (Last 6 weeks)19
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Lilac: A Modal Separation Logic for Conditional ProbabilityProceedings of the ACM on Programming Languages10.1145/35912267:PLDI(148-171)Online publication date: 6-Jun-2023
  • (2022)Mechanized verification of a fine-grained concurrent queue from meta’s folly libraryProceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3497775.3503689(100-115)Online publication date: 17-Jan-2022
  • (2021)Theorems for free from separation logic specificationsProceedings of the ACM on Programming Languages10.1145/34735865:ICFP(1-29)Online publication date: 19-Aug-2021
  • (2021)Compositional Non-Interference for Fine-Grained Concurrent Programs2021 IEEE Symposium on Security and Privacy (SP)10.1109/SP40001.2021.00003(1416-1433)Online publication date: May-2021
  • (2021)FIBRED ALGEBRAIC SEMANTICS FOR A VARIETY OF NON-CLASSICAL FIRST-ORDER LOGICS AND TOPOLOGICAL LOGICAL TRANSLATIONThe Journal of Symbolic Logic10.1017/jsl.2021.4186:3(1189-1213)Online publication date: 10-Jun-2021
  • (2021)An Algebraic Glimpse at Bunched Implications and Separation LogicHiroakira Ono on Substructural Logics10.1007/978-3-030-76920-8_5(185-242)Online publication date: 14-Dec-2021
  • (2020)Separation logic for sequential programs (functional pearl)Proceedings of the ACM on Programming Languages10.1145/34089984:ICFP(1-34)Online publication date: 3-Aug-2020
  • (2020)Local Local Reasoning: A BI-Hyperdoctrine for Full Ground StoreFoundations of Software Science and Computation Structures10.1007/978-3-030-45231-5_28(542-561)Online publication date: 17-Apr-2020
  • (2020)Higher-Order Categorical Substructural Logic: Expanding the Horizon of Tripos TheoryRelational and Algebraic Methods in Computer Science10.1007/978-3-030-43520-2_12(187-203)Online publication date: 26-Oct-2020
  • (2019)Do we really need computational thinking?Communications of the ACM10.1145/323158762:2(32-35)Online publication date: 28-Jan-2019
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media