Sound automation of magic wands

The work

AuthorsThibault Dardinier; Gaurav Parthasarathy; Noé Weeks; Peter Müller; Alexander J. Summers
Editors
Typeinproceedings
Year2022
Citekeydardinier2022sound

Where it appeared

Published in34th International Conference on Computer Aided Verification (CAV)
PublisherSpringer
SeriesLecture Notes in Computer Science
Number in series13372
Volume13372
Pages130--151

Abstract

The magic wand −∗ (also called separating implication) is a separation logic connective commonly used to specify properties of par- tial data structures, for instance during iterative traversals. A footprint of a magic wand formula A −∗ B is a state that, combined with any state in which A holds, yields a state in which B holds. The key challenge of proving a magic wand (also called packaging a wand) is to find such a footprint. Existing package algorithms either have a high annotation overhead or, as we show in this paper, are unsound. We present a formal framework that precisely characterises a wide design space of possible package algorithms applicable to a large class of separation logics. We prove in Isabelle/HOL that our formal framework is sound and complete, and use it to develop a novel package algorithm that offers competitive automation and is sound. Moreover, we present a novel, restricted definition of wands and prove in Isabelle/HOL that it is possible to soundly combine fractions of such wands, which is not the case for arbitrary wands. We have implemented our techniques for the Viper language, and demonstrate that they are effective in practice.

A copy is held

pdf, 487.3 kB. Not published — it may be under copyright. The facts and links here are.

How it got here

How it got hereagent via bibtex
Added2026-08-05 00:00 UTC
Approved bya person 2026-08-16 15:43 UTC

Cite it as

@inproceedings{dardinier2022sound,
  title        = {Sound automation of magic wands},
  author       = {Thibault Dardinier and Gaurav Parthasarathy and Noé Weeks and Peter Müller and Alexander J. Summers},
  year         = {2022},
  booktitle    = {34th International Conference on Computer Aided Verification (CAV)},
  publisher    = {Springer},
  series       = {Lecture Notes in Computer Science},
  volume       = {13372},
  pages        = {130--151},
  doi          = {10.1007/978-3-031-13188-2_7},
}

This record lives at https://refs.drheap.org/dardinier2022sound/ and will keep doing so.