OAI/Computability/QuantumFactoring/RetrospectiveCircuit.lean
19 declarations, 0 contain sorry, 0 declared as axioms
- def
OAI.ExactQuantumFactoring.stripPrimeNatline 18 - lemma
OAI.ExactQuantumFactoring.stripPrimeNat_unitline 21 - def
OAI.ExactQuantumFactoring.BitArithmetic.liftInputline 39 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.liftInput_evalline 42 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.liftInput_countline 45 - def
OAI.ExactQuantumFactoring.BitArithmetic.powOnline 48 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.powOn_valueline 51 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.powOn_countline 62 - def
OAI.ExactQuantumFactoring.BitArithmetic.stripOnline 69 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.stripOn_valueline 75 - def
OAI.ExactQuantumFactoring.BitArithmetic.stripStepBoundline 98 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.stripOn_countline 100 - def
OAI.ExactQuantumFactoring.BitArithmetic.stripUpdateline 114Source documentation
The original input stays read-only; the accumulator is updated once.
def stripUpdate {k w : ℕ} (a m q : BooleanNetwork k w) : BooleanNetwork (k+w) (k+w) := …Mentions: OAI.ExactQuantumFactoring.BooleanNetwork
- lemma
OAI.ExactQuantumFactoring.BitArithmetic.stripUpdate_valueline 118 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.stripUpdate_countline 135 - def
OAI.ExactQuantumFactoring.BitArithmetic.stripScanline 141 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.stripScan_countline 145 - lemma
OAI.ExactQuantumFactoring.BitArithmetic.stripScan_unitline 156 - theorem
OAI.ExactQuantumFactoring.BitArithmetic.stripScan_exactline 174Source documentation
Exact order from the completed data, by explicit polynomial-size Boolean networks of division and repeated modular squaring.
theorem stripScan_exact {k w m : ℕ} (hm : 2 ≤ m) (aN mN : BooleanNetwork k w) (u : (ZMod m)ˣ) (qs : List (BooleanNetwork k w)) (x : Basis k) (z : Basis w) (ha : ((bitsValue (aN.eval x)).toNat : ZMod m)=(u : ZMod m)) (hmN : (bitsValue (mN.eval x)).toNat=m) (hz : (bitsValue z).toNat=m.totient) (hp : ∀ q∈qs, ((bitsValue (q.eval x)).toNat).Prime) (hprod : (qs.map (fun q => (bitsValue (q.eval x)).toNat)).prod=m.totient) : ∃ z', (stripScan aN mN qs).eval (Fin.append x z)=Fin.append x z' ∧ (bitsValue z').toNat=orderOf u := by …Mentions: OAI.ExactQuantumFactoring.BooleanNetwork, OAI.ExactQuantumFactoring.Basis, OAI.ExactQuantumFactoring.bitsValue, OAI.ExactQuantumFactoring.BitArithmetic.stripScan