a functional quantum programming languagepsztxa/talks/slides-tfp04.pdfwhat you always wanted to know...

109
A Functional Quantum Programming Language Thorsten Altenkirch University of Nottingham based on joint work with Jonathan Grattage and discussionswith V.P. Belavkin supported by EPSRC grant GR/S30818/01 A Functional Quantum Programming Language – p.1/??

Upload: others

Post on 04-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

A Functional QuantumProgramming Language

Thorsten Altenkirch

University of Nottingham

based on joint work with Jonathan Grattage

and discussions with V.P. Belavkin

supported by EPSRC grant GR/S30818/01

A Functional Quantum Programming Language – p.1/??

Page 2: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Alternative title

What you always wanted to know

about quantum computation

but never dared to ask.

A Functional Quantum Programming Language – p.2/??

Page 3: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Another alternative title

Quantum programming

for the

lazy functional programmer

A Functional Quantum Programming Language – p.3/??

Page 4: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Background

Simulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 5: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 6: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 7: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 8: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in� � � �

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 9: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in� � � �

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 10: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in� � � �

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 11: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in� � � �

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 12: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

BackgroundSimulation of quantum systems is expensive:Exponential time to simulate polynomial circuits.

Feynman: Can we exploit this fact to performcomputations more efficiently?

Shor: Factorisation in quantum polynomial time.

Grover: Blind search in� � � �

Can we build a quantum computer?

yes We can run quantum algorithms.

no Nature is classical after all!

Assumption: Nature is fair. . .

A Functional Quantum Programming Language – p.4/??

Page 13: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

The quantum software crisis

Quantum algorithms are usually presentedusing the circuit model.

Nielsen and Chuang, p.7, Coming up withgood quantum algorithms is hard.Richard Josza, QPL 2004: We need todevelop quantum thinking!

A Functional Quantum Programming Language – p.5/??

Page 14: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

The quantum software crisis

Quantum algorithms are usually presentedusing the circuit model.

Nielsen and Chuang, p.7, Coming up withgood quantum algorithms is hard.Richard Josza, QPL 2004: We need todevelop quantum thinking!

A Functional Quantum Programming Language – p.5/??

Page 15: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

The quantum software crisis

Quantum algorithms are usually presentedusing the circuit model.

Nielsen and Chuang, p.7, Coming up withgood quantum algorithms is hard.

Richard Josza, QPL 2004: We need todevelop quantum thinking!

A Functional Quantum Programming Language – p.5/??

Page 16: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

The quantum software crisis

Quantum algorithms are usually presentedusing the circuit model.

Nielsen and Chuang, p.7, Coming up withgood quantum algorithms is hard.Richard Josza, QPL 2004: We need todevelop quantum thinking!

A Functional Quantum Programming Language – p.5/??

Page 17: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QML

QML: a first-order functional language for quantumcomputations on finite types.

Quantum control and quantum data.

Design guided by semantics

Analogy with classical computation

Finite classical computations

Finite quantum computations

Important issue: control of decoherence

Compiler under construction (Jonathan)

A Functional Quantum Programming Language – p.6/??

Page 18: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QMLQML: a first-order functional language for quantumcomputations on finite types.

Quantum control and quantum data.

Design guided by semantics

Analogy with classical computation

Finite classical computations

Finite quantum computations

Important issue: control of decoherence

Compiler under construction (Jonathan)

A Functional Quantum Programming Language – p.6/??

Page 19: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QMLQML: a first-order functional language for quantumcomputations on finite types.

Quantum control and quantum data.

Design guided by semantics

Analogy with classical computation

Finite classical computations

Finite quantum computations

Important issue: control of decoherence

Compiler under construction (Jonathan)

A Functional Quantum Programming Language – p.6/??

Page 20: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QMLQML: a first-order functional language for quantumcomputations on finite types.

Quantum control and quantum data.

Design guided by semantics

Analogy with classical computation

Finite classical computations

Finite quantum computations

Important issue: control of decoherence

Compiler under construction (Jonathan)

A Functional Quantum Programming Language – p.6/??

Page 21: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QMLQML: a first-order functional language for quantumcomputations on finite types.

Quantum control and quantum data.

Design guided by semantics

Analogy with classical computation� � �

Finite classical computations� �

Finite quantum computations

Important issue: control of decoherence

Compiler under construction (Jonathan)

A Functional Quantum Programming Language – p.6/??

Page 22: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QMLQML: a first-order functional language for quantumcomputations on finite types.

