549 research outputs found
QbC: Quantum Correctness by Construction
Thanks to the rapid progress and growing complexity of quantum algorithms,
correctness of quantum programs has become a major concern. Pioneering research
over the past years has proposed various approaches to formally verify quantum
programs using proof systems such as quantum Hoare logic. All these prior
approaches are post-hoc: one first implements a complete program and only then
verifies its correctness. In this work, we propose Quantum Correctness by
Construction (QbC): an approach to constructing quantum programs from their
specification in a way that ensures correctness. We use pre- and postconditions
to specify program properties, and propose a set of refinement rules to
construct correct programs in a quantum while language. We validate QbC by
constructing quantum programs for two idiomatic problems, teleportation and
search, from their specification. We find that the approach naturally suggests
how to derive program details, highlighting key design choices along the way.
As such, we believe that QbC can play an important role in supporting the
design and taxonomization of quantum algorithms and software.Comment: 33 page
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
Reachability and Termination Analysis of Concurrent Quantum Programs
We introduce a Markov chain model of concurrent quantum programs. This model
is a quantum generalization of Hart, Sharir and Pnueli's probabilistic
concurrent programs. Some characterizations of the reachable space, uniformly
repeatedly reachable space and termination of a concurrent quantum program are
derived by the analysis of their mathematical structures. Based on these
characterizations, algorithms for computing the reachable space and uniformly
repeatedly reachable space and for deciding the termination are given.Comment: Accepted by Concur'12. Comments are welcom
Quantum Hoare logic with classical variables
Hoare logic provides a syntax-oriented method to reason about program
correctness, and has been proven effective in the verification of classical and
probabilistic programs. Existing proposals for quantum Hoare logic either lack
completeness or support only quantum variables, thus limiting their capability
in practical use.
In this paper, we propose a quantum Hoare logic for a simple while language
which involves both classical and quantum variables. Its soundness and relative
completeness are proven for both partial and total correctness of quantum
programs written in the language. Remarkably, with novel definitions of
classical-quantum states and corresponding assertions, the logic system is
quite simple and similar to the traditional Hoare logic for classical programs.
Furthermore, to simplify reasoning in real applications, auxiliary proof rules
are provided which support the introduction of disjunction and quantifiers in
the classical part of assertions, and of super-operator application and
superposition in the quantum part. Finally, a series of practical quantum
algorithms, in particular the whole algorithm of Shor's factorisation, are
formally verified to show the effectiveness of the logic
Formal Verification vs. Quantum Uncertainty
Quantum programming is hard: Quantum programs are necessarily probabilistic and impossible to examine without disrupting the execution of a program. In response to this challenge, we and a number of other researchers have written tools to verify quantum programs against their intended semantics. This is not enough. Verifying an idealized semantics against a real world quantum program doesn\u27t allow you to confidently predict the program\u27s output. In order to have verification that works, you need both an error semantics related to the hardware at hand (this is necessarily low level) and certified compilation to the that same hardware. Once we have these two things, we can talk about an approach to quantum programming where we start by writing and verifying programs at a high level, attempt to verify properties of the compiled code, and repeat as necessary
Proving Quantum Programs Correct
As quantum computing progresses steadily from theory into practice,
programmers will face a common problem: How can they be sure that their code
does what they intend it to do? This paper presents encouraging results in the
application of mechanized proof to the domain of quantum programming in the
context of the SQIR development. It verifies the correctness of a range of a
quantum algorithms including Grover's algorithm and quantum phase estimation, a
key component of Shor's algorithm. In doing so, it aims to highlight both the
successes and challenges of formal verification in the quantum context and
motivate the theorem proving community to target quantum computing as an
application domain.Comment: version 4 updated DOI (paper content is the same); version 3 (final
version) has updated formatting and improved writing; version 2 includes
updated acknowledgments and a new appendix with simple SQIR example program
- …