Nested Hoare Triples and Frame Rules for Higher-order Store
Jan Schwinghammer (Saarland University), Lars Birkedal (IT University, of Copenhagen), Bernhard Reus (University of Sussex), Hongseok Yang, (University of Oxford)

TL;DR
This paper extends separation logic with nested Hoare triples and frame rules to better reason about higher-order store, enabling elegant proofs of programs with stored code and recursion.
Contribution
It introduces a consistent combination of nested triples and frame rules for higher-order store using a Kripke model, advancing reasoning capabilities.
Findings
Compatible nested triples and frame rules are identified.
A Kripke model with ultrametric spaces proves consistency.
The logic facilitates natural specifications for recursive stored code.
Abstract
Separation logic is a Hoare-style logic for reasoning about programs with heap-allocated mutable data structures. As a step toward extending separation logic to high-level languages with ML-style general (higher-order) storage, we investigate the compatibility of nested Hoare triples with several variations of higher-order frame rules. The interaction of nested triples and frame rules can be subtle, and the inclusion of certain frame rules is in fact unsound. A particular combination of rules can be shown consistent by means of a Kripke model where worlds live in a recursively defined ultrametric space. The resulting logic allows us to elegantly prove programs involving stored code. In particular, using recursively defined assertions, it leads to natural specifications and proofs of invariants required for dealing with recursion through the store.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
