Skip to content

Added Euler-factor certificate generator - #82

Open
JaneShi99 wants to merge 1 commit into
CBirkbeck:mainfrom
JaneShi99:euler-factors
Open

JaneShi99 wants to merge 1 commit into
CBirkbeck:mainfrom
JaneShi99:euler-factors

Conversation

@JaneShi99

@JaneShi99 JaneShi99 commented Sep 19, 2026

Copy link
Copy Markdown

Add Euler-factor certificate generator with Kraus-criterion minimality checks

  • gen_pc_loop.py takes an arbitrary elliptic curve over ℤ, computes its primes of good (p < 30), multiplicative, and additive reductions, and renders a Lean file certifying the Euler factor for each case.
  • Minimality at p = 2, 3 is decided via Kraus' criterion (KrausAt) rather than valuations alone: v_p(c₄) ≥ 4, v_p(c₆) ≥ 6, v_p(Δ) ≥ 12 isn't enough to conclude non-minimality at these primes, and without checking the descended pair (c₄/p⁴, c₆/p⁶) against Kraus' criterion the certificate mis-fires on genuinely minimal models (e.g. 112.c5).
  • Also proves the two ways of counting E(𝔽ₚ) (pointwise (x, y) count vs. summing Legendre symbols) agree, by completing the squares.

Compiles against Lean v4.34.0 with mathlib and cslib on live.lean-lang.

Collaborators: Zachary Feng, Håvard Damm-Johnsen (the work started during the LMFDB-Lean workshop at UEA in June 2026.)

…y checks

Adds gen_pc_loop.py, which uses Sage to compute a_p and reduction type for
elliptic curves over ℤ and renders a Lean file that recomputes each local
Euler factor from a point count over 𝔽ₚ and checks it against the LMFDB
value by `decide`. The generated MinimalAt predicate applies Kraus'
criterion (KrausAt) at p = 2, 3 rather than testing valuations alone: at
these primes v_p(c₄) ≥ 4, v_p(c₆) ≥ 6, v_p(Δ) ≥ 12 is not sufficient to
conclude non-minimality, and without the extra check on the descended pair
(c₄/p⁴, c₆/p⁶) the certificate mis-fires on genuinely minimal models (e.g.
112.c5, minimal with v₂(Δ) = 14, v₂(c₄) = 4, v₂(c₆) = 6); Kraus' criterion
is what makes MinimalAt correct at the two primes where naive valuation
bounds are unconditionally reliable for p ≥ 5 but not below it. Includes
five generated certificates under generated/ for the curves in CURVES.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant