Labelled Cyclic Proofs for Separation Logic
Résumé
Separation Logic (SL) is a logical formalism for reasoning about programs that use pointers to mutate data structures. SL has proven itself successful in the field of program verification over the past fifteen years as an assertion language to state properties about memory heaps using Hoare triples.
Since the full logic is not recursively enumerable, most of the proof-systems and verification tools for SL focus on the decidable but rather restricted symbolic heaps fragment. Moreover, recent proof-systems that go beyond symbolic heaps allow either the full set of connectives, or the definition
of arbitrary predicates, but not both. In this work, we present a labelled proof-system, called GMSL, that allows both the definition of arbitrary inductive predicates and the full set of SL connectives.