Abstract

AbstractThe entailment problem$$\upvarphi \models \uppsi $$φ⊧ψin Separation Logic [12, 15], between separated conjunctions of equational ($$x \approx y$$x≈yand$$x \not \approx y$$x≉y), spatial ($$x \mapsto (y_1,\ldots ,y_\upkappa )$$x↦(y1,…,yκ)) and predicate ($$p(x_1,\ldots ,x_n)$$p(x1,…,xn)) atoms, interpreted by a finite set of inductive rules, is undecidable in general. Certain restrictions on the set of inductive definitions lead to decidable classes of entailment problems. Currently, there are two such decidable classes, based on two restrictions, calledestablishment[10, 13, 14] andrestrictedness[8], respectively. Both classes are shown to be in$$\mathsf {2\text {EXPTIME}}$$2EXPTIMEby the independent proofs from [14] and [8], respectively, and a many-one reduction of established to restricted entailment problems has been given [8]. In this paper, we strictly generalize the restricted class, by distinguishing the conditions that apply only to the left- ($$\upvarphi $$φ) and the right- ($$\uppsi $$ψ) hand side of entailments, respectively. We provide a many-one reduction of this generalized class, calledsafe, to the established class. Together with the reduction of established to restricted entailment problems, this new reduction closes the loop and shows that the three classes of entailment problems (respectively established, restricted and safe) form a single, unified,$$\mathsf {2\text {EXPTIME}}$$2EXPTIME-complete class.

Highlights

  • Separation Logic [12,15] (SL) was primarily introduced for writing concise Hoare logic proofs of programs that handle pointer-linked recursive data structures

  • SL has evolved into a powerful logical framework, that constitutes the basis of several industrial-scale static program analyzers [3,2,5], that perform scalable compositional analyses, based on the principle of local reasoning: describing the behavior of a program statement with respect only to the small set of memory locations that are changed by that statement, with no concern for the rest of the program’s state

  • We describe the transformation operating on the left-hand side of the entailment problem

Read more

Summary

Introduction

Separation Logic [12,15] (SL) was primarily introduced for writing concise Hoare logic proofs of programs that handle pointer-linked recursive data structures (lists, trees, etc). An important problem in program verification, arising during the construction of Hoare-style correctness proofs of programs, is the discharge of verification conditions of the form φ |= ψ, where φ and ψ are SL formulæ, asking whether every model of φ is a model of ψ These problems, called entailments, are, in general, undecidable in the presence of inductively defined predicates [11,1]. A first decidable class of entailments, described in [10], involves three restrictions on the SID rules: progress, connectivity and establishment. The rules of a progressive, connected and restricted (PCR) entailment may generate data structures with “dangling” (i.e. existentially quantified but not allocated) pointers, which was not possible with PCE entailments.

Definitions
Decidable Entailment Problems
Reducing Safe to Established Entailments
Expansions and Truncations
Transforming the Consequent
Transforming the Antecedent
Transforming Entailments
Conclusion and Future Work
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.