Simon's problem #
Simon's problem gives oracle access to a function on bit strings with an
unknown nonzero mask s: two inputs have the same oracle value exactly when
they are equal or differ by s [dW19, qcnotes.tex:1407, 1409-1410].
This module formalizes the problem at the standard post-sampling abstraction
boundary. A run of Simon's quantum circuit yields a vector y satisfying the
linear equation y ยท s = 0 over ๐ฝโ [dW19, qcnotes.tex:1459-1460]. Once
the collected equations cut the solution set
down to {0, s}, any nonzero candidate satisfying all of them is the hidden
mask [dW19, qcnotes.tex:1460].
Main results #
LeanPool.LeanQuantumAlg.Simon.Promiseโ explicit Simon promise for an oracle and hidden mask over bit vectorsFin n โ ZMod 2.LeanPool.LeanQuantumAlg.Simon.CompleteEquationsโ the collected๐ฝโ-linear equations have exactly the two expected solutions,0ands.LeanPool.LeanQuantumAlg.SimonsProblem.mainโ under the explicit promise and complete linear post-processing equations, every nonzero candidate satisfying the equations is the hidden nonzero mask.
The two-element field used for Simon bit strings.
Equations
Instances For
An n-bit vector, represented as a vector space over ๐ฝโ.
Equations
- QuantumAlg.Simon.BitVec n = (Fin n โ QuantumAlg.Simon.Fโ)
Instances For
A Simon oracle maps bit vectors to arbitrary classical values. The promise, not the codomain representation, carries the algorithmic content.
Equations
- QuantumAlg.Simon.Oracle n ฮฑ = (QuantumAlg.Simon.BitVec n โ ฮฑ)
Instances For
Two bit vectors are orthogonal when their ๐ฝโ dot product vanishes.
Equations
- QuantumAlg.Simon.Orthogonal x y = (QuantumAlg.Simon.dot x y = 0)
Instances For
The explicit Simon promise: s is nonzero, and oracle fibers are exactly
pairs of equal inputs or inputs separated by s.
Instances For
A sampled Simon equation says that the sampled vector is orthogonal to a candidate mask.
Equations
Instances For
A candidate mask satisfies every collected linear equation.
Equations
- QuantumAlg.Simon.SatisfiesEquations samples t = โ y โ samples, QuantumAlg.Simon.SatisfiesEquation y t
Instances For
The collected equations are complete when their common solution set is
exactly {0, s}. This is the linear-algebraic post-processing condition
implemented by Gaussian elimination over ๐ฝโ.
Equations
- QuantumAlg.Simon.CompleteEquations samples s = โ (t : QuantumAlg.Simon.BitVec n), QuantumAlg.Simon.SatisfiesEquations samples t โ t = 0 โจ t = s
Instances For
A nonzero candidate returned by the classical post-processing step.
Equations
- QuantumAlg.Simon.Candidate samples t = (t โ 0 โง QuantumAlg.Simon.SatisfiesEquations samples t)
Instances For
Trusted representative resource profile for the public Simon statement:
expected linear oracle samples, quadratic Hadamard gates, and cubic classical
linear algebra over ZMod 2.
Equations
Instances For
The zero vector satisfies every collected Simon equation.
Sums of solutions to the collected equations are again solutions; the
solution set is a linear subspace over ๐ฝโ.
Complete Simon equations identify the unknown nonzero string among nonzero candidates.
Simon correctness: assume an oracle satisfies Simon's promise with
hidden nonzero mask s. If the sampled ๐ฝโ-linear equations are complete
and classical post-processing returns a nonzero candidate satisfying all of
those equations, then that candidate is exactly the hidden nonzero mask.
Simon supporting theorem for the public statement at the current post-sampling boundary: complete sampled equations recover the unknown nonzero string, and the trusted public resource profile records the accepted expected costs.