Quantum control and quantum data.

Design guided by semantics

Analogy with classical computation� � �

Finite classical computations� �

Finite quantum computations

Important issue: control of decoherence

Compiler under construction (Jonathan)

A Functional Quantum Programming Language – p.6/??

Page 23: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QMLQML: a first-order functional language for quantumcomputations on finite types.

Quantum control and quantum data.

Design guided by semantics

Analogy with classical computation� � �

Finite classical computations� �

Finite quantum computations

Important issue: control of decoherence

Compiler under construction (Jonathan)

A Functional Quantum Programming Language – p.6/??

Page 24: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Example: Hadamard operation

Matrix

QML

A Functional Quantum Programming Language – p.7/??

Page 25: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Example: Hadamard operation

Matrix

� ��

� �� �

QML

A Functional Quantum Programming Language – p.7/??

Page 26: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Example: Hadamard operation

Matrix

� ��

� �� �

QML �� �� � � ��� �� � �� � ������ ��� ��� �!" #$ � % � &(') " *

� +�, � ��� ��� �!" # � &(') " *

A Functional Quantum Programming Language – p.7/??

Page 27: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Something we know well . . .

Classical computations on finite types.

Quantum mechanics is time-reversible. . .

. . . hence quantum computation is based on reversibleoperations.

However: Newtonian mechanics, Maxwellianelectrodynamics are also time-reversible. . .

. . . hence classical computation should be based onreversible operations.

A Functional Quantum Programming Language – p.8/??

Page 28: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Something we know well . . .

Classical computations on finite types.

Quantum mechanics is time-reversible. . .

. . . hence quantum computation is based on reversibleoperations.

However: Newtonian mechanics, Maxwellianelectrodynamics are also time-reversible. . .

. . . hence classical computation should be based onreversible operations.

A Functional Quantum Programming Language – p.8/??

Page 29: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Something we know well . . .

Classical computations on finite types.

Quantum mechanics is time-reversible. . .

. . . hence quantum computation is based on reversibleoperations.

However: Newtonian mechanics, Maxwellianelectrodynamics are also time-reversible. . .

. . . hence classical computation should be based onreversible operations.

A Functional Quantum Programming Language – p.8/??

Page 30: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Something we know well . . .

Classical computations on finite types.

Quantum mechanics is time-reversible. . .

. . . hence quantum computation is based on reversibleoperations.

However: Newtonian mechanics, Maxwellianelectrodynamics are also time-reversible. . .

. . . hence classical computation should be based onreversible operations.

A Functional Quantum Programming Language – p.8/??

Page 31: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Something we know well . . .

Classical computations on finite types.

Quantum mechanics is time-reversible. . .

. . . hence quantum computation is based on reversibleoperations.

However: Newtonian mechanics, Maxwellianelectrodynamics are also time-reversible. . .

. . . hence classical computation should be based onreversible operations.

A Functional Quantum Programming Language – p.8/??

Page 32: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Something we know well . . .

Classical computations on finite types.

Quantum mechanics is time-reversible. . .

. . . hence quantum computation is based on reversibleoperations.

However: Newtonian mechanics, Maxwellianelectrodynamics are also time-reversible. . .

. . . hence classical computation should be based onreversible operations.

A Functional Quantum Programming Language – p.8/??

Page 33: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical computation ( )

Given finite sets (input) and (output):

� �

a finite set of initial heaps ,

an initial heap ,

a finite set of garbage states ,

a bijection ,

A Functional Quantum Programming Language – p.9/??

Page 34: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical computation ( )

Given finite sets (input) and (output):

- ./

0 � 1 2 �

a finite set of initial heaps ,

an initial heap ,

a finite set of garbage states ,

a bijection ,

A Functional Quantum Programming Language – p.9/??

Page 35: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical computation ( )

Given finite sets (input) and (output):

- ./

0 � 1 2 �

a finite set of initial heaps ,

an initial heap354 ,

a finite set of garbage states ,

a bijection 4 6 7 6 ,

A Functional Quantum Programming Language – p.9/??

Page 36: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Composing computations

>>>>

>>>>

8888

888 �

��������

������� �

A Functional Quantum Programming Language – p.10/??

Page 37: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Composing computations

8. 98 �

>>>>

>>>>

8888

888 8�

9 �

��������

������� 9�

9 � 8

A Functional Quantum Programming Language – p.10/??

Page 38: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Extensional equality

A classical computationinduces a function U by

