8 research outputs found
Fifty years of Hoare's Logic
We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin
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
A Deductive Verification Framework for Circuit-building Quantum Programs
While recent progress in quantum hardware open the door for significant
speedup in certain key areas, quantum algorithms are still hard to implement
right, and the validation of such quantum programs is a challenge. Early
attempts either suffer from the lack of automation or parametrized reasoning,
or target high-level abstract algorithm description languages far from the
current de facto consensus of circuit-building quantum programming languages.
As a consequence, no significant quantum algorithm implementation has been
currently verified in a scale-invariant manner. We propose Qbricks, the first
formal verification environment for circuit-building quantum programs,
featuring clear separation between code and proof, parametric specifications
and proofs, high degree of proof automation and allowing to encode quantum
programs in a natural way, i.e. close to textbook style. Qbricks builds on best
practice of formal verification for the classical case and tailor them to the
quantum case: we bring a new domain-specific circuit-building language for
quantum programs, namely Qbricks-DSL, together with a new logical specification
language Qbricks-Spec and a dedicated Hoare-style deductive verification rule
named Hybrid Quantum Hoare Logic. Especially, we introduce and intensively
build upon HOPS, a higher-order extension of the recent path-sum symbolic
representation, used for both specification and automation. To illustrate the
opportunity of Qbricks, we implement the first verified parametric
implementations of several famous and non-trivial quantum algorithms, including
the quantum part of Shor integer factoring (Order Finding - Shor-OF), quantum
phase estimation (QPE) - a basic building block of many quantum algorithms, and
Grover search. These breakthroughs were amply facilitated by the specification
and automated deduction principles introduced within Qbricks
Qafny: Quantum Program Verification Through Type-guided Classical Separation Logic
Formal verification has been proven instrumental to ensure that quantum
programs implement their specifications but often requires a significant
investment of time and labor. To address this challenge, we present Qafny, an
automated proof system designed for verifying quantum programs. At its core,
Qafny uses a type-guided quantum proof system that translates quantum
operations to classical array operations. By modeling these operations as proof
rules within a classical separation logic framework, Qafny automates much of
the traditionally tedious and time-consuming reasoning process. We prove the
soundness and completeness of our proof system and implement a prototype
compiler that transforms Qafny programs both into the Dafny programming
language and into executable quantum circuits. Using Qafny, we demonstrate how
to efficiently verify important quantum algorithms, including quantum-walk
algorithms, Grover's search algorithm, and Shor's factoring algorithm, with
significantly reduced human effort.Comment: Version
Programming Languages and Systems
This open access book constitutes the proceedings of the 30th European Symposium on Programming, ESOP 2021, which was held during March 27 until April 1, 2021, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg and changed to an online format due to the COVID-19 pandemic. The 24 papers included in this volume were carefully reviewed and selected from 79 submissions. They deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
Toward automatic verification of quantum programs
Programming is error-prone. It is even worse when programming a quantum computer or designing quantum communication protocols, because human intuition is much better adapted to the classical world than to the quantum world. How can we build automatic tools for verifying correctness of quantum programs?
A logic for verification of both partial correctness and total correctness of quantum programs was developed in our TOPLAS'2011 paper. The (relative) completeness of this logic was proved. Recently, a theorem prover for verification of quantum programs was built based on this logic [arXiv: 1601.03835]. To further develop automatic tools, we are working on techniques for invariant generation and synthesis of ranking functions for quantum programs.Non UBCUnreviewedAuthor affiliation: University of Technology SydneyFacult
Toward automatic verification of quantum programs.
This paper summarises the results obtained by the author and his
collaborators in a program logic approach to the verification of quantum
programs, including quantum Hoare logic, invariant generation and termination
analysis for quantum programs. It also introduces the notion of proof outline
and several auxiliary rules for more conveniently reasoning about quantum
programs. Some problems for future research are proposed at the end of the
paper