Local reasoning for global invariants, Part I: Region logic

21Citations
Citations of this article
15Readers
Mendeley users who have this article in their library.

Abstract

Shared mutable objects pose grave challenges in reasoning, especially for information hiding and modularity. This article presents a novel technique for reasoning about error-avoiding partial correctness of programs featuring shared mutable objects, and investigates the technique by formalizing a logic. Using a first-order assertion language, the logic provides heap-local reasoning about mutation and separation, via ghost fields and variables of type "region" (finite sets of object references). A new form of frame condition specifies write, read, and allocation effects using region expressions; this supports a frame rule that allows a command to read state on which the framed predicate depends. Soundness is proved using a standard program semantics. The logic facilitates heap-local reasoning about object invariants, as shown here by examples. Part II of this article extends the logic with second-order framing which formalizes the hiding of data invariants. © ACM 2013.

Cite

CITATION STYLE

APA

Banerjee, A., Naumann, D. A., & Rosenberg, S. (2013). Local reasoning for global invariants, Part I: Region logic. Journal of the ACM, 60(3). https://doi.org/10.1145/2485982

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free