//

��

OO

U//

We say that two computations areextensionally equivalent, if they give rise tothe same function.

A Functional Quantum Programming Language – p.11/??

Page 39: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Extensional equality

A classical computation : �$ ; 3 ; ; %

induces a function U : 4 by

6 < // 6=?>

��

@BADC E FOO

U 8 //

We say that two computations areextensionally equivalent, if they give rise tothe same function.

A Functional Quantum Programming Language – p.11/??

Page 40: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Extensional equality

A classical computation : �$ ; 3 ; ; %

induces a function U : 4 by

6 < // 6=?>

��

@BADC E FOO

U 8 //

We say that two computations areextensionally equivalent, if they give rise tothe same function.

A Functional Quantum Programming Language – p.11/??

Page 41: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Extensional equality . . .

Theorem:

U

$ G : % �$ U

% G$ U : %

Hence, classical computations upto extensionalequality give rise to the category .

Theorem: Any function on finite setscan be realized by a computation.

Translation for Category Theoreticans:U is full and faithful.

A Functional Quantum Programming Language – p.12/??

Page 42: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Extensional equality . . .

Theorem:

U

$ G : % �$ U

% G$ U : %

Hence, classical computations upto extensionalequality give rise to the category .

Theorem: Any function on finite setscan be realized by a computation.

Translation for Category Theoreticans:U is full and faithful.

A Functional Quantum Programming Language – p.12/??

Page 43: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Extensional equality . . .

Theorem:

U

$ G : % �$ U

% G$ U : %

Hence, classical computations upto extensionalequality give rise to the category .

Theorem: Any function4

on finite sets; can be realized by a computation.

Translation for Category Theoreticans:U is full and faithful.

A Functional Quantum Programming Language – p.12/??

Page 44: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Extensional equality . . .

Theorem:

U

$ G : % �$ U

% G$ U : %

Hence, classical computations upto extensionalequality give rise to the category .

Theorem: Any function4

on finite sets; can be realized by a computation.

Translation for Category Theoreticans:U is full and faithful.

A Functional Quantum Programming Language – p.12/??

Page 45: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Example � :function HJI 4 $ � ; � % �

HKI $ � ; L % � �

computation

A Functional Quantum Programming Language – p.13/??

Page 46: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Example � :function HJI 4 $ � ; � % �

HKI $ � ; L % � �

computation � �

� �

/NMO

A Functional Quantum Programming Language – p.13/??

Page 47: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Example :

function P4 � $ � ; � %

P� �$ � ;� %

computation

� '&%$ !"#

A Functional Quantum Programming Language – p.14/??

Page 48: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Example :

function P4 � $ � ; � %

P� �$ � ;� %

computation Q � � R Q � �

S � � � '&%$ !"# Q � �

T T 4 $ � ; � % $ � ; � %

T$ S ;� % �$ S ;� %

T$ � ;� % �$ � ; U � %

A Functional Quantum Programming Language – p.14/??

Page 49: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical ( ) quantum ( )

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( ) tensor product ( )

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 50: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( ) tensor product ( )

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 51: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets

finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( ) tensor product ( )

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 52: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( ) tensor product ( )

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 53: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections

unitary operators

cartesian product ( ) tensor product ( )

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 54: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( ) tensor product ( )

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 55: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( V )

tensor product ( )

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 56: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( V ) tensor product ( W)

functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 57: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( V ) tensor product ( W)functions

superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 58: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( V ) tensor product ( W)functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 59: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( V ) tensor product ( W)functions superoperators

projections

partial trace

A Functional Quantum Programming Language – p.15/??

Page 60: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Classical vs quantum

classical (

� � �

) quantum (� �

)

finite sets finite dimensional Hilbert spaces

bijections unitary operators

cartesian product ( V ) tensor product ( W)functions superoperators

projections partial trace

A Functional Quantum Programming Language – p.15/??

Page 61: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

� X , classically

HDI G P� � �

� '&%$ !"# �

A Functional Quantum Programming Language – p.16/??

Page 62: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

� X , classically

HDI G P� � �Q � � R Q � �

S � � � '&%$ !"# �

/ZY /NMO

A Functional Quantum Programming Language – p.16/??

Page 63: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

� X , classically

HDI G P� � �Q � � R Q � �

S � � � '&%$ !"# �

/ZY /NMO[

� �

A Functional Quantum Programming Language – p.16/??

Page 64: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

� X , quantum

Q � � R Q � �

S � � � '&%$ !"# �

/\Y /]MO

