Discrete logarithm as a hidden subgroup problem: is a homomorphism with kernel the multiples of
ProvedShorWiki.discreteLog_hiddenSubgroupquantum-computingshor-algorithm
Let be a finite group of order generated by , let be an integer, and let . Define
Then
- is a group homomorphism: for all ;
- the kernel of consists exactly of the multiples of : if and only if for some .
Hence finding the hidden subgroup determines the discrete logarithm modulo .
Formalization Note Elements of are ZMod p with the cardinality of , and means raised to the least nonnegative representative of . The group is not assumed commutative; it is cyclic because generates it.
Preamble
import Mathlib import Definitions.Def_ShorWiki_Defs open Matrix Kronecker
Formal statement
namespace ShorWiki
theorem discreteLog_hiddenSubgroup {G : Type*} [Group G] [Fintype G] (g : G)
(hg : ∀ h : G, h ∈ Subgroup.zpowers g) (r : ℕ) :
(∀ a b a' b' : ZMod (Fintype.card G),
g ^ (a + a').val * ((g ^ r) ^ (b + b').val)⁻¹
= (g ^ a.val * ((g ^ r) ^ b.val)⁻¹) * (g ^ a'.val * ((g ^ r) ^ b'.val)⁻¹)) ∧
∀ a b : ZMod (Fintype.card G),
g ^ a.val * ((g ^ r) ^ b.val)⁻¹ = 1 ↔
∃ t : ZMod (Fintype.card G), a = t * (r : ZMod (Fintype.card G)) ∧ b = t := by sorry
end ShorWiki
Source
Wikipedia, "Shor's algorithm", revision oldid=1378862216, https://en.wikipedia.org/w/index.php?title=Shor%27s_algorithm&oldid=1378862216, section "Shor's algorithm for discrete logarithms" (PDF p. 7)
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.