  We propose a model of the substructural logic of Bunched Implications (BI)
that is suitable for reasoning about quantum states. In our model, the
separating conjunction of BI describes separable quantum states. We develop a
program logic where pre- and post-conditions are BI formulas describing quantum
states -- the program logic can be seen as a counterpart of separation logic
for imperative quantum programs. We exercise the logic for proving the security
of quantum one-time pad and secret sharing, and we show how the program logic
can be used to discover a flaw in Google Cirq's tutorial on the Variational
Quantum Algorithm (VQA).
