2019/01/29 by Robert Rand, Jennifer Paykin, Dong-Ho Lee +1
Computer Science · #cs.LO #cs.ET #cs.PL
paper · pdf · doi:10.4204/eptcs.287.17
published as EPTCS 287, 2019, pp. 299-312 · In Proceedings QPL 2018, arXiv:1901.09476
arxiv created 2019/01/29 · arxiv updated 2019/01/30
Common quantum algorithms make heavy use of ancillae: scratch qubits that are initialized at some state and later returned to that state and discarded. Existing quantum circuit languages let programmers assert that a qubit has been returned to the |0> state before it is discarded, allowing for a range of optimizations. However, existing languages do not provide the tools to verify these assertions, introducing a potential source of errors. In this paper we present methods for verifying that ancillae are discarded in the desired state, and use these methods to implement a verified compiler from classical functions to quantum oracles.