A Double Effect λ-calculus for Quantum Computation

In this paper we present a double effect version of the simply typed λ-calculus where we can represent both pure and impure quantum computations. The double effect calculus comprises a quantum arrow layer defined over a quantum monadic layer. In previous works we have developed the quantum arrow calculus, a calculus where we can consider just impure (or mixed) quantum computations. Technically, here we extend the quantum arrow calculus with a construct (and equations) that allows the communication of the monadic layer with the arrow layer of the calculus. That is, the quantum arrow is defined over a monadic instance enabling to consider pure and impure quantum computations in the same framework. As a practical contribution, the calculus allows to express quantum algorithms including reversible operations over pure states and measurements in the middle of the computation using a traditional style of functional programming and reasoning. We also define equations for algebraic reasoning of computations involving measurements.

[1]  Juliana Kaizer Vizzotto,et al.  Reasoning about General Quantum Programs over Mixed States , 2009, SBMF.

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

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

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

[5]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[6]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[7]  Philip Wadler,et al.  The arrow calculus , 2010, J. Funct. Program..

[8]  Peter Selinger,et al.  Dagger Compact Closed Categories and Completely Positive Maps: (Extended Abstract) , 2007, QPL.

[9]  P. Selinger,et al.  Quantum lambda calculus , 2010 .

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

[11]  Tarmo Uustalu,et al.  The Essence of Dataflow Programming , 2005, APLAS.

[12]  Alan Bundy,et al.  Towards Ontology Evolution in Physics , 2008, WoLLIC.

[13]  Juliana Kaizer Vizzotto,et al.  The Arrow Calculus as a Quantum Programming Language , 2009, WoLLIC.

[14]  André van Tonder,et al.  A Lambda Calculus for Quantum Computation , 2003, SIAM J. Comput..

[15]  Bob Coecke,et al.  Strongly Compact Closed Semantics , 2006, MFPS.

[16]  Thorsten Altenkirch,et al.  Relative Monads Formalised , 2014, J. Formaliz. Reason..

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

[18]  Benoît Valiron,et al.  A lambda calculus for quantum computation with classical control , 2006, Math. Struct. Comput. Sci..

[19]  Samson Abramsky High-level methods for quantum computation and information , 2004, LICS 2004.

[20]  John Hughes,et al.  Generalising monads to arrows , 2000, Sci. Comput. Program..