Thorsten Altenkirch- Designing a Quantum Programming Language

download Thorsten Altenkirch- Designing a Quantum Programming Language

of 152

Transcript of Thorsten Altenkirch- Designing a Quantum Programming Language

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    1/152

    Designing aQuantum Programming Language

    Thorsten AltenkirchUniversity of Nottingham

    based on joint work with Jonathan Grattage

    supported by EPSRC grant GR/S30818/01

    QUOXIC Feb 05 p.1/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    2/152

    Why . . .

    QUOXIC Feb 05 p.2/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    3/152

    Why . . .

    . . . design a quantum programming language?

    QUOXIC Feb 05 p.2/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    4/152

    Why . . .

    . . . design a quantum programming language?

    Better intuitive understanding of quantumalgorithms.

    QUOXIC Feb 05 p.2/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    5/152

    Why . . .

    . . . design a quantum programming language?

    Better intuitive understanding of quantumalgorithms.

    Simplify the design of quantum programs.

    QUOXIC Feb 05 p.2/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    6/152

    Why . . .

    . . . design a quantum programming language?

    Better intuitive understanding of quantumalgorithms.

    Simplify the design of quantum programs.

    Develop formal reasoning principles for

    quantum programs.

    QUOXIC Feb 05 p.2/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    7/152

    Why . . .

    . . . design a quantum programming language?

    Better intuitive understanding of quantumalgorithms.

    Simplify the design of quantum programs.

    Develop formal reasoning principles for

    quantum programs.Understanding the computational aspect ofquantum physics.

    QUOXIC Feb 05 p.2/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    8/152

    QML

    QUOXIC Feb 05 p.3/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    9/152

    QMLQML: a first order functional quantum

    programming language for finite types

    QUOXIC Feb 05 p.3/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    10/152

    QML

    QML: a first order functional quantum

    programming language for finite typesReversible and irreversible quantum programs

    QUOXIC Feb 05 p.3/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    11/152

    QML

    QML: a first order functional quantum

    programming language for finite typesReversible and irreversible quantum programs

    Quantum data and control

    QUOXIC Feb 05 p.3/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    12/152

    QML

    QML: a first order functional quantum

    programming language for finite typesReversible and irreversible quantum programs

    Quantum data and controlOperational semantics: quantum circuits

    QUOXIC Feb 05 p.3/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    13/152

    QML

    QML: a first order functional quantum

    programming language for finite typesReversible and irreversible quantum programs

    Quantum data and controlOperational semantics: quantum circuits

    Denotational semantics: superoperators

    QUOXIC Feb 05 p.3/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    14/152

    Example: Hadamard operation

    QUOXIC Feb 05 p.4/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    15/152

    Example: Hadamard operation

    Matrix

    QUOXIC Feb 05 p.4/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    16/152

    Example: Hadamard operation

    Matrix

    QML

    "

    #$

    %&

    '

    (

    )1

    $

    2

    3

    4

    "

    #$

    %

    (

    )1

    $

    2

    QUOXIC Feb 05 p.4/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    17/152

    Deutsch algorithm5

    68

    9

    @B

    C

    D

    F

    G

    F

    G

    I

    P

    5

    68

    9

    @B

    C

    R

    S

    T

    V

    W

    Y

    `

    a

    c

    e

    f

    T

    gh

    i

    p

    q

    r

    s

    t

    uw

    x

    q

    y

    w

    Y

    W

    `

    q

    y

    w

    c

    gh

    R

    Y

    W

    p

    q

    r

    s

    t

    uw

    x `

    f

    q

    y

    w

    W

    V

    W

    p `

    f

    q

    r

    s

    t

    uw

    x

    q

    y

    w

    W

    V

    W

    `

    q

    r

    s

    t

    uw

    c

    ghS

    Y

    W

    p `

    f

    q

    r

    s

    t

    uw

    x

    q

    y

    w

    W

    V

    W

    p

    q

    r

    s

    t

    uw

    x `

    f

    q

    y

    w

    g

    a

    QUOXIC Feb 05 p.5/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    18/152

    Related Work

    P. Zuliani, PhD 2001, Quantum Programming (QGCL)

    P. Selinger, MSCS 2003, Towards a Quantum

    Programming Language(QPL)

    A. van Tonder, SIAM 2003, A Lambda Calculus for

    Quantum Computation

    A. Sabry, Haskell 2003, Modeling quantum computing

    in Haskell

    P. Selinger and B. Valiron, TLCA 2005, A lambda

    calculus for quantum computation with classical control

    QUOXIC Feb 05 p.6/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    19/152

    Overview

    1. Finite classical computation

    2. Finite quantum computation

    3. QML

    4. Conclusions and further work

    QUOXIC Feb 05 p.7/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    20/152

    1. Finite classical computation

    1. Finite classical computation

    2. Finite quantum computation

    3. QML

    4. Conclusions and further work

    QUOXIC Feb 05 p.8/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    21/152

    Classical computations on finite types

    QUOXIC Feb 05 p.9/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    22/152

    Classical computations on finite types

    Quantum mechanics is time-reversible. . .

    QUOXIC Feb 05 p.9/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    23/152

    Classical computations on finite types

    Quantum mechanics is time-reversible. . .

    . . . hence quantum computation is based on reversible

    operations.

    QUOXIC Feb 05 p.9/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    24/152

    Classical computations on finite types

    Quantum mechanics is time-reversible. . .

    . . . hence quantum computation is based on reversible

    operations.

    However: Newtonian mechanics, Maxwellian

    electrodynamics are also time-reversible. . .

    QUOXIC Feb 05 p.9/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    25/152

    Classical computations on finite types

    Quantum mechanics is time-reversible. . .

    . . . hence quantum computation is based on reversible

    operations.

    However: Newtonian mechanics, Maxwellian

    electrodynamics are also time-reversible. . .

    . . . hence classical computation should be based on

    reversible operations.

    QUOXIC Feb 05 p.9/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    26/152

    Classical computation ( )

    QUOXIC Feb 05 p.10/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    27/152

    Classical computation ( )

    Given finite sets (input) and (output):

    1

    1

    QUOXIC Feb 05 p.10/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    28/152

    Classical computation ( )

    Given finite sets (input) and (output):

    1

    1

    a finite set of initial heaps ,

    an initial heap

    ,

    a finite set of garbage states ,

    a bijection

    ,QUOXIC Feb 05 p.10/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    29/152

    Composing computations

    QUOXIC Feb 05 p.11/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    30/152

    Composing computations

    1

    bbbb

    bbbb

    VVVV

    VVV

    1

    1

    1

    QUOXIC Feb 05 p.11/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    31/152

    Extensional equality

    QUOXIC Feb 05 p.12/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    32/152

    Extensional equality

    A classical computation &

    '

    induces a function U

    by

    j

    //

    k

    l

    n

    o

    OO

    U

    //

    QUOXIC Feb 05 p.12/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    33/152

    Extensional equality

    A classical computation &

    '

    induces a function U

    by

    j

    //

    k

    l

    n

    o

    OO

    U

    //

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

    QUOXIC Feb 05 p.12/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    34/152

    Extensional equality . . .

    Theorem:

    U&

    '

    &

    U'

    &

    U

    '

    QUOXIC Feb 05 p.13/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    35/152

    Extensional equality . . .

    Theorem:

    U&

    '

    &

    U'

    &

    U

    '

    Theorem: Any function

    on finite

    sets can be realized by a computation.

    QUOXIC Feb 05 p.13/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    36/152

    Example :

    function

    &

    '

    &

    z

    '

    QUOXIC Feb 05 p.14/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    37/152

    Example :

    function

    &

    '

    &

    z

    '

    computation

    1

    {

    }

    QUOXIC Feb 05 p.14/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    38/152

    Example :

    function~

    &

    '

    ~

    &

    '

    QUOXIC Feb 05 p.15/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    39/152

    Example :

    function~

    &

    '

    ~

    &

    '

    computation

    1 '&%$!"#

    &

    ' &

    '

    &

    '

    &

    '

    &

    '

    &

    '

    QUOXIC Feb 05 p.15/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    40/152

    2. Finite quantum computation

    1. Finite classical computation

    2. Finite quantum computation

    3. QML basics

    4. Compiling QML5. Conclusions and further work

    QUOXIC Feb 05 p.16/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    41/152

    Pure quantum values

    QUOXIC Feb 05 p.17/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    42/152

    Pure quantum values

    A pure quantum value over a finite set is

    given by by a vector represented as

    with unit norm:% %

    % %

    %

    %

    QUOXIC Feb 05 p.17/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    43/152

    Qbits

    QUOXIC Feb 05 p.18/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    44/152

    Qbits

    Qbits are represented as

    which

    we write as&

    ' %

    &

    ' %

    QUOXIC Feb 05 p.18/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    45/152

    Qbits

    Qbits are represented as

    which

    we write as&

    ' %

    &

    ' %

    Exambles of Qbits

    %

    %

    %

    %

    %

    %

    QUOXIC Feb 05 p.18/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    46/152

    Tensor products

    QUOXIC Feb 05 p.19/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    47/152

    Tensor products

    Tensor product = product of bases:

    QUOXIC Feb 05 p.19/4

    T d

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    48/152

    Tensor products

    Tensor product = product of bases:

    E.g.

    QUOXIC Feb 05 p.19/4

    T d t

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    49/152

    Tensor products

    Tensor product = product of bases:

    E.g.

    Examples of :

    EPR

    %

    %

    &

    '

    %

    %

    %

    %

    QUOXIC Feb 05 p.19/4

    R ibl t ti

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    50/152

    Reversible quantum operations

    QUOXIC Feb 05 p.20/4

    R ibl t ti

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    51/152

    Reversible quantum operations

    Reversible operations on pure quantum

    values are represented by unitary operators.

    QUOXIC Feb 05 p.20/4

    R ibl t ti

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    52/152

    Reversible quantum operations

    Reversible operations on pure quantum

    values are represented by unitary operators.

    id

    QUOXIC Feb 05 p.20/4

    R sibl t ti s

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    53/152

    Reversible quantum operations

    Reversible operations on pure quantum

    values are represented by unitary operators.

    id

    E.g.

    &

    '

    &

    '

    &

    '

    &

    '

    &

    &

    ' '

    &

    &

    ' '

    &

    &

    ' '

    &

    &

    ' '

    where&

    '

    .QUOXIC Feb 05 p.20/4

    Reversible quantum operations

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    54/152

    Reversible quantum operations. . .

    Example :

    :

    QUOXIC Feb 05 p.21/4

    Reversible quantum operations

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    55/152

    Reversible quantum operations. . .

    Example :

    :

    %

    %

    &

    %

    %

    '

    %

    %

    &

    %

    %

    '

    QUOXIC Feb 05 p.21/4

    Reversible quantum operations

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    56/152

    Reversible quantum operations. . .

    Example :

    :

    %

    %

    &

    %

    %

    '

    %

    %

    &

    %

    %

    '

    On finite-dimensional spaces:

    Unitary = norm-preserving isomorphismQUOXIC Feb 05 p.21/4

    Quantum computations ( )

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    57/152

    Quantum computations ( )

    QUOXIC Feb 05 p.22/4

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    58/152

    Quantum computations ( )

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    59/152

    Quantum computations ( )Given finite sets (input) and (output):

    1 1

    a finite set , the base of the space of initialheaps,

    a heap initialisation vector

    ,a finite set , the base of the space ofgarbage states,

    a unitary operator

    unitary .QUOXIC Feb 05 p.22/4

    Composing quantum computations

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    60/152

    Composing quantum computations

    QUOXIC Feb 05 p.23/4

    Composing quantum computations

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    61/152

    Composing quantum computations

    1

    bbbb

    bbbb

    VVVV

    VVV

    1

    1

    1

    QUOXIC Feb 05 p.23/4

    Extensional equality?

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    62/152

    Extensional equality?

    QUOXIC Feb 05 p.24/4

    Extensional equality?

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    63/152

    Extensional equality?

    . . . is a bit more subtle.

    QUOXIC Feb 05 p.24/4

    Extensional equality?

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    64/152

    Extensional equality?

    . . . is a bit more subtle.

    There is no (sensible) operator on vectorspaces replacing

    .

    QUOXIC Feb 05 p.24/4

    Extensional equality?

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    65/152

    Extensional equality?

    . . . is a bit more subtle.

    There is no (sensible) operator on vectorspaces replacing

    .

    Indeed: Forgetting part of a pure state

    results in a mixed state.

    QUOXIC Feb 05 p.24/4

    Density matrizes

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    66/152

    Density matrizes

    QUOXIC Feb 05 p.25/4

    Density matrizes

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    67/152

    e s ty at es

    Mixed states can be represented by densitymatrizes

    .

    QUOXIC Feb 05 p.25/4

    Density matrizes

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    68/152

    y

    Mixed states can be represented by densitymatrizes

    .

    Eigenvalues represent probabilities

    System is in state

    with prob.

    QUOXIC Feb 05 p.25/4

    Density matrizes

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    69/152

    y

    Mixed states can be represented by densitymatrizes

    .

    Eigenvalues represent probabilities

    System is in state

    with prob.

    Eigenvalues have to be positive and their sum(the trace) is

    .

    QUOXIC Feb 05 p.25/4

    Example: forgetting a qbit

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    70/152

    p g g q

    QUOXIC Feb 05 p.26/4

    Example: forgetting a qbit

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    71/152

    p g g q

    EPR is represented by

    :

    P

    P

    P

    P

    QUOXIC Feb 05 p.26/4

    Example: forgetting a qbit

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    72/152

    p g g q

    EPR is represented by

    :

    P

    P

    P

    P

    &

    %

    %

    '

    %

    %

    QUOXIC Feb 05 p.26/4

    Example: forgetting a qbit . . .

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    73/152

    After measuring one qbit we obtain

    :

    P

    P

    QUOXIC Feb 05 p.27/4

    Example: forgetting a qbit . . .

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    74/152

    After measuring one qbit we obtain

    :

    P

    P

    %

    %

    %

    %

    QUOXIC Feb 05 p.27/4

    Superoperators

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    75/152

    QUOXIC Feb 05 p.28/4

    Superoperators

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    76/152

    Morphisms on density matrizes are calledsuperoperators, these are linear maps, whichare

    completely positive, and

    trace preserving

    QUOXIC Feb 05 p.28/4

    Superoperators

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    77/152

    Morphisms on density matrizes are calledsuperoperators, these are linear maps, whichare

    completely positive, and

    trace preservingEvery unitary operator gives rise to a

    superoperator

    .

    QUOXIC Feb 05 p.28/4

    Superoperators. . .

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    78/152

    There is an operator

    (

    )

    super

    called partial trace.

    QUOXIC Feb 05 p.29/4

    Superoperators. . .

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    79/152

    There is an operator

    (

    )

    super

    called partial trace.

    E.g.(

    )

    super

    isrepresented by a

    matrix.

    QUOXIC Feb 05 p.29/4

    Extensional equality

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    80/152

    QUOXIC Feb 05 p.30/4

    Extensional equality

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    81/152

    A quantum computation

    givesrise to a superoperator U

    super

    j

    //

    o

    OO

    U

    //

    QUOXIC Feb 05 p.30/4

    Extensional equality

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    82/152

    A quantum computation

    givesrise to a superoperator U

    super

    j

    //

    o

    OO

    U

    //

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

    QUOXIC Feb 05 p.30/4

    Extensional equality . . .

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    83/152

    Theorem:

    U

    &

    '

    &

    U

    '

    &

    U

    '

    QUOXIC Feb 05 p.31/4

    Extensional equality . . .

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    84/152

    Theorem:

    U

    &

    '

    &

    U

    '

    &

    U

    '

    Theorem (?): Every superoperator

    super (on finite dimensional Hilbertspaces) comes from a quantum computation.

    QUOXIC Feb 05 p.31/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    85/152

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    86/152

    classical (

    ) quantum (

    )

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    87/152

    classical (

    ) quantum (

    )

    finite sets

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    88/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spac

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    89/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spaccartesian product (

    )

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    90/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spaccartesian product (

    ) tensor product (

    )

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    91/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spaccartesian product (

    ) tensor product (

    )

    bijections

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    92/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spaccartesian product (

    ) tensor product (

    )

    bijections unitary operators

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    93/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spaccartesian product (

    ) tensor product (

    )

    bijections unitary operators

    functions

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    94/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spaccartesian product (

    ) tensor product (

    )

    bijections unitary operators

    functions superoperators

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    95/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spacecartesian product (

    ) tensor product (

    )

    bijections unitary operators

    functions superoperators

    injective functions (

    i

    )

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    96/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spacecartesian product (

    ) tensor product (

    )

    bijections unitary operators

    functions superoperators

    injective functions (

    i

    ) isometries (

    i

    )

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    97/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spacecartesian product (

    ) tensor product (

    )

    bijections unitary operators

    functions superoperators

    injective functions (

    i

    ) isometries (

    i

    )

    projections

    QUOXIC Feb 05 p.32/4

    Classical vs quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    98/152

    classical (

    ) quantum (

    )

    finite sets finite dimensional Hilbert spacecartesian product (

    ) tensor product (

    )

    bijections unitary operators

    functions superoperators

    injective functions (

    i

    ) isometries (

    i

    )

    projections partial trace

    QUOXIC Feb 05 p.32/4

    , classically

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    99/152

    ~

    QUOXIC Feb 05 p.33/4

    , classically

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    100/152

    ~

    1 '&%$!"# 1

    -

    {

    }

    QUOXIC Feb 05 p.33/4

    , classically

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    101/152

    ~

    1 '&%$!"# 1

    -

    {

    }

    QUOXIC Feb 05 p.33/4

    , quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    102/152

    1 '&%$!"# 1

    -

    {

    }

    QUOXIC Feb 05 p.34/4

    , quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    103/152

    1 '&%$!"# 1

    -

    {

    }

    input:

    %

    %

    2

    QUOXIC Feb 05 p.34/4

    , quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    104/152

    1 '&%$!"# 1

    -

    {

    }

    input:

    %

    %

    2

    output:

    %

    2

    %

    2

    QUOXIC Feb 05 p.34/4

    , quantum

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    105/152

    1 '&%$!"# 1

    -

    {

    }

    input:

    %

    %

    2

    output:

    %

    2

    %

    2

    Decoherence!

    QUOXIC Feb 05 p.34/4

    Control of decoherence

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    106/152

    QUOXIC Feb 05 p.35/4

    Control of decoherence

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    107/152

    QML is based on strict linear logic

    QUOXIC Feb 05 p.35/4

    Control of decoherence

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    108/152

    QML is based on strict linear logic

    Contraction is implicit and realized by

    .

    QUOXIC Feb 05 p.35/4

    Control of decoherence

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    109/152

    QML is based on strict linear logic

    Contraction is implicit and realized by

    .Weakening is explicit and leads todecoherence.

    QUOXIC Feb 05 p.35/4

    3. QML

    Fi i l i l i

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    110/152

    1. Finite classical computation

    2. Finite quantum computation3. QML

    4. Conclusions and further work

    QUOXIC Feb 05 p.36/4

    QML overview

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    111/152

    QUOXIC Feb 05 p.37/4

    QML overview

    T

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    112/152

    Types

    %

    %

    QUOXIC Feb 05 p.37/4

    QML overview

    T

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    113/152

    Types

    %

    %

    Terms

    %

    3

    %

    % & ' %&

    ' %

    3

    &

    z

    '

    %

    "

    %

    )

    %

    4

    "

    %

    ) z

    2

    %

    4

    "

    %

    ) z

    2

    % &

    '

    %&

    '

    2

    QUOXIC Feb 05 p.37/4

    Qbits

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    114/152

    (

    )1

    $

    "

    & '

    "

    #$

    )

    & '

    3

    4

    4

    "

    %

    )

    2

    3

    4

    4

    "

    %

    )

    2

    QUOXIC Feb 05 p.38/4

    QML overview . . .

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    115/152

    QUOXIC Feb 05 p.39/4

    QML overview . . .

    Typing judgements

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    116/152

    Typing judgements

    programs

    strict programs

    QUOXIC Feb 05 p.39/4

    QML overview . . .

    Typing judgements

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    117/152

    Typing judgements

    programs

    strict programs

    Semantics

    QUOXIC Feb 05 p.39/4

    The let-rule

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    118/152

    "

    $

    (

    QUOXIC Feb 05 p.40/4

    The let-rule

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    119/152

    "

    $

    (

    YYYY

    Y

    1

    1

    YYYYYY

    WWWWWW

    1

    1

    1

    QUOXIC Feb 05 p.40/4

    on contexts

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    120/152

    QUOXIC Feb 05 p.41/4

    on contexts

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    121/152

    &

    '

    &

    '

    if

    dom

    QUOXIC Feb 05 p.41/4

    on contexts

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    122/152

    &

    '

    &

    '

    if

    dom

    1

    QUOXIC Feb 05 p.41/4

    Another source of decoherence

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    123/152

    QUOXIC Feb 05 p.42/4

    Another source of decoherence

    mentions

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    124/152

    mentions

    (

    )1$

    3

    4

    (

    )1

    $

    QUOXIC Feb 05 p.42/4

    Another source of decoherence

    mentions

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    125/152

    e t o s

    (

    )1$

    3

    4

    (

    )1

    $

    but doesnt use it.

    QUOXIC Feb 05 p.42/4

    Another source of decoherence

    mentions

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    126/152

    (

    )1$

    3

    4

    (

    )1

    $

    but doesnt use it.

    Hence, it has to measure it!

    QUOXIC Feb 05 p.42/4

    -elim

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    127/152

    QUOXIC Feb 05 p.43/4

    -elim

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    128/152

    QUOXIC Feb 05 p.43/4

    -elim

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    129/152

    XXXX

    X

    !

    "

    $

    1 $

    %

    &

    '

    (

    0

    1

    2

    3

    1

    !

    %

    1

    hhhh

    hh51

    !

    6

    1

    zzzzzz

    5

    %

    1

    QUOXIC Feb 05 p.43/4

    -elim decoherence-free

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    130/152

    QUOXIC Feb 05 p.44/4

    -elim decoherence-free

    8

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    131/152

    9

    9

    @

    9

    8

    9

    QUOXIC Feb 05 p.44/4

    -elim decoherence-free

    8

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    132/152

    9

    9

    @

    9

    8

    9

    XXXX

    X

    A

    B

    !

    "

    $

    1 $

    C

    &

    '

    (

    E

    F

    0

    1

    0

    1

    !

    C

    1

    hhhh

    hh

    !

    A

    6

    B

    1

    zzzzzz5

    C

    1

    QUOXIC Feb 05 p.44/4

    I

    P

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    133/152

    QUOXIC Feb 05 p.45/4

    I

    P

    QRS T

    U

    V

    W

    Y

    Y

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    134/152

    QRS T

    U

    V

    a

    b

    cd

    e

    a

    f

    g

    hp

    q

    r

    su

    v h

    w

    x h

    q

    r

    su

    v

    QUOXIC Feb 05 p.45/4

    I

    P

    QRS T

    U

    V

    W

    Y

    Y

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    135/152

    QRS T

    U

    V

    a

    b

    cd

    e

    a

    f

    g

    hp

    q

    r

    su

    v h

    w

    x h

    q

    r

    su

    v

    This program has a type error, becausey

    y

    .

    QUOXIC Feb 05 p.45/4

    I

    P

    QRS T

    U

    V

    W

    Y

    Y

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    136/152

    QRS T

    U

    V

    a

    b

    cd

    e

    a

    f

    g

    hp

    q

    r

    su

    v h

    w

    x h

    q

    r

    su

    v

    This program has a type error, becausey

    y

    .

    Q

    U

    W

    Y

    Y

    Q

    U

    a

    b

    cd

    e

    a

    f

    g

    hp

    q

    v h

    w

    x h

    q

    r

    su

    v

    QUOXIC Feb 05 p.45/4

    I

    P

    QRS T

    U

    V

    W

    Y

    Y

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    137/152

    QRS T

    U

    V

    a

    b

    cd

    e

    a

    f

    g

    hp

    q

    r

    su

    v h

    w

    x h

    q

    r

    su

    v

    This program has a type error, becausey

    y

    .

    Q

    U

    W

    Y

    Y

    Q

    U

    a

    b

    cd

    e

    a

    f

    g

    hp

    q

    v h

    w

    x h

    q

    r

    su

    v

    This program typechecks, becausey

    y

    .

    QUOXIC Feb 05 p.45/4

    4. Conclusions

    1. Finite classical computation

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    138/152

    2. Finite quantum computation

    3. QML

    4. Conclusions and further work

    QUOXIC Feb 05 p.46/4

    Conclusions

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    139/152

    QUOXIC Feb 05 p.47/4

    Conclusions

    Our semantic ideas proved useful whendesigning a quantum programming language,analogous concepts are modelled by the

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    140/152

    a a ogous co cepts a e ode ed by t e

    same syntactic constructs.

    QUOXIC Feb 05 p.47/4

    Conclusions

    Our semantic ideas proved useful whendesigning a quantum programming language,analogous concepts are modelled by the

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    141/152

    g p y

    same syntactic constructs.Our analysis also highlights the differencesbetween classical and quantum

    programming.

    QUOXIC Feb 05 p.47/4

    Conclusions

    Our semantic ideas proved useful whendesigning a quantum programming language,analogous concepts are modelled by the

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    142/152

    g p y

    same syntactic constructs.Our analysis also highlights the differencesbetween classical and quantum

    programming.Quantum programming introduces theproblem of control of decoherence, which we

    address by making forgetting variablesexplicit and by having different if-then-elseconstructs.

    QUOXIC Feb 05 p.47/4

    Further work

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    143/152

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    144/152

    compositional by showing that it agrees with

    the denotational semantics.

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    145/152

    compositional by showing that it agrees with

    the denotational semantics.mostly done

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    146/152

    compositional by showing that it agrees with

    the denotational semantics.mostly done

    An algebra of quantum programs, which is

    complete wrt. the denotational semantics.

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    147/152

    compositional by showing that it agrees with

    the denotational semantics.mostly done

    An algebra of quantum programs, which is

    complete wrt. the denotational semantics.in progress

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    148/152

    compositional by showing that it agrees with

    the denotational semantics.mostly done

    An algebra of quantum programs, which is

    complete wrt. the denotational semantics.in progress

    Add higher order types.

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    149/152

    p y g g

    the denotational semantics.mostly done

    An algebra of quantum programs, which is

    complete wrt. the denotational semantics.in progress

    Add higher order types.sketchy

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    150/152

    p y g g

    the denotational semantics.mostly done

    An algebra of quantum programs, which is

    complete wrt. the denotational semantics.in progress

    Add higher order types.sketchy

    Indexed types and programs

    QUOXIC Feb 05 p.48/4

    Further work

    Show that the operational semantics iscompositional by showing that it agrees with

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    151/152

    p y g g

    the denotational semantics.mostly done

    An algebra of quantum programs, which is

    complete wrt. the denotational semantics.in progress

    Add higher order types.sketchy

    Indexed types and programs

    sketchy QUOXIC Feb 05 p.48/4

    Thank you for your attention.

    Draft papers, available from//www.cs.nott.ac.uk/txa/publ/

  • 8/3/2019 Thorsten Altenkirch- Designing a Quantum Programming Language

    152/152

    A functional quantum programming language

    with J.Grattage

    Structuring Quantum Effects: Superoperators as Arrowswith J.Vizzotto and A.Sabry

    A compiler for a functional quantum programming langua

    with J.GrattageQML: Quantum data and control with J.Grattage

    QUOXIC Feb 05 p.49/4