Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Local reasoning for stateful programs
Publisher:
  • University of Illinois at Urbana-Champaign
  • Champaign, IL
  • United States
ISBN:978-0-493-35008-0
Order Number:AAI3023240
Pages:
239
Reflects downloads up to 15 Oct 2024Bibliometrics
Skip Abstract Section
Abstract

Programs are called stateful when they manipulate the state of a computer explicitly, for example, by assignment. The main theme of the thesis is reasoning about stateful programs. In fact, for the past 30 years, significant efforts have been made for obtaining good reasoning principles to ensure that such programs work correctly. However, reasoning techniques developed so far often result in significantly more complex verification than an informal argument; consequently, they don't attract attention from real programmers. In the thesis, we develop O'Hearn's idea of local reasoning, which was recently proposed to overcome such complexity problem in reasoning. The key observation of local reasoning is that most programs show conceptual locality in their use of the store: even though a program is able to access all global variables and all heap data structures in principle, it usually uses only a few of them. Local reasoning uses such an observation to simplify verification: one starts reasoning about a program considering only the accessed portion of the store so as to obtain a “local” fact; then, a “global” fact is inferred simply by conjoining as an invariant a property that only involves the portion of the store not accessed by the program. In the thesis, we formulate a rule which allows one to derive a global property from a local one. The rule is an extension of O'Hearn's Frame Rule for programs with procedures. It uses a symmetric noninterference predicate and a spatial conjunction to ensure that a program phrase doesn't alter the portion of the store that a conjoined property depends on. We show completeness of the rule, which provides a sense that all properties can be inferred with the rule. We also study reasoning principles for the symmetric noninterference predicate and the spatial conjunction connective; reasoning about certain uses of the spatial conjunction connective is shown to be automated. The benefit of the formalism is illustrated with the verification of the Schorr-Waite graph marking algorithm.

Cited By

  1. ACM
    Matheja C, Pagel J and Zuleger F (2022). A Decision Procedure for Guarded Separation Logic Complete Entailment Checking for Separation Logic with Inductive Definitions, ACM Transactions on Computational Logic, 24:1, (1-76), Online publication date: 31-Jan-2023.
  2. ACM
    Demri S, Lozes E and Mansutti A (2021). The Effects of Adding Reachability Predicates in Quantifier-Free Separation Logic, ACM Transactions on Computational Logic, 22:2, (1-56), Online publication date: 24-Jun-2021.
  3. ACM
    O'Hearn P (2019). Separation logic, Communications of the ACM, 62:2, (86-95), Online publication date: 28-Jan-2019.
  4. ACM
    Hóu Z, Clouston R, Goré R and Tiu A (2018). Modular Labelled Sequent Calculi for Abstract Separation Logics, ACM Transactions on Computational Logic, 19:2, (1-35), Online publication date: 28-Jun-2018.
  5. (2016). Completeness for recursive procedures in separation logic, Theoretical Computer Science, 631:C, (73-96), Online publication date: 6-Jun-2016.
  6. ACM
    Demri S and Deters M (2015). Two-Variable Separation Logic and Its Inner Circle, ACM Transactions on Computational Logic, 16:2, (1-36), Online publication date: 21-Mar-2015.
  7. ACM
    Hóu Z, Clouston R, Goré R and Tiu A Proof search for propositional abstract separation logics via labelled sequents Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (465-476)
  8. ACM
    Hóu Z, Clouston R, Goré R and Tiu A (2014). Proof search for propositional abstract separation logics via labelled sequents, ACM SIGPLAN Notices, 49:1, (465-476), Online publication date: 13-Jan-2014.
  9. ACM
    Hobor A and Villard J The ramifications of sharing in data structures Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (523-536)
  10. ACM
    Hobor A and Villard J (2013). The ramifications of sharing in data structures, ACM SIGPLAN Notices, 48:1, (523-536), Online publication date: 23-Jan-2013.
  11. ACM
    Calcagno C, Distefano D, O’Hearn P and Yang H (2011). Compositional Shape Analysis by Means of Bi-Abduction, Journal of the ACM, 58:6, (1-66), Online publication date: 1-Dec-2011.
  12. Crespo J and Kunz C A machine-checked framework for relational separation logic Proceedings of the 9th international conference on Software engineering and formal methods, (122-137)
  13. Cherini R, Rearte L and Blanco J A shape analysis for non-linear data structures Proceedings of the 17th international conference on Static analysis, (201-217)
  14. ACM
    Cherini R and Blanco J Local reasoning for abstraction and sharing Proceedings of the 2009 ACM symposium on Applied Computing, (552-557)
  15. ACM
    Parkinson M and Bierman G Separation logic, abstraction and inheritance Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (75-86)
  16. ACM
    Parkinson M and Bierman G (2008). Separation logic, abstraction and inheritance, ACM SIGPLAN Notices, 43:1, (75-86), Online publication date: 14-Jan-2008.
  17. ACM
    Torp-Smith N, Birkedal L and Reynolds J (2008). Local reasoning about a copying garbage collector, ACM Transactions on Programming Languages and Systems, 30:4, (1-58), Online publication date: 1-Jul-2008.
  18. ACM
    Calcagno C, Gardner P and Zarfaty U (2007). Context logic as modal logic, ACM SIGPLAN Notices, 42:1, (123-134), Online publication date: 17-Jan-2007.
  19. ACM
    Calcagno C, Gardner P and Zarfaty U Context logic as modal logic Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (123-134)
  20. Yang H (2007). Relational separation logic, Theoretical Computer Science, 375:1-3, (308-334), Online publication date: 20-Apr-2007.
  21. ACM
    Biering B, Birkedal L and Torp-Smith N (2007). BI-hyperdoctrines, higher-order separation logic, and abstraction, ACM Transactions on Programming Languages and Systems, 29:5, (24-es), Online publication date: 2-Aug-2007.
  22. Loginov A, Reps T and Sagiv M Automated verification of the deutsch-schorr-waite tree-traversal algorithm Proceedings of the 13th international conference on Static Analysis, (261-279)
  23. ACM
    Parkinson M and Bierman G Separation logic and abstraction Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (247-258)
  24. ACM
    Parkinson M and Bierman G (2005). Separation logic and abstraction, ACM SIGPLAN Notices, 40:1, (247-258), Online publication date: 12-Jan-2005.
  25. Biering B, Birkedal L and Torp-Smith N BI hyperdoctrines and higher-order separation logic Proceedings of the 14th European conference on Programming Languages and Systems, (233-247)
  26. Reddy U and Yang H (2004). Correctness of data representations involving heap data structures, Science of Computer Programming, 50:1-3, (129-160), Online publication date: 1-Mar-2004.
  27. ACM
    Birkedal L, Torp-Smith N and Reynolds J (2004). Local reasoning about a copying garbage collector, ACM SIGPLAN Notices, 39:1, (220-231), Online publication date: 1-Jan-2004.
  28. ACM
    Birkedal L, Torp-Smith N and Reynolds J Local reasoning about a copying garbage collector Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (220-231)
  29. Reddy U and Yang H Correctness of data representations involving heap data structures Proceedings of the 12th European conference on Programming, (223-237)
Contributors
  • University of Birmingham
  • Korea Advanced Institute of Science and Technology

Recommendations