Towards Classical Software Verification using Quantum Computers
Sebastian Issel, Kilian Tscharke, Pascal Debus
TL;DR
The paper investigates accelerating formal verification of classical software using quantum computers by converting verification tasks into SAT, then into a QUBO, and solving with varied quantum approaches. It presents an end-to-end pipeline, including a SAT-to-QUBO mapping with a guaranteed gap, and a comparative study of VQA, Grover, and QSVT-based solvers, tested on real hardware and simulators. Hardware results show that while VQA/QAOA and RAO can be promising, hardware noise and encoding challenges currently limit practical gains, with Grover and QSVT facing even stiffer limitations. The work demonstrates feasibility and provides a roadmap for future improvements in encodings, error correction, and hardware-aware implementations to enable quantum-accelerated software verification. The approach offers a principled path to potentially faster verification of software properties, contingent on advances in quantum hardware and encoding techniques.
Abstract
We explore the possibility of accelerating the formal verification of classical programs with a quantum computer. A common source of security flaws stems from the existence of common programming errors like use after free, null-pointer dereference, or division by zero. To aid in the discovery of such errors, we try to verify that no such flaws exist. In our approach, for some code snippet and undesired behaviour, a SAT instance is generated, which is satisfiable precisely if the behavior is present in the code. It is in turn converted to an optimization problem, that is solved on a quantum computer. This approach holds the potential of an asymptotically polynomial speedup. Minimal examples of common errors, like out-of-bounds and overflows, but also synthetic instances with special properties, specific number of solutions, or structure, are tested with different solvers and tried on a quantum device. We use the near-standard Quantum Approximation Optimisation Algorithm, an application of the Grover algorithm, and the Quantum Singular Value Transformation to find the optimal solution, and with it a satisfying assignment.
