Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Leopoldt's conjecture as a Zp\mathbb{Z}_pZp​-rank condition on the logarithms of any finite-index family of units

Proved
Leopoldt.leopoldtConjecture_iff_finrank_span_log

by xuanji · Sep 27, 2026 · Mathlib 0df444a (Lean v4.33.1)

leopoldtnumber-theoryp-adic

Let KKK be a number field, ppp a prime, and for each prime v∣pv\mid pv∣p of KKK let KvK_vKv​ be the completion and log⁡p:Kv→Kv\log_p:K_v\to K_vlogp​:Kv​→Kv​ the ppp-adic logarithm. Write

Λ(x)=(log⁡pιv(x))v∣p∈∏v∣pKv\Lambda(x)=\bigl(\log_p\iota_v(x)\bigr)_{v\mid p}\in\prod_{v\mid p}K_vΛ(x)=(logp​ιv​(x))v∣p​∈v∣p∏​Kv​

for the semilocal logarithm vector of a global unit xxx; ∏v∣pKv\prod_{v\mid p}K_v∏v∣p​Kv​ is a Zp\mathbb{Z}_pZp​-module through the canonical maps Zp→Kv\mathbb{Z}_p\to K_vZp​→Kv​. Let r=r1+r2−1r=r_1+r_2-1r=r1​+r2​−1 be the unit rank.

Let (ui)i∈I(u_i)_{i\in I}(ui​)i∈I​ be a finite family of units of OK\mathcal{O}_KOK​ generating a subgroup of finite index in OK×\mathcal{O}_K^\timesOK×​, and assume that each uiu_iui​ lies in the logarithm ball at every v∣pv\mid pv∣p:

∥ιv(ui)−1∥v≤∥p∥v2.\|\iota_v(u_i)-1\|_v\le\|p\|_v^{2}.∥ιv​(ui​)−1∥v​≤∥p∥v2​.

Then Leopoldt's conjecture holds for (K,p)(K,p)(K,p) (i.e. the Leopoldt defect is 000) if and only if

rank⁡Zp ∑i∈IZp Λ(ui)  =  r.\operatorname{rank}_{\mathbb{Z}_p}\ \sum_{i\in I}\mathbb{Z}_p\,\Lambda(u_i)\;=\;r .rankZp​​ i∈I∑​Zp​Λ(ui​)=r.

This generalises the criterion Leopoldt.leopoldtConjecture_iff_linearIndependent_log (which needs exactly rrr units) to an arbitrary finite generating family of finite index, e.g. all Galois conjugates of a Minkowski unit, which satisfy one multiplicative relation (their norm is ±1\pm1±1) and so are not independent. The rank is Module.finrank, which for the finitely generated torsion-free Zp\mathbb{Z}_pZp​-module in question is its free rank. The ball hypothesis can always be achieved by replacing the units with a fixed power.

Preamble
import Definitions.Def_PadicLog

open NumberField
Formal statement
theorem Leopoldt.leopoldtConjecture_iff_finrank_span_log (p : ℕ) [Fact p.Prime]
    (K : Type*) [Field K] [NumberField K] {ι : Type*} [Finite ι] (u : ι → (𝓞 K)ˣ)
    (hu : (Subgroup.closure (Set.range u)).FiniteIndex)
    (hball : ∀ (i : ι) (v : Leopoldt.PrimesOver p K),
      ‖((Leopoldt.diagonalUnits p K (u i) v : v.1.adicCompletionIntegers K) :
        v.1.adicCompletion K) - 1‖ ≤ ‖((p : ℕ) : v.1.adicCompletion K)‖ ^ 2) :
    Leopoldt.LeopoldtConjecture p K ↔
      Module.finrank ℤ_[p] (Submodule.span ℤ_[p] (Set.range fun (i : ι) (v : Leopoldt.PrimesOver p K) =>
        PadicLog.log (p := p)
          ((Leopoldt.diagonalUnits p K (u i) v : v.1.adicCompletionIntegers K) :
            v.1.adicCompletion K))) = NumberField.Units.rank K := by sorry
Source
L. C. Washington, Introduction to Cyclotomic Fields, 2nd ed., GTM 83, §5.5 (Leopoldt's conjecture; the p-adic regulator and the Z_p-rank of the closure of the units); J. Ax, On the units of an algebraic number field, Illinois J. Math. 9 (1965), 584–589, §1 (reformulation in terms of logarithms of a system of units of finite index).

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 paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me