The Quantum IO Monad

The Quantum IO monad is a purely functional interface to quantum programming implemented as a Haskell library. At the same time it provides a constructive semantics of quantum programming. The QIO monad separates reversible (i.e. unitary) and irreversible (i.e. probabilistic) computations and provides a reversible let operation (ulet), allowing us to use ancillas (auxiliary qubits) in a modular fashion. QIO programs can be simulated either by calculating a probability distribution or by embedding it into the IO monad using the random number generator. As an example we present a complete implementation of Shor’s algorithm.

[1]  Wouter Swierstra,et al.  Beauty in the Beast A Functional Semantics for the Awkward Squad , 2007 .

[2]  J GaySimon,et al.  Quantum programming languages: survey and bibliography , 2006 .

[3]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

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

[5]  Peter W. Shor,et al.  Algorithms for quantum computation: discrete logarithms and factoring , 1994, Proceedings 35th Annual Symposium on Foundations of Computer Science.

[6]  Barenco,et al.  Quantum networks for elementary arithmetic operations. , 1995, Physical review. A, Atomic, molecular, and optical physics.

[7]  Adi Shamir,et al.  A method for obtaining digital signatures and public-key cryptosystems , 1978, CACM.

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

[9]  Roland Rüdiger,et al.  Quantum Programming Languages: An Introductory Overview , 2007, Comput. J..

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

[11]  Jerzy Karczmarczuk,et al.  Structure and interpretation of quantum mechanics: a functional framework , 2003, Haskell '03.

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

[13]  Gilles Dowek,et al.  Linear-algebraic lambda-calculus: higher-order, encodings, and confluence , 2008, RTA.

[14]  Thorsten Altenkirch,et al.  Structuring quantum effects: superoperators as arrows , 2006, Math. Struct. Comput. Sci..

[15]  Graham Hutton,et al.  Programming in Haskell , 2007 .

[16]  U. Norell,et al.  Towards a practical programming language based on dependent type theory , 2007 .

[17]  Shin-Cheng Mu,et al.  Functional Quantum Programming , 2001, APLAS.

[18]  Pablo Arrighi Linear-algebraic λ-calculus: higher-order, encodings, and confluence , 2006 .

[19]  Thorsten Altenkirch,et al.  Dependent Types for Distributed Arrays , 2008, Trends in Functional Programming.

[20]  Elham Kashefi,et al.  The measurement calculus , 2004, JACM.

[21]  D. Deutsch Quantum theory, the Church–Turing principle and the universal quantum computer , 1985, Proceedings of the Royal Society of London. A. Mathematical and Physical Sciences.