  Distributed quantum systems and especially the Quantum Internet have the
ever-increasing potential to fully demonstrate the power of quantum
computation. This is particularly true given that developing a general-purpose
quantum computer is much more difficult than connecting many small quantum
devices. One major challenge of implementing distributed quantum systems is
programming them and verifying their correctness. In this paper, we propose a
CSP-like distributed programming language to facilitate the specification and
verification of such systems. After presenting its operational and denotational
semantics, we develop a Hoare-style logic for distributed quantum programs and
establish its soundness and (relative) completeness with respect to both
partial and total correctness. The effectiveness of the logic is demonstrated
by its applications in the verification of quantum teleportation and local
implementation of non-local CNOT gates, two important algorithms widely used in
distributed quantum systems.
