Foundations of Quantum Programming

Quantum computers promise dramatic advantages in processing speed over currently available computer systems. Quantum computing offers great promise in a wide variety of computing and scientific research, including Quantum cryptography, machine learning, computational biology, renewable energy, compu...

Descripción completa

Detalles Bibliográficos
Autor principal: Ying, Mingsheng (-)
Formato: Libro electrónico
Idioma:Inglés
Publicado: San Diego : Elsevier Science & Technology 2024.
Edición:2nd ed
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009816677206719
Tabla de Contenidos:
  • Front Cover
  • Foundations of Quantum Programming
  • Copyright
  • Contents
  • Biography
  • Prof. Mingsheng Ying (1964-)
  • Preface to the second edition
  • Preface to the first edition
  • Acknowledgements
  • 1 Introduction
  • 1.1 From classical programming to quantum programming - "Everything old is new again!"
  • 1.1.1 Quantum programming languages and compilers
  • 1.1.2 Semantics and type systems of quantum programs
  • 1.1.3 Verification and analysis of quantum programs
  • 1.2 Approaches to quantum programming
  • 1.2.1 Classical parallel programming
  • 1.2.2 Superposition-of-data versus superposition-of-programs
  • 1.2.3 Classical and quantum parallelisms working together
  • 1.3 Structure of the book
  • Reading the book
  • Teaching from the book
  • I Preliminaries
  • 2 Quantum mechanics
  • 2.1 Hilbert spaces
  • 2.2 Linear operators
  • 2.2.1 Unitary transformations
  • 2.3 Quantum measurements
  • 2.3.1 Observables and projective measurements
  • 2.3.2 Noncommutativity and uncertainty principle
  • 2.4 Tensor products of Hilbert spaces
  • 2.4.1 Nocloning of quantum data
  • 2.5 Density operators
  • 2.6 Quantum operations
  • 2.7 Bibliographic remarks and further readings
  • 3 Models of quantum computation
  • 3.1 Quantum circuits
  • 3.1.1 Basic definitions
  • 3.1.2 One-qubit gates
  • 3.1.3 Controlled gates
  • 3.1.4 Quantum multiplexor
  • 3.1.5 Universality of gates
  • 3.1.6 Measurements in circuits
  • 3.2 Quantum Turing machines
  • 3.3 Quantum random access stored-program machines
  • 3.4 Bibliographic remarks and further readings
  • 4 Quantum algorithms and communication protocols
  • 4.1 Quantum parallelism and interference
  • 4.2 Quantum algorithms based on Hadamard transforms
  • 4.2.1 Deutsch-Jozsa algorithm
  • 4.2.2 Bernstein-Vazirani algorithm
  • 4.2.3 Simon algorithm
  • 4.3 Quantum Fourier transform
  • 4.3.1 Phase estimation.
  • 4.4 Grover search algorithm
  • 4.5 Quantum walks
  • 4.5.1 Quantum-walk search algorithm
  • 4.6 Basic quantum communication protocols
  • 4.6.1 Quantum teleportation
  • 4.6.2 Superdense coding
  • 4.7 Bibliographic remarks and further readings
  • II Sequential quantum programs
  • 5 Quantum while-programs
  • 5.1 Syntax
  • 5.2 Operational semantics
  • 5.3 Denotational semantics
  • 5.3.1 Basic properties
  • 5.3.2 Quantum domains
  • 5.3.3 Semantic functions of loops
  • 5.3.4 Change and access of quantum variables
  • 5.3.5 Termination and divergence
  • 5.3.6 Semantic functions as quantum operations
  • 5.4 Illustrative example: Grover search
  • 5.5 Classical recursion in quantum programming
  • 5.5.1 Syntax
  • 5.5.2 Operational semantics
  • 5.5.3 Denotational semantics
  • 5.5.4 Fixed point characterisation
  • 5.6 Adding classical variables
  • 5.7 Bibliographic remarks and further readings
  • 6 Quantum Hoare logic
  • 6.1 Quantum predicates
  • 6.1.1 Quantum weakest preconditions
  • 6.1.2 Commutativity of quantum predicates
  • 6.2 Correctness formulas of quantum programs
  • 6.3 Weakest preconditions of quantum programs
  • 6.4 Proof system for partial correctness
  • 6.5 Proof system for total correctness
  • 6.6 An illustrative example: verification of Grover search
  • 6.7 Auxiliary inference rules
  • 6.8 Bibliographic remarks and further readings
  • III Verification and analysis
  • 7 Verification of quantum programs
  • 7.1 Architecture of a quantum program verifier
  • 7.1.1 Generating verification conditions
  • 7.1.2 Proving verification conditions
  • 7.1.3 Validity of the verifier
  • 7.2 Localisation of correctness reasoning
  • 7.3 Birkhoff-von Neumann quantum logic
  • 7.3.1 Orthomodular lattice of closed subspaces
  • 7.3.2 Propositional quantum logic
  • 7.3.3 First-order quantum logic
  • 7.3.4 Effect algebra and unsharp quantum logic.
  • 7.4 Quantum logic with quantum variables
  • 7.4.1 Syntax
  • 7.4.2 Semantics
  • 7.4.3 Proof system
  • 7.5 Quantum logic as an assertion logic
  • 7.5.1 Reformulating syntax and semantics of quantum programs
  • 7.5.2 Quantum Hoare logic combined with quantum logic
  • 7.5.3 Adaptation rules for quantum programs
  • 7.6 An effect calculus as assertion logic
  • 7.6.1 A calculus of quantum effects
  • 7.6.2 Quantum Hoare logic combined with effect calculus
  • 7.7 Discussion
  • 7.8 Bibliographic remarks and further readings
  • 8 Analysis of quantum programs
  • 8.1 Control flows of quantum programs
  • 8.1.1 Superoperator-valued transition systems
  • 8.1.2 Quantum programs as transition systems
  • 8.2 Invariants and their generation
  • 8.2.1 Basic definitions
  • 8.2.2 Partial correctness
  • 8.2.3 Inductive assertion maps
  • 8.2.4 Generation of inductive invariants
  • 8.2.5 An illustrative example
  • 8.3 Termination analysis - ranking functions
  • 8.3.1 Termination problems
  • 8.3.2 Ranking functions and termination theorems
  • 8.3.3 Realisability and synthesis of ranking functions
  • 8.4 Termination analysis - reachability
  • 8.4.1 Termination of quantum while-loops
  • 8.4.2 Quantum graph theory
  • 8.4.3 Decomposition of the state Hilbert space
  • 8.4.4 Reachability analysis of quantum Markov chains
  • 8.5 Quantum abstract interpretation
  • 8.5.1 Basics of abstract interpretation
  • 8.5.2 Restriction and extension of projections
  • 8.5.3 Abstraction of quantum states
  • 8.5.4 Abstraction of quantum operations
  • 8.6 Bibliographic remarks and further readings
  • IV Parallel and distributed quantum programs
  • 9 Parallel quantum programs
  • 9.1 Syntax of disjoint parallel quantum programs
  • 9.2 Semantics of disjoint parallel quantum programs
  • 9.2.1 Operational semantics
  • 9.2.2 Denotational semantics
  • 9.3 Proof system for disjoint parallel quantum programs.
  • 9.3.1 Sequentialisation rule
  • 9.3.2 Tensor product of quantum predicates
  • 9.3.3 Separable quantum predicates
  • 9.3.4 Entangled quantum predicates
  • 9.3.5 Auxiliary variables
  • 9.3.6 Transferring separable predicates to entangled
  • 9.3.7 Completeness of the auxiliary variables method
  • 9.3.8 Completeness of the entanglement transformation method
  • 9.4 Syntax of parallel quantum programs with shared variables
  • 9.5 Semantics of parallel quantum programs with shared variables
  • 9.6 Reasoning about parallel quantum programs with shared variables
  • 9.6.1 A rule for component quantum programs
  • 9.6.2 Proof outlines
  • 9.6.3 Interference freedom
  • 9.6.4 A rule for parallel composition of quantum programs with shared variables
  • 9.7 Discussions
  • 9.8 Bibliographic remarks and further readings
  • 10 Distributed quantum programs
  • 10.1 Quantum process algebra qCCS
  • 10.1.1 Syntax
  • 10.1.2 Operational semantics
  • 10.1.3 Examples
  • 10.1.4 Properties of transitions
  • 10.2 Bisimulations between quantum processes
  • 10.2.1 Basic definitions
  • 10.2.2 Algebraic laws
  • 10.2.3 Congruence
  • 10.2.4 Recursion
  • 10.2.5 Strong reduction-bisimilarity
  • 10.2.6 Weak bisimulations
  • 10.3 Approximate bisimulations between quantum processes
  • 10.4 Adding classical variables
  • 10.4.1 Syntax
  • 10.4.2 Operational semantics
  • 10.4.3 Examples
  • 10.4.4 Bisimulations
  • 10.5 Bibliographic remarks and further readings
  • V Quantum control flows
  • 11 Quantum case statements
  • 11.1 Case statements: from classical to quantum
  • 11.2 QuGCL: a language with quantum case statements
  • 11.3 Guarded compositions of quantum operations
  • 11.3.1 Guarded composition of unitary operators
  • 11.3.2 Operator-valued functions
  • 11.3.3 Guarded composition of operator-valued functions
  • 11.3.4 Guarded composition of quantum operations.
  • 11.4 Semantics of QuGCL programs
  • 11.4.1 Classical states
  • 11.4.2 Semi-classical semantics
  • 11.4.3 Purely quantum semantics
  • 11.4.4 Weakest precondition semantics
  • 11.4.5 An example
  • 11.5 Quantum choice
  • 11.5.1 Choices: from classical to quantum via probabilistic
  • 11.5.2 Quantum implementation of probabilistic choice
  • 11.6 Algebraic laws
  • 11.7 A new paradigm of quantum programming - superposition-of-programs
  • 11.8 Illustrative examples
  • 11.8.1 Quantum walks
  • 11.8.2 Quantum phase estimation
  • 11.8.3 Linear combination of unitary operators
  • 11.9 Discussions
  • 11.9.1 Coefficients in guarded compositions
  • 11.9.2 Quantum case statements guarded by subspaces
  • 11.10 Bibliographic remarks and further readings
  • 12 Quantum recursion
  • 12.1 Syntax of quantum recursive programs
  • 12.2 Motivating examples: recursive quantum walks
  • 12.2.1 Specification of recursive quantum walks
  • 12.2.2 How to solve recursive quantum equations?
  • 12.3 Second quantisation
  • 12.3.1 Multiple-particle states
  • 12.3.2 Fock spaces
  • 12.3.3 Observables in Fock spaces
  • 12.3.4 Evolution in Fock spaces
  • 12.3.5 Creation and annihilation of particles
  • 12.4 Solving recursive equations in the free Fock space
  • 12.4.1 A domain of operators on the free Fock space
  • 12.4.2 Semantic functionals of program schemes
  • 12.4.3 Fixed point semantics
  • 12.4.4 Syntactic approximation
  • 12.5 Recovering symmetry and antisymmetry
  • 12.5.1 Symmetrisation functional
  • 12.5.2 Symmetrisation of semantics of quantum recursion
  • 12.6 Principal system semantics of quantum recursion
  • 12.7 Illustrative examples: revisit recursive quantum walks
  • 12.8 Quantum while-loops (with quantum control)
  • 12.9 Bibliographic remarks and further readings
  • VI Prospects
  • 13 Prospects
  • 13.1 Quantum machines and quantum programs.
  • 13.2 Implementation of quantum programming languages.