input:

output:

Decoherence!

A Functional Quantum Programming Language – p.17/??

Page 65: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

� X , quantum

Q � � R Q � �

S � � � '&%$ !"# �

/\Y /]MOinput:

� I ^ � # S _ I^ � # � _ *

output:

Decoherence!

A Functional Quantum Programming Language – p.17/??

Page 66: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

� X , quantum

Q � � R Q � �

S � � � '&%$ !"# �

/\Y /]MOinput:

� I ^ � # S _ I^ � # � _ *output:

I � � # S _ * I � � # � _ *

Decoherence!

A Functional Quantum Programming Language – p.17/??

Page 67: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

� X , quantum

Q � � R Q � �

S � � � '&%$ !"# �

/\Y /]MOinput:

� I ^ � # S _ I^ � # � _ *output:

I � � # S _ * I � � # � _ *

Decoherence!

A Functional Quantum Programming Language – p.17/??

Page 68: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Control of decoherence

QML is based on strict linear logic

Contraction is implicit and realized by .

Weakening is explicit and leads todecoherence.

A Functional Quantum Programming Language – p.18/??

Page 69: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Control of decoherence

QML is based on strict linear logic

Contraction is implicit and realized by .

Weakening is explicit and leads todecoherence.

A Functional Quantum Programming Language – p.18/??

Page 70: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Control of decoherence

QML is based on strict linear logic

Contraction is implicit and realized by T.

Weakening is explicit and leads todecoherence.

A Functional Quantum Programming Language – p.18/??

Page 71: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Control of decoherence

QML is based on strict linear logic

Contraction is implicit and realized by T.Weakening is explicit and leads todecoherence.

A Functional Quantum Programming Language – p.18/??

Page 72: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QML overview

Types

Terms

A Functional Quantum Programming Language – p.19/??

Page 73: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QML overview

Types ` � � # ` a # ` a

Terms

A Functional Quantum Programming Language – p.19/??

Page 74: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QML overview

Types ` � � # ` a # ` aTerms b �� # +� �� � b �� c # � �d# $ % #$ b ; c % # +� �$ � ; L % � b �� c# � egf b # � e f ' c#ih j, � b(k � ��� e f � c # � e f ' L c l *

#ih j, � � b(k � ��� e f � c # � e f ' L c l *

# �$ m % b # $�n % c *

A Functional Quantum Programming Language – p.19/??

Page 75: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Qbits

� � � �

� &') " � � egf $ %

� ��� �!" � � egf ' $ %

�� b ����� c � +, � c l

�h j, � ��� e f c # � e f ' c l *

�� � b ���� � c � +, � c l

�h j, � � ��� e f c # � e f ' c l *

A Functional Quantum Programming Language – p.20/??

Page 76: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QML overview . . .

Typing judgementsprograms

strict programs

Semantics

A Functional Quantum Programming Language – p.21/??

Page 77: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QML overview . . .

Typing judgementso pq � ` programso p � q � ` strict programs

Semantics

A Functional Quantum Programming Language – p.21/??

Page 78: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

QML overview . . .

Typing judgementso pq � ` programso p � q � ` strict programs

Semantics o pq � `rq s 4 r o s r ` s

o p � q � `rq s 4 � r o s r ` s

A Functional Quantum Programming Language – p.21/??

Page 79: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

The let-rule

o pq � `; Q � ` p�t � a " &o pvu w x Q �q y{z t � a

;;;;

;

�����

;;;;

;;

9999

99�

������

������ �

A Functional Quantum Programming Language – p.22/??

Page 80: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

The let-rule

o pq � `; Q � ` p�t � a " &o pvu w x Q �q y{z t � a

o |~}�� � �;;

;;;

��C � � � ����� � � �

� �

;;;;

;;

9999

99 ��

� �

������

������ ��

A Functional Quantum Programming Language – p.22/??

Page 81: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

on contexts

if dom

A Functional Quantum Programming Language – p.23/??

Page 82: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

on contexts

o ; Q � ` ; Q � ` � $ o % ; Q � `o ; Q � ` � $ o % ; Q � ` if Q �4

domR �

A Functional Quantum Programming Language – p.23/??

Page 83: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

on contexts

o ; Q � ` ; Q � ` � $ o % ; Q � `o ; Q � ` � $ o % ; Q � ` if Q �4

domR �

o |~}�� � o

�C � �

A Functional Quantum Programming Language – p.23/??

