Search papers, labs, and topics across Lattice.
This paper investigates the time-space complexity of checking multiple assertions in quantum programs, revealing that while reporting all outcomes necessitates linear complexity, detecting any failure or identifying the first failing assertion can be achieved with logarithmic complexity. The authors formalize the complexity landscape and demonstrate that checking strategies can effectively trade time for space, providing a nuanced understanding of resource allocation in quantum programming. A case study on Grover's algorithm validates their theoretical findings, showcasing practical implications for quantum developers.
Achieving logarithmic complexity for certain assertion checks in quantum programs could revolutionize how we approach debugging in quantum computing.
Runtime assertions are a promising mechanism for testing and debugging quantum programs. But unlike the classical world, checking a quantum program that contains multiple assertions often requires using additional space or running the program additional times. For example, on current quantum hardware where mid-circuit measurement is restricted or costly, an assertion's pass/fail outcome cannot be revealed immediately. Instead, it is routed into an ancilla qubit during execution and read out by a terminal measurement. For a program with $n$ assertions, a naive strategy uses $n$ ancillas to learn all $n$ outcomes, while an alternative uses one ancilla but repeats program execution over $n$ rounds, checking one assertion per round. Both satisfy $S \cdot T = O(n)$, where $S$ is the number of ancillas and $T$ the number of executions: a fundamental time-space trade-off. Can one do asymptotically better? We reveal that the answer depends sharply on the information to be learned. Reporting the outcomes of all assertions requires linear complexity, but two partial-information tasks of detecting whether any assertion fails, and of identifying the first failing assertion, require only logarithmic complexity -- an asymptotic improvement. Moreover, the checking strategies for these tasks can trade time for space in useful ways. In this work, we formalize the complexity of checking multiple assertions in a quantum program. Using this definition, we establish its landscape of asymptotic lower bounds and constructive upper bounds. We confirm via a case study on Grover's algorithm that the resource costs of constructed strategies match theoretical predictions, illustrating the practical design space for quantum programmers.