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

skip to main content
10.1007/978-3-642-28869-2_19guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Fictional separation logic

Published: 24 March 2012 Publication History

Abstract

Separation logic formalizes the idea of local reasoning for heap-manipulating programs via the frame rule and the separating conjunction P * Q, which describes states that can be split into separate parts, with one satisfying P and the other satisfying Q. In standard separation logic, separation means physical separation. In this paper, we introduce fictional separation logic, which includes more general forms of fictional separating conjunctions P * Q, where * does not require physical separation, but may also be used in situations where the memory resources described by P and Q overlap. We demonstrate, via a range of examples, how fictional separation logic can be used to reason locally and modularly about mutable abstract data types, possibly implemented using sophisticated sharing. Fictional separation logic is defined on top of standard separation logic, and both the meta-theory and the application of the logic is much simpler than earlier related approaches.

References

[1]
Bengtson, J., Jensen, J. B., Sieczkowski, F., Birkedal, L.: Verifying Object-Oriented Programs with Higher-Order Separation Logic in Coq. In: van Eekelen, M., Geuvers, H., Schmaltz, J., Wiedijk, F. (eds.) ITP 2011. LNCS, vol. 6898, pp. 22-38. Springer, Heidelberg (2011)
[2]
Biering, B., Birkedal, L., Torp-Smith, N.: BI-hyperdoctrines, higher-order separation logic, and abstraction. ACM Transactions on Programming Languages and Systems 29(5) (2007)
[3]
Birkedal, L., Torp-Smith, N., Yang, H.: Semantics of separation-logic typing and higher-order frame rules for algol-like languages. Logical Methods in Computer Science 2(5:1) (August 2006)
[4]
Bornat, R., Calcagno, C., O'Hearn, P. W., Parkinson, M. J.: Permission accounting in separation logic. In: Proceedings of POPL, pp. 259-270 (2005)
[5]
Boyland, J.: Checking Interference with Fractional Permissions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 55-72. Springer, Heidelberg (2003)
[6]
Calcagno, C., O'Hearn, P. W., Yang, H.: Local action and abstract separation logic. In: Proceedings of LICS (2007)
[7]
Dinsdale-Young, T., Dodds, M., Gardner, P., Parkinson, M. J., Vafeiadis, V.: Concurrent Abstract Predicates. In: D'Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 504-528. Springer, Heidelberg (2010)
[8]
Dinsdale-Young, T., Gardner, P., Wheelhouse, M.: Abstraction and Refinement for Local Reasoning. In: Leavens, G. T., O'Hearn, P., Rajamani, S. K. (eds.) VSTTE 2010. LNCS, vol. 6217, pp. 199-215. Springer, Heidelberg (2010)
[9]
Dinsdale-Young, T., Gardner, P., Wheelhouse, M.: Abstraction and refinement for local reasoning (February 2011); journal submission
[10]
Dockins, R., Hobor, A., Appel, A. W.: A Fresh Look at Separation Algebras and Share Accounting. In: Hu, Z. (ed.) APLAS 2009. LNCS, vol. 5904, pp. 161-177. Springer, Heidelberg (2009)
[11]
Dodds, M., Jagannathan, S., Parkinson, M. J.: Modular reasoning for deterministic parallelism. In: Proceedings of POPL (2011)
[12]
Gotsman, A., Berdine, J., Cook, B.: Precision and the conjunction rule in concurrent separation logic. In: Proceedings of MFPS (2011)
[13]
Haack, C., Hurlin, C.: Resource usage protocols for iterators. In: Proceedings of IWACO (2008)
[14]
Jensen, J. B., Birkedal, L.: Fictional separation logic: Appendix (2011), http://itu.dk/˜jobr/research/fsl-appendix.pdf
[15]
Jensen, J. B., Birkedal, L., Sestoft, P.: Modular verification of linked lists with views via separation logic. Journal of Object Technology 10, 2:1-2:20 (2011)
[16]
Krishnaswami, N. R.: Verifying Higher-Order Imperative Programs with Higher-Order Separation Logic. Ph. D. thesis, Carnegie Mellon University (2011)
[17]
Meyers, S.: More Effective C++: 35 New Ways to Improve Your Programs and Designs, 1st edn. Addison-Wesley Professional (1996)
[18]
Parkinson, M. J., Bierman, G. M.: Separation logic and abstraction. In: Proceedings of POPL, pp. 247-258 (2005)
[19]
Pilkiewicz, A., Pottier, F.: The essence of monotonic state. In: Proceedings of TLDI (2011)
[20]
Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proceedings of LICS, pp. 55-74 (2002)
[21]
Schwinghammer, J., Birkedal, L., Reus, B., Yang, H.: Nested Hoare Triples and Frame Rules for Higher-Order Store. In: Grädel, E., Kahle, R. (eds.) CSL 2009. LNCS, vol. 5771, pp. 440-454. Springer, Heidelberg (2009)

Cited By

View all
  • (2024)StarMalloc: Verifying a Modern, Hardened Memory AllocatorProceedings of the ACM on Programming Languages10.1145/36897738:OOPSLA2(1757-1786)Online publication date: 8-Oct-2024
  • (2023)Leaf: Modularity for Temporary Sharing in Separation LogicProceedings of the ACM on Programming Languages10.1145/36227987:OOPSLA2(31-58)Online publication date: 16-Oct-2023
  • (2023)FP²: Fully in-Place Functional ProgrammingProceedings of the ACM on Programming Languages10.1145/36078407:ICFP(275-304)Online publication date: 31-Aug-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
ESOP'12: Proceedings of the 21st European conference on Programming Languages and Systems
March 2012
599 pages
ISBN:9783642288685
  • Editor:
  • Helmut Seidl

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 24 March 2012

Author Tags

  1. local reasoning
  2. modularity
  3. separation logic

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 01 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)StarMalloc: Verifying a Modern, Hardened Memory AllocatorProceedings of the ACM on Programming Languages10.1145/36897738:OOPSLA2(1757-1786)Online publication date: 8-Oct-2024
  • (2023)Leaf: Modularity for Temporary Sharing in Separation LogicProceedings of the ACM on Programming Languages10.1145/36227987:OOPSLA2(31-58)Online publication date: 16-Oct-2023
  • (2023)FP²: Fully in-Place Functional ProgrammingProceedings of the ACM on Programming Languages10.1145/36078407:ICFP(275-304)Online publication date: 31-Aug-2023
  • (2023)FastVer2: A Provably Correct Monitor for Concurrent, Key-Value StoresProceedings of the 12th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3573105.3575687(30-46)Online publication date: 11-Jan-2023
  • (2021)Verifying concurrent multicopy search structuresProceedings of the ACM on Programming Languages10.1145/34854905:OOPSLA(1-32)Online publication date: 15-Oct-2021
  • (2020)SteelCore: an extensible concurrent separation logic for effectful dependently typed programsProceedings of the ACM on Programming Languages10.1145/34090034:ICFP(1-30)Online publication date: 3-Aug-2020
  • (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)GPS$$+$$+International Journal of Parallel Programming10.1007/s10766-017-0518-x46:6(1157-1183)Online publication date: 1-Dec-2018
  • (2017)RustBelt: securing the foundations of the Rust programming languageProceedings of the ACM on Programming Languages10.1145/31581542:POPL(1-34)Online publication date: 27-Dec-2017
  • (2017)Recalling a witness: foundations and applications of monotonic stateProceedings of the ACM on Programming Languages10.1145/31581532:POPL(1-30)Online publication date: 27-Dec-2017
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media