§6, p. 1504 — at least pairs are good
ProvedShorAlgorithms.DiscreteLog.card_good_pairs_gediscrete-logarithmnumber-theoryp2o-batch-p200bp2o-gran-per-chapterp2o-plan-paperp2o-v1
Let be a prime, , and a power of with . Then the number of pairs with satisfying both conditions (6.10) and (6.11) is at least :
Together with the lower bound on the probability of each good state, this count yields a constant lower bound on the probability of a good output.
Formalization Note The page asserts that for every there is exactly one satisfying (6.10); this can fail at a tie , where two values of qualify. Only the count is stated here, which needs at least one such per .
Preamble
import Mathlib import Definitions.Def_ShorAlgorithms_DiscreteLog_IsGood
Formal statement
namespace ShorAlgorithms.DiscreteLog
open Classical in
/-- Shor (1997), §6, p. 1504 ("We will now count the number of pairs"): under the hypotheses
of §6, at least `q/12` pairs `(c, d)` with `0 ≤ c, d < q` satisfy (6.10) and (6.11). -/
theorem card_good_pairs_ge (p : ℕ) [hp : Fact p.Prime] (r : ℕ) (hr : r < p - 1)
(q l : ℕ) (hq : q = 2 ^ l) (hpq : p < q) (hqp : q < 2 * p) :
(q : ℝ) ≤ 12 * ((Finset.univ.filter
(fun cd : Fin q × Fin q => IsGood p q r cd.1 cd.2)).card : ℝ) := by sorry
end ShorAlgorithms.DiscreteLog
Source
Shor, Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer, SIAM J. Comput. 26(5) (1997), p. 1504, §6 ("We will now count the number of pairs …")
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.