ReQWIRE: Reasoning about Reversible Quantum Circuits

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.

[1]  Pierre-Yves Strub,et al.  Dependent types and multi-monadic effects in F* , 2016, POPL.

[2]  Martin Rötteler,et al.  REVS: A Tool for Space-Optimized Reversible Circuit Synthesis , 2017, RC.

[3]  Jennifer Paykin,et al.  QWIRE: a core language for quantum circuits , 2017, POPL.

[4]  Charles H. Bennett,et al.  Logical reversibility of computation , 1973 .

[5]  Martin Rötteler,et al.  Verified Compilation of Space-Efficient Reversible Circuits , 2016, CAV.

[6]  Kalyan S. Perumalla,et al.  Introduction to Reversible Computing , 2013 .

[7]  Benoît Valiron,et al.  Quipper: a scalable quantum programming language , 2013, PLDI.

[8]  Peter W. Shor,et al.  Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer , 1995, SIAM Rev..

[9]  Jennifer Paykin,et al.  QWIRE Practice: Formal Verification of Quantum Circuits in Coq , 2018, QPL.

[10]  Tommaso Toffoli,et al.  Reversible Computing , 1980, ICALP.

[11]  Sam Staton,et al.  Algebraic Effects, Linearity, and Quantum Programming Languages , 2015, POPL.

[12]  B. Ömer Classical Concepts in Quantum Programming , 2002, quant-ph/0211100.

[13]  Alexis De Vos,et al.  Reversible Computing: Fundamentals, Quantum Computing, and Applications , 2010 .

[14]  Martin Rötteler,et al.  Factoring using $2n+2$ qubits with Toffoli based modular multiplication , 2016, Quantum Inf. Comput..

[15]  Benoît Valiron,et al.  An Introduction to Quantum Programming in Quipper , 2013, RC.