A Logic for Recursive Quantum Programs

Most modern (classical) programming languages support recursion. Recursion has also been successfully applied to the design of several quantum algorithms and introduced in a couple of quantum programming languages. So, it can be expected that recursion will become one of the fundamental paradigms of quantum programming. Several program logics have been developed for verification of non-recursive quantum programs. However, there are as yet no general methods for reasoning about recursive procedures in quantum computing. We fill the gap in this paper by presenting a logic for recursive quantum programs. This logic is an extension of quantum Hoare logic for quantum While-programs. The (relative) completeness of the logic is proved, and its effectiveness is shown by a running example: fixed-point Grover's search.

[1]  Mingsheng Ying,et al.  Algorithmic analysis of termination problems for quantum programs , 2017, Proc. ACM Program. Lang..

[2]  Simon J. Gay,et al.  Quantum Programming Languages Survey and Bibliography , 2006 .

[3]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[4]  Jan A. Bergstra,et al.  Expressiveness and the Completeness of Hoare's Logic , 1982, J. Comput. Syst. Sci..

[5]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[6]  Mingsheng Ying,et al.  Floyd--hoare logic for quantum programs , 2011, TOPL.

[7]  Matthew McKague,et al.  Interactive proofs with efficient quantum prover for recursive Fourier sampling , 2010, Chic. J. Theor. Comput. Sci..

[8]  Martin Rötteler,et al.  Q#: Enabling Scalable Quantum Computing and Development with a High-level DSL , 2018, RWDSL2018.

[9]  Peter Selinger,et al.  A Brief Survey of Quantum Programming Languages , 2004, FLOPS.

[10]  Xiaodi Wu,et al.  Invariants of quantum programs: characterisations and generation , 2017, POPL.

[11]  Jonathan Grattage A functional quantum programming language , 2005, 20th Annual IEEE Symposium on Logic in Computer Science (LICS' 05).

[12]  Lov K. Grover,et al.  Fixed-point quantum search. , 2005, Physical review letters.

[13]  Prakash Panangaden,et al.  Quantum weakest preconditions , 2005, Mathematical Structures in Computer Science.

[14]  Alexandru Baltag,et al.  Quantum logic as a dynamic logic , 2011, Synthese.

[15]  Yuan Feng,et al.  Proof rules for the correctness of quantum programs , 2007, Theor. Comput. Sci..

[16]  Stephen A. Cook,et al.  Soundness and Completeness of an Axiom System for Program Verification , 1978, SIAM J. Comput..

[17]  Amr Sabry,et al.  Modeling quantum computing in Haskell , 2003, Haskell '03.

[18]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[19]  Olivier Brunet,et al.  Dynamic Quantum Logic for Quantum Programs , 2003 .

[20]  Thierry Paul,et al.  Quantum computation and quantum information , 2007, Mathematical Structures in Computer Science.

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

[22]  Ernst-Rüdiger Olderog,et al.  Verification of Sequential and Concurrent Programs , 1991, Texts and Monographs in Computer Science.

[23]  Nissim Francez,et al.  Program verification , 1992, International computer science series.

[24]  Umesh V. Vazirani,et al.  Quantum Complexity Theory , 1997, SIAM J. Comput..

[25]  Yoshihiko Kakutani,et al.  A Logic for Formal Verification of Quantum Programs , 2009, ASIAN.

[26]  Peter Selinger,et al.  Towards a quantum programming language , 2004, Mathematical Structures in Computer Science.

[27]  Krysta Marie Svore,et al.  LIQUi|>: A Software Design Architecture and Domain-Specific Language for Quantum Computing , 2014, ArXiv.

[28]  Mingsheng Ying,et al.  Foundations of Quantum Programming , 2016 .

[29]  Chen-Fu Chiang,et al.  Scaffold: Quantum Programming Language , 2012 .

[30]  Theodore J. Yoder,et al.  Fixed-point quantum search with an optimal number of queries. , 2014, Physical review letters.