Check the elliptic curve conditions that establish n prime once q is
known prime: a nonsingular short Weierstrass curve, a finite point (x,y),
verified divisions in q • (x,y) = O, and a sufficiently large q < n.
This function checks the local arithmetic; it does not itself prove q
prime. check additionally checks the nested certificate for q.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Verify a primality certificate, including every smaller prime it uses.
For an elliptic curve step, verify the curve equation, nonsingularity, the strict size bound on the auxiliary prime, and scalar multiplication to infinity using the supplied modular inverses. For a HexPrimality certificate, use its existing primality checker.
In HexECPPTheory, natPrime_of_check proves that a true result implies
Nat.Prime cert.subject.
Equations
- Hex.ECPP.check (Hex.ECPP.Cert.base cert) = Hex.Nat.checkPrime cert
- Hex.ECPP.check (Hex.ECPP.Cert.step n a b x_1 y discrInv inverses child) = (Hex.ECPP.check child && Hex.ECPP.checkStep n a b x_1 y discrInv inverses child.subject)
Instances For
Verify that cert is a valid primality certificate for the integer n.
Return false if it records a different integer, even when its own
certificate is valid. In HexECPPTheory, natPrime_of_checkAt turns a
true result into a theorem of Nat.Prime n.
Equations
- Hex.ECPP.checkAt n cert = (cert.subject == n && Hex.ECPP.check cert)
Instances For
A certificate ending with HexPrimality data is checked by its existing primality checker.
Checking an elliptic step checks its smaller prime's certificate and uses exactly that prime as the scalar in the point multiplication.