Skip to content

Latest commit

 

History

44 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DANGER3

Data Challenge for the DANGER: Data, Numbers, and Geometry workshop at BIRS, April 6-10, 2026

For the purpose of this repository, a Pomerance triple is a triple of integers $(p,A,x_0)$ in which $p$ is a positive odd integer and $A$ and $x_0$ are nonegative integers bounded by $p$ with $A\ne \pm 2 \bmod p$, such that there exist integers $B$ and $y_0$ for which the $(x_0,y_0)$ is a rational point on the Montgomery curve $By^2 = x^3 + Ax^2 +X$ of order $2^k$, where $k$ is the least integer for which $2^k > q + 1 + 2\sqrt{q}$ with $q=\lfloor\sqrt{p}\rfloor$.

More precisely, this means that if one applies the doubling law for Montgomery curves $k-1$ times to the point projective point with coordinates $(x_0:1)$ working modulo the integer $p$, the resulting point will have $z$-coordinate coprime to $p$, but after the $k$th doubling the point will have $z$ coordinate congruent to zero modulo $p$.

This is a minor refinement of the definition used in Pomerance's paper. One can adapt Pomerance's result to show that Pomerance triples exist for all primes $p>3$.

This repository contains the following resources:

  • vpp.py is a Python program that efficiently verifies a candidate Pomerance triple.
  • lean_vpp.py is a Python program that generates lean code that verifies a Pomerance triple (which you can run on Lean 4 web).
  • pp10.txt contains all Pomerance triples $(p,A,x_0)$ with $p\le 2^{10}$.
  • pp12.txt.gz contains all Pomerance triples $(p,A,x_0)$ with $p\le 2^{12}$.
  • pp16A.txt.gz contains all distinct prefixes $(p,A)$ Pomerance triples with $p\le 2^{16}$.
  • pp20.txt containes one Pomerance triple $(p,A,x_0)$ for each prime $3<p<2^{20}$.
  • pp24.txt.gz contains one Pomerance triple $(p,A,x_0)$ for each prime $3<p<2^{24}$.
  • slides.pdf contains the slides from the presentation used to explain the Data Challenge.

Larger data sets are available at the following locations:

  • pp14.txt.gz: the 43,307,624 Pomerance triples with $p<2^{14}$ (646MB).
  • pp16.txt.gz: the 598,705,640 Pomerance triples with $p<2^{16}$ (9887MB).
  • pp28.txt.gz: one Pomerance triple for each of the 14,630,841 primes $3 < p < 2^{28}$ (386MB).
  • pp30.txt.gz: one Pomerance triple for each of the 54,400,026 primes $3 < p < 2^{30}$ (1512MB).
  • pp32.txt.gz: one Pomerance triple for each of the 203,280,219 primes $3 < p < 2^{32}$ (6061MB).

Examples of some larger Pomerance triples include

  • $(10^{12}+39,249665736657,326654630116)$
  • $(10^{13}+37,3975240388830,3363870254431)$
  • $(10^{14}+31,29435557274911,60189380554757)$
  • $(10^{15}+37,501253912199979,227109452032906)$
  • $(10^{16}+61,,7091819576975137,7486903304256253)$
  • $(10^{17}+3,38900982538808192,78529976024049678)$
  • $(10^{18}+3,650095865875375253,446015633473605308)$

April 9, 2026: In collaboration with Clause Opus 4.6, Fabian Ruehle found the Pomerance triple

  • $(10^{19}+51,238792350205097889,9647351248508855176)$

using a multi-threaded low level C implementation of an $\tilde O(\sqrt{p})$-time algorithm that found this triple after testing approximately $3.7\times 10^9$ candidates, which took about 400s. Congratulations to Claude and Fabian!

April 10, 2026: In collaboration with GPT 5.4 Pro, Vishnu Jejjala found the Pomerance triple

  • $(10^{20}+39, 80635707401894747894, 31614069099331127513)$

after testing approximately $1.2 \times 10^9$ candidates in 7 hours. Congratulations to GPT and Vishnu!

April 12, 2026: Claude Opus 4.6 and Fabien Ruehle have retaken the lead with the Pomerance triple

  • $(10^{21}+117, 51546435219887079991, 144666470127730980460)$

after testing approximately $5.3 \times 10^{10}$ candidates in 16 hours. The source code is available here.

May 31, 2026: In collaboration with GPT 5.5 Codex, Alexa McLain found the Pomerance triple

  • $(10^{22}+9, 9992566338662824267458, 3694769590833803032125)$

after testing approximately $5.9 \times 10^{10}$ candidates in 16 hours. The source code is available here.

June 2, 2026: Using GPT 5.5 Codex in goal mode, Alexa McLain found the Pomerance triple

  • $(10^{23}+117, 24163028207499560363686, 64911014007772963770218)$

after testing approximately $3.1 \times 10^{10}$ candidates. The observation that yielded a constant factor speedup is explained here.

June 11, 2026: Using Fable 5 in goal mode, Jane Shi found the Pomerance triple

  • $(10^{24}+7,38923582678463553756710, 843367907077058108520461)$

after testing approximately $1.8 \times 10^{10}$ candidates (in 6 hours on an Apple M3 laptop). The source code is available here.

June 19, 2026: In collaboration with GPT 5.5 Codex, Alexa McLain found the Pomerance triple

  • $(10^{25}+13, 5863342488035851054212447, 9636258147581954669181726)$

after testing approximately $2.0 \times 10^{11}$ candidates. The source code is available here.

June 21, 2026: Using GPT 5.5 Codex in goal mode, Alexa McLain found the Pomerance triple

  • $(10^{26}+67, 78462973492772865017160395, 27732450411057582323409556)$

after testing approximately $1.4 \times 10^{11}$ candidates in 45 minutes on an RTX 6000 GPU. The source code is available here.

August 28, 2026: In collaboration with various foundation models, Adam Khakhar found the Pomerance triple

  • $(10^{27}+103, 792266506864025595923438866, 484583117575631730716207764)$

after testing approximately $5.6 \times 10^{12}$ candidates in 52 minutes on 16 RTX 5090 GPUs. The source code is available here.

Can you find a Pomerance triple for $p=10^{28}+331$?

About

Data challenge for the DANGER workshop at BIRS, April 6-10, 2026

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages