[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"cX66aEffzI":3},"# PrimeCert\n\nFormally verified primality certificates in Lean 4, using Mathlib.\n\nImplements [Pocklington's primality test](https://en.wikipedia.org/wiki/Pocklington_primality_test) and an improved cube-root variant, with custom metaprogramming to make certificates compact and kernel-checkable.\n\n## Usage\n\n```lean\nimport PrimeCert\n\n-- Small primes via classic Pocklington:\ntheorem prime_31 : Nat.Prime 31 := pock% [2, 3; (31, 3, 2 * 3)]\n\n-- Large primes via the combined framework:\ntheorem prime_60digit :\n    Nat.Prime 236684654874665389773181956283167565443541280517430278333971 := prime_cert%\n  [small {2; 3; 7; 11; 29; 31},\n   pock3 (73471, 3, 1, 7, 2 * 31),\n   pock3 (32560621, 2, 1, 7, 2 ^ 2 * 3 * 29),\n   pock3 (3586530508831189, 2, 1, 11, 2 ^ 2 * 73471),\n   pock3 (236684654874665389773181956283167565443541280517430278333971,\n     2, 1, 3, 2 * 32560621 * 3586530508831189)]\n```\n\n## Generating certificates\n\n`scripts/prime_cert.py` generates certificates automatically:\n\n```bash\n# Auto-factor N-1 (uses sympy via uv, or GNU factor, or built-in rho):\npython3 scripts/prime_cert.py 16290860017\n\n# Supply the factorisation of N-1 (for large primes, use alpertron.com.ar/ECM.HTM):\npython3 scripts/prime_cert.py 16290860017 '2^4 * 3 * 339392917'\n```\n",1780113388405]