### Abstract

The magic wand $\mathbin{-\!\!*}$ (also called separating
implication) is a separation logic connective commonly used to specify
properties of partial data structures, for instance during iterative
traversals. A

BSD License*footprint*of a magic wand formula $$A \mathbin{-\!\!*} 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 are unsound. In this entry, we formally define a framework for the sound automation of magic wands, described in an upcoming paper at CAV 2022, and prove that it is sound and complete. This framework, called the*package logic*, precisely characterises a wide design space of possible package algorithms applicable to a large class of separation logics.