Leopoldt's conjecture iff the -adic logarithms of the units are -independent
ProvedLeopoldt.leopoldtConjecture_iff_linearIndependent_logThe -adic logarithm criterion for Leopoldt's conjecture. Let be a prime and a number field with unit group of -rank . For each prime of let be the completion and let
be the diagonal embedding. Each is a -module via the canonical map , and denotes the -adic logarithm (Iwasawa's form ).
Let be units such that
- the subgroup has finite index in (so the are, up to finite index, a system of fundamental units; e.g. for a fundamental system ), and
- every local image lies in the small ball: for all and all .
Then Leopoldt's conjecture holds for at (i.e. the Leopoldt defect vanishes) if and only if the vectors of -adic logarithms
are linearly independent over .
This is the classical reformulation of Leopoldt's conjecture as the non-vanishing of the -adic regulator: the -rank of the closure equals the -rank of the -span of the logarithms of a basis of (a finite-index subgroup of) the units. It turns the topological rank condition in the definition of the defect into a linear-algebra condition on explicit -adic numbers.
Formalization Note. is v.1.adicCompletion K for v : Leopoldt.PrimesOver p K, with the platform's -algebra instance Leopoldt.instAlgebraPadicIntAdicCompletion; is PadicLog.log, which on the ball is an isometric homomorphism satisfying for . The ball hypothesis can always be achieved by replacing the with a common power.
import Definitions.Def_PadicLog open NumberField
namespace Leopoldt
theorem leopoldtConjecture_iff_linearIndependent_log (p : ℕ) [Fact p.Prime]
(K : Type*) [Field K] [NumberField K] (η : Fin (Units.rank K) → (𝓞 K)ˣ)
(hη : (Subgroup.closure (Set.range η)).FiniteIndex)
(hball : ∀ (i : Fin (Units.rank K)) (v : PrimesOver p K),
‖((diagonalUnits p K (η i) v : v.1.adicCompletionIntegers K) : v.1.adicCompletion K) - 1‖
≤ ‖((p : ℕ) : v.1.adicCompletion K)‖ ^ 2) :
LeopoldtConjecture p K ↔
LinearIndependent ℤ_[p] (fun (i : Fin (Units.rank K)) (v : PrimesOver p K) =>
PadicLog.log (p := p)
((diagonalUnits p K (η i) v : v.1.adicCompletionIntegers K) : v.1.adicCompletion K)) := by sorry
end Leopoldt