Prove2Me
Navigate
DiscoverCollectionsFormalpediaGalaxyBlogsUsersMomentumMy Missions+
Prove2Me
Log in
← Formalpedia

The logarithmic image of the units is a lattice in the trace-zero hyperplane

Proved
DirichletUnitTheorem.logEmbedding_image_isLattice

by Lucas · Oct 9, 2026 · Mathlib 0df444a (Lean v4.33.1)

algebraic-number-theorynumber-theory

Let KKK be a number field and consider the map ℓ:OK×→Rr+1\ell:\mathcal O_K^\times\to\mathbb R^{r+1}ℓ:OK×​→Rr+1, indexed by the r+1=r1+r2r+1=r_1+r_2r+1=r1​+r2​ infinite places, given by

ℓ(u)=(Nwlog⁡∣u∣w)w.\ell(u) = \big(N_w\log\lvert u\rvert_w\big)_w.ℓ(u)=(Nw​log∣u∣w​)w​.

Its image lies in the hyperplane H={x:∑wxw=0}H=\{x : \sum_w x_w = 0\}H={x:∑w​xw​=0} and is a lattice there: it is a discrete subset of Rr+1\mathbb R^{r+1}Rr+1 and its R\mathbb RR-linear span is exactly HHH.

Formalization Note "Lattice in HHH" is encoded as: the image is discrete in the subspace topology and its real span equals HHH.

Preamble
import Mathlib
open NumberField
Formal statement
namespace DirichletUnitTheorem

theorem logEmbedding_image_isLattice (K : Type*) [Field K] [NumberField K] :
    DiscreteTopology (Set.range fun (u : (𝓞 K)ˣ) (w : InfinitePlace K) =>
        (w.mult : ℝ) * Real.log (w ((u : 𝓞 K) : K))) ∧
      (Submodule.span ℝ (Set.range fun (u : (𝓞 K)ˣ) (w : InfinitePlace K) =>
          (w.mult : ℝ) * Real.log (w ((u : 𝓞 K) : K))) : Set (InfinitePlace K → ℝ)) =
        {x | ∑ w, x w = 0} := by sorry

end DirichletUnitTheorem
Source
Wikipedia, "Dirichlet's unit theorem" (article supplied by the account owner as a PDF), section "The regulator", geometric interpretation ("has an image in the r-dimensional subspace ... consisting of all vectors whose entries have sum 0, and by Dirichlet's unit theorem the image is a lattice in this subspace").
Read-back

What the Lean code literally says, in plain math · Aristotle (Harmonic) — same agent as the drafter; non-blind

Non-blind read-back — not independent testimony. This read-back was written by the same agent (Aristotle, by Harmonic) that drafted this Lean statement, at the explicit request of the account owner. Its author knew the intended meaning while writing it, so it must not be mistaken for a blind audit by an independent reviewer. Please compare it against the Lean code itself.

Throughout, KKK is a number field (a field of characteristic zero that is finite-dimensional over Q\mathbb QQ), OK\mathcal O_KOK​ is its ring of integers and OK×\mathcal O_K^\timesOK×​ the unit group. r1r_1r1​ denotes the number of real infinite places of KKK and r2r_2r2​ the number of complex infinite places (each complex place corresponds to a pair of complex-conjugate embeddings K→CK\to\mathbb CK→C). For an infinite place www of KKK, ∣x∣w\lvert x\rvert_w∣x∣w​ denotes the absolute value ∣σ(x)∣\lvert\sigma(x)\rvert∣σ(x)∣ for an embedding σ\sigmaσ inducing www, and NwN_wNw​ is 111 if www is real and 222 if www is complex. log⁡\loglog is the real logarithm (Mathlib's convention gives log⁡0=0\log 0 = 0log0=0, but units have ∣u∣w>0\lvert u\rvert_w>0∣u∣w​>0). Let ℓ(u)\ell(u)ℓ(u) be the real vector indexed by the infinite places of KKK with www-coordinate Nwlog⁡∣u∣wN_w\log\lvert u\rvert_wNw​log∣u∣w​, for u∈OK×u\in\mathcal O_K^\timesu∈OK×​, and let Λ={ℓ(u):u∈OK×}⊆Rplaces\Lambda=\{\ell(u): u\in\mathcal O_K^\times\}\subseteq\mathbb R^{\text{places}}Λ={ℓ(u):u∈OK×​}⊆Rplaces. Statement. For every number field KKK, both hold:

  1. Λ\LambdaΛ, with the subspace topology from the product topology on Rplaces\mathbb R^{\text{places}}Rplaces, is discrete;
  2. the R\mathbb RR-linear span of Λ\LambdaΛ is exactly the set of vectors xxx with ∑wxw=0\sum_w x_w=0∑w​xw​=0.
Human review
  • Endorsed by Shuze Chen · Oct 10, 2026

    Confirmed by the moderator at approval.

  • Endorsed by Lucas · Oct 10, 2026

    Confirmed by the mission captain (proposal self-audit).

  • Endorsed by mikedeng1 · Nov 8, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paperProve2Me Team
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me