Proving Quantum Programs Correct

10/03/2020
by   Kesha Hietala, et al.
0

As quantum computing steadily progresses from theory to practice, programmers are faced with 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 Simon's algorithm, 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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/27/2020

Certified Quantum Computation in Isabelle/HOL

In this article we present an ongoing effort to formalise quantum algori...
research
04/12/2019

Verified Optimization in a Quantum Intermediate Representation

We present sqire, a low-level language for quantum computing and verific...
research
04/14/2022

A Formally Certified End-to-End Implementation of Shor's Factorization Algorithm

Quantum computing technology may soon deliver revolutionary improvements...
research
12/20/2020

Prove-It: A Proof Assistant for Organizing and Verifying General Mathematical Knowledge

We introduce Prove-It, a Python-based general-purpose interactive theore...
research
04/05/2023

Verifying Quantum Phase Estimation (QPE) using Prove-It

The general-purpose interactive theorem-proving assistant called Prove-I...
research
09/23/2022

QuantumSolver: A quantum tool-set for developers

This paper introduces a new opensource quantum tool-set called QuantumSo...
research
06/01/2022

A technical note for a Shor's algorithm by phase estimation

The objective of this paper concerns at first the motivation and the met...

Please sign up or login with your details

Forgot password? Click here to reset