Page 84: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Another source of decoherence

mentions

but doesn’t use it.

Hence, it has to measure it!

A Functional Quantum Programming Language – p.24/??

Page 85: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Another source of decoherence

��� � b mentions���� � b� � � �

��� � b� � �� � ����� � &') " � +, � � &(') "

but doesn’t use it.

Hence, it has to measure it!

A Functional Quantum Programming Language – p.24/??

Page 86: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Another source of decoherence

��� � b mentions���� � b� � � �

��� � b� � �� � ����� � &') " � +, � � &(') "

but doesn’t use it.

Hence, it has to measure it!

A Functional Quantum Programming Language – p.24/??

Page 87: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Another source of decoherence

��� � b mentions���� � b� � � �

��� � b� � �� � ����� � &') " � +, � � &(') "

but doesn’t use it.

Hence, it has to measure it!

A Functional Quantum Programming Language – p.24/??

Page 88: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

-elim

::::

:

�����

DDDD

DD�

zzzzzz �

A Functional Quantum Programming Language – p.25/??

Page 89: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

-elim

� ���� � ����� �� � ��� ��� �� � ��� � � �¡  ¢£¥¤� W � ��¦§ ¨© � ª « ¬®­°¯ ± � ²� ³ ­°¯ ´ � ² � µ� �

::::

:

�����

DDDD

DD�

zzzzzz �

A Functional Quantum Programming Language – p.25/??

Page 90: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

-elim

� ���� � ����� �� � ��� ��� �� � ��� � � �¡  ¢£¥¤� W � ��¦§ ¨© � ª « ¬®­°¯ ± � ²� ³ ­°¯ ´ � ² � µ� �

� W � /�¶¸·º¹ » �::

:::

/½¼¾ ¿ÁÀ Â1 �Äà � � � ����� /ÄÅ� Æ � �

Ç¸È ÉËÊ�1Å �

DDDD

DD

2�1¾¸Ì À �

zzzzzz

2ÍÅ�

A Functional Quantum Programming Language – p.25/??

Page 91: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

-elim decoherence-free

::::

:

�����

DDDD

DD�

zzzzzz �

A Functional Quantum Programming Language – p.26/??

Page 92: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

-elim decoherence-free

� �Î �� � � ��� �� � �Ï �� ��� �� � �Ï � � � � Ð� ��Ñ   ¢£¥¤ Ï� W � �Î ¦§ ¨ © Ï � ª « ¬®­°¯ ± � ²� ³ ­ ¯ ´ � ² � µ� �

::::

:

�����

DDDD

DD�

zzzzzz �

A Functional Quantum Programming Language – p.26/??

Page 93: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

-elim decoherence-free

� �Î �� � � ��� �� � �Ï �� ��� �� � �Ï � � � � Ð� ��Ñ   ¢£¥¤ Ï� W � �Î ¦§ ¨ © Ï � ª « ¬®­°¯ ± � ²� ³ ­ ¯ ´ � ² � µ� �

� W � /Ķ¸·º¹ » �

::::

:

/½¼Ò ¿ÁÓ Â1 �Äà � � � ����� /ÕÔ� Æ � Ö /¾ ×À �

ÇØÈ ÇØÈ1Ô �

DDDD

DD

2�1Ò Ì Ó �

zzzzzz

2ÙÔ�

A Functional Quantum Programming Language – p.26/??

Page 94: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Ú G

This program has a type error, because.

This program typechecks, because.

A Functional Quantum Programming Language – p.27/??

Page 95: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Ú G��� � b l� � � �

��� � b l� � �� � � ����� � &') " � +�, � � &') "

This program has a type error, because.

This program typechecks, because.

A Functional Quantum Programming Language – p.27/??

Page 96: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Ú G��� � b l� � � �

��� � b l� � �� � � ����� � &') " � +�, � � &') "

This program has a type error, becauseÛ xDÜÝ w Û x ÜÝ w.

This program typechecks, because.

A Functional Quantum Programming Language – p.27/??

Page 97: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Ú G��� � b l� � � �

��� � b l� � �� � � ����� � &') " � +�, � � &') "

This program has a type error, becauseÛ xDÜÝ w Û x ÜÝ w.

Þß � b� � � �

Þß � b� � �� � ����� � ��� �!" � +�, � � &') "

This program typechecks, because.

A Functional Quantum Programming Language – p.27/??

Page 98: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Ú G��� � b l� � � �

