feat: roadmap for arithmetic heights and Siegel's lemma - #287
Open
rwst wants to merge 6 commits into
Open
Conversation
auto-merge was automatically disabled
August 27, 2026 07:36
Head branch was pushed to by a user without write access
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
TauCetiRoadmap/ArithmeticHeights/— a seven-layer roadmap for heights of algebraic numbers,polynomials, matrices and linear subspaces, with Siegel's lemma and its invariant refinement
Bombieri–Vaaler as the summit. The ultimate motivation is to have everything for a formalization
of the subspace theorems (a different roadmap).
The short version of the scope: Mathlib's
Mathlib/NumberTheory/Height/(M. Stoll) already has thefoundation, so this roadmap does not rebuild it. What is missing everywhere in Lean is the theory
that stands on it — the Arakelov normalization, the absolute height of a tuple, Northcott with
varying degree, Kronecker for the height, heights of polynomials and matrices, Schmidt's
Plücker-coordinate height of a subspace with its duality theorem, Minkowski's second theorem, and
both forms of Siegel's lemma over a number field.
Layers
ℤand over a number field; Bombieri–Vaaler; the auxiliary-polynomial formRelationship to Mathlib
This is the part most worth reviewing. Mathlib already has, and the roadmap consumes rather than
restates:
Height.AdmissibleAbsValuesand the wholemulHeight/logHeightAPI, the projectiveheight, the number-field instance and its local formula,
absMulHeight₁, theNorthcotttypeclassand the fixed-field Northcott property, Siegel's lemma over
ℤ, the Mahler measure, andDirichlet's unit theorem in full.
Two open Mathlib PRs cover named milestones. Per the README's never wait rule, both are built here
now under those PRs' own names and shapes, so adopting Mathlib's is a deletion plus an import:
invariance, Layer 0.3 (
mulHeight₁_pow_finrank,finrank_nsmul_logHeight₁,absMulHeight₁_eq).theorem, Layer 6.5.
Two Mathlib TODOs are discharged rather than duplicated:
Height/Northcott.leanasks for theprojectivization instances (Layer 1.1), and
Height/Basic.leanasks forAdmissibleAbsValuesonfinite extensions, for which Layer 0.3 supplies the arithmetic.
Boundaries
Canonical and naïve heights on elliptic curves stay in
EllipticCurves(its Layer 6); effectivediscriminant, class-number and regulator bounds stay in the completed
EffectiveBounds, whoseTauCeti/NumberTheory/GeometryOfNumbers/library Layer 4 extends; function-field heights stay inAlgebraicCurves, and Layers 0–3 are stated atAdmissibleAbsValuesgenerality wherever the proofallows so that the function-field instance costs nothing here. Dirichlet's unit theorem itself is
Mathlib's and Layer 6 consumes it.
Two things to look at closely
The Layer 4 route. Bombieri–Gubler prove Siegel's lemma through the adelic Minkowski second
theorem; this roadmap pins the real route (restriction of scalars to a
ZLatticeinℝ^{dN})instead, to stay on the substrate Mathlib and
EffectiveBoundsalready provide. Bombieri–Vaaler§I.3 explains why they went adelic, and the roadmap records the residual cost explicitly: 4.1–4.3
and all one-vector statements are safe on the real route, while the basis statements (5.2
Theorem 2 and 5.3) rest on extracting
K-independent vectors fromℝ-independent ones, which isthe step the adelic argument was doing. That is written up as a named gap the work must close, not
papered over. If reviewers prefer adelic for 5.3 alone, that is a one-paragraph change.
The two normalizations. Mathlib's height uses the sup norm at every place; the Siegel-lemma
literature states its constants for the Arakelov height (ℓ² at archimedean places). Both live in the
roadmap, related by a named comparison lemma (0.2), and every bound says which one it is in. Getting
this wrong silently is the main way this material goes bad.
Conventions
The
Pinned conventionstable fixes the ones an implementor would otherwise guess: multiplicativeprimary with the logarithmic defined as its log; relative vs absolute distinguished by an
absprefix;
⨆ i, v (x i)written out rather than wrapped in a predicate; Plücker coordinates indexed bySet.powersetCard ι kto matchModule.Basis.exteriorPower; the height of a matrix (entries) keptnotationally distinct from the height of its row space (minors), which the classical literature
writes with one symbol; duality via
Submodule.dualAnnihilator; andSfor S-units as finite placesonly, matching Mathlib and #40791 — with a warning that Bombieri–Gubler takes the opposite convention
and states the rank as
|S| − 1.Sources
Keyed throughout to numbered results, primarily Bombieri–Gubler Heights in Diophantine Geometry
(§1.5–1.6, §2.8–2.9), with the two originals — Bombieri–Vaaler, Invent. Math. 73 (1983) and
Schmidt, Ann. of Math. 85 (1967) — checked directly, plus Hindry–Silverman (the reference
Mathlib's own
SiegelsLemma.leancites) and Cassels for Layer 4.Mechanics
TauCetiRoadmap/ArithmeticHeights/. The README roadmap list, the two issue-templatedropdowns and
TauCetiRoadmap.leanare left to the sync bot, per CONTRIBUTING.Suggested.leanpins 52 target signatures, allsorry.lake buildpasses.awaiting-review.AI assistance
Drafted with Claude Opus 5 (Claude Code), including the survey of the current Mathlib height
tree and the open PRs. I have read the whole thing carefully and take responsibility for it.
Update
Revises
TauCetiRoadmap/ArithmeticHeights/, Layer 4. The previous version pinned the real(adele-free) route to Bombieri–Vaaler but carried a ⚠ box naming one open gap — extracting
K-independent basis vectors from theℝ-independent output of Minkowski's second theorem — andallowed an adelic fallback for 5.3 if the gap would not close. This PR closes the gap as a new
milestone (4.4, the extraction lemma), names a second ingredient the route sentences had
silently assumed (4.5, Vaaler's cube-slicing theorem), and pins the covolume constant of 4.3
precisely. The result: the roadmap now asserts Bombieri–Vaaler at the exact constants on the real
route, end to end, with no adelic fallback anywhere.
What changed
content absorbed into 4.4. The Route paragraph now states the exact-cancellation acceptance
check and is honest about provenance (see Sources below).
NumberField.mixedEmbeddingin place of
canonicalEmbedding, a proof route (ℚfirst, then a pseudo-basis), and a newworked example over
ℚ(i)that detects the two errors that are invisible overℚ.explicitly and cites Aliev–Henk §6 as the reference to hold it against; 5.3's route goes through
4.4/4.5 (the old route's appeal to 3.7 for the per-vector heights was not how the proof runs) and
records why the constant has the shape it has.
that 5.2 needs neither Layer 3 nor 4 (contradicting 5.2's own route sentence).
Roy–Thunder 1995 added; the Bombieri–Gubler entry now points at Appendix C.2/C.3 specifically.
Suggested.lean: three new pinned signatures (the two halves of 4.4, and 4.5), the Layer 4header updated, and the Theorem-2 docstring's stale pointer to the deleted ⚠ box fixed.
The gap, closed (4.4)
The extraction is elementary, and losing nothing was the point of the old ⚠ box's worry:
u 1, …, u i ∈ K^Nhaveℝ-independent images under the mixed embedding, theirK-span hasdimension at least
i/d: the embedding isℚ-linear, and aK-space of dimensionmis aℚ-space of dimensiond·m.K-basis from among the minima vectors, thej-th chosenfrom the first
d(j−1)+1— members of the family, never combinations, so each keeps the normbound it arrived with.
λ_{d(j−1)+1}^d ≤ ∏_{r=1}^{d} λ_{d(j−1)+r}: the product ofthe selected heights is bounded by the full product Minkowski's second theorem controls. No loss.
This replaces exactly the step Bombieri–Vaaler §I.3 went adelic for (triangularizing a sublattice
needs
𝓞_Kto be a PID). To de-risk the milestone before pinning it, both halves have beenmachine-checked in Lean against current Mathlib, sorry-free, at the arbitrary-tower generality the
milestone states; the
Suggested.leansignatures are the checked statements verbatim.The unnamed dependency, named (4.5)
The sharp constants of 5.2 and 5.3 need
vol_k (V ∩ [−1,1]^N) ≥ 2^k— Vaaler's cube-slicingtheorem. This is a cost of the theorem, not of the route: Bombieri–Vaaler's own proof quotes it
for the archimedean local volumes, and Bombieri–Gubler carry it as Appendix C.3. The old route
sentences never named it, and it is the hardest single analytic ingredient in the roadmap, so it is
now a milestone, claimable on its own. The milestone also records the reduction that keeps the real
statement the only slicing statement needed: at a complex place the unit polydisc contains the cube
of half-side
1/√2, and slicing that inscribed cube gives(2/√2)^{2k} = 2^k— exactly what theconstant requires, so no polydisc analogue is asked for.
The constant, pinned (4.3)
The old 4.3 said the covolume is
|discr K|^{k/2}times "the subspace height" — off by2^{−r₂ k}against Mathlib's measure normalization, and silent on sup-vs-Arakelov andrelative-vs-absolute. It now reads
pinned to
volume_fundamentalDomain_latticeBasis. The Route paragraph records the acceptanceidentity: the
2^{dk}of 4.2, the2^{−r₂ k}of 4.3 and the2^{(r₁+r₂) k}of 4.5's slicebounds cancel exactly, which is how 5.3's bound comes out with no spare factor — a proof that
produces a stray power of
2or of the degree has a normalization wrong upstream.Sources
The revision rests on a literature pass over the non-adelic Siegel literature. What it found, now
cited in the roadmap: the adele-free assembly over
ℚis written out in Aliev–Henk §6 (Theorems6.2–6.3); the covolume closed form is classical (Fukshansky 2006, attributed there to Thunder);
some power of the discriminant must appear in 5.3's bound (Roy–Thunder 1995), so the constant's
shape is intrinsic; and the best-possible constant is a generalized Hermite constant (Vaaler 2003),
which the references record explicitly as not the target. What it did not find is a published
end-to-end restriction-of-scalars proof at the exact constant — authors who build the
ℝ^{dN}lattice still switch to adelic bodies for the geometry — so the Route paragraph now says plainly
that the assembly, with 4.4 in place of the adelic triangularization, is this roadmap's own, and
that the milestones, not any single reference, are the specification.
Mechanics
TauCetiRoadmap/ArithmeticHeights/(README.md,Suggested.lean). No layer addedor removed; no target dropped.
Suggested.leannow pins 55 target signatures (was 52), allsorry.lake buildpasses.awaiting-review.AI assistance
This revision was drafted with Claude Fable 5 (Claude Code), including the literature pass and
the machine-checked extraction lemma. I have read the whole thing carefully and take
responsibility for it.
Reviewers: the two places worth a careful eye are the extraction argument in 4.4 (one
paragraph of linear algebra; the roadmap's exact-constant claim for the real route stands on it)
and the constant bookkeeping in 4.3/Route (the
ℚ(i)worked example is the intended check). Asubject-area reader on geometry of numbers would also be welcome on whether 4.5 should ask for
anything beyond the real cube statement; we deliberately did not, per the inscribed-cube reduction.