��� � b l� � �� � � ����� � &') " � +�, � � &') "

This program has a type error, becauseÛ xDÜÝ w Û x ÜÝ w.

Þß � b� � � �

Þß � b� � �� � ����� � ��� �!" � +�, � � &') "

This program typechecks, becauseÛ àÁá u â w Û xDÜÝ w.A Functional Quantum Programming Language – p.27/??

Page 99: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Conclusions

Our semantic ideas proved useful whendesigning a quantum programming language,analogous concepts are modelled by thesame syntactic constructs.

Our analysis also highlights the differencesbetween classical and quantumprogramming.

Quantum programming introduces theproblem of control of decoherence, which weaddress by making forgetting variablesexplicit and by having different if-then-elseconstructs.

A Functional Quantum Programming Language – p.28/??

Page 100: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

ConclusionsOur semantic ideas proved useful whendesigning a quantum programming language,analogous concepts are modelled by thesame syntactic constructs.

Our analysis also highlights the differencesbetween classical and quantumprogramming.

Quantum programming introduces theproblem of control of decoherence, which weaddress by making forgetting variablesexplicit and by having different if-then-elseconstructs.

A Functional Quantum Programming Language – p.28/??

Page 101: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

ConclusionsOur semantic ideas proved useful whendesigning a quantum programming language,analogous concepts are modelled by thesame syntactic constructs.

Our analysis also highlights the differencesbetween classical and quantumprogramming.

Quantum programming introduces theproblem of control of decoherence, which weaddress by making forgetting variablesexplicit and by having different if-then-elseconstructs.

A Functional Quantum Programming Language – p.28/??

Page 102: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

ConclusionsOur semantic ideas proved useful whendesigning a quantum programming language,analogous concepts are modelled by thesame syntactic constructs.

Our analysis also highlights the differencesbetween classical and quantumprogramming.

Quantum programming introduces theproblem of control of decoherence, which weaddress by making forgetting variablesexplicit and by having different if-then-elseconstructs.

A Functional Quantum Programming Language – p.28/??

Page 103: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Further work

We have to analyze more quantum programsto evaluate the practical usefulness of ourapproach.

Are we able to come up with completely newalgorithms using QML?

How to deal with higher order programs?

How to deal with infinite datatypes?

Investigate the similarities/differencesbetween FCC and FQC from a categoricalpoint of view.

A Functional Quantum Programming Language – p.29/??

Page 104: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Further work

We have to analyze more quantum programsto evaluate the practical usefulness of ourapproach.

Are we able to come up with completely newalgorithms using QML?

How to deal with higher order programs?

How to deal with infinite datatypes?

Investigate the similarities/differencesbetween FCC and FQC from a categoricalpoint of view.

A Functional Quantum Programming Language – p.29/??

Page 105: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Further work

We have to analyze more quantum programsto evaluate the practical usefulness of ourapproach.

Are we able to come up with completely newalgorithms using QML?

How to deal with higher order programs?

How to deal with infinite datatypes?

Investigate the similarities/differencesbetween FCC and FQC from a categoricalpoint of view.

A Functional Quantum Programming Language – p.29/??

Page 106: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Further work

We have to analyze more quantum programsto evaluate the practical usefulness of ourapproach.

Are we able to come up with completely newalgorithms using QML?

How to deal with higher order programs?

How to deal with infinite datatypes?

Investigate the similarities/differencesbetween FCC and FQC from a categoricalpoint of view.

A Functional Quantum Programming Language – p.29/??

Page 107: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Further work

We have to analyze more quantum programsto evaluate the practical usefulness of ourapproach.

Are we able to come up with completely newalgorithms using QML?

How to deal with higher order programs?

How to deal with infinite datatypes?

Investigate the similarities/differencesbetween FCC and FQC from a categoricalpoint of view.

A Functional Quantum Programming Language – p.29/??

Page 108: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

Further work

We have to analyze more quantum programsto evaluate the practical usefulness of ourapproach.

Are we able to come up with completely newalgorithms using QML?

How to deal with higher order programs?

How to deal with infinite datatypes?

Investigate the similarities/differencesbetween FCC and FQC from a categoricalpoint of view.

A Functional Quantum Programming Language – p.29/??

Page 109: A Functional Quantum Programming Languagepsztxa/talks/slides-tfp04.pdfWhat you always wanted to know about quantum computation but never dared to ask. A Functional Quantum Programming

The end

Thank you for your attention.

A Functional Quantum Programming Language – p.30/??