Kernel of the semilocal -adic logarithm on principal semilocal units is the torsion
ProvedLeopoldt.semilocal_log_eq_zero_iffLet be a number field, a prime, and for each prime of let be the completion, its ring of integers and the -adic logarithm on principal units. Let be the semilocal units and let be a principal semilocal unit, i.e. for every . Then
In other words, the kernel of the semilocal logarithm is exactly the torsion subgroup. This is the input that turns Leopoldt's conjecture into a statement about the -adic rank of of the global units (the -adic regulator).
Formalization Note The semilocal units are Leopoldt.SemilocalUnits p K over Leopoldt.PrimesOver p K; the logarithm is PadicLog.log from Definitions.Def_PadicLog, applied coordinatewise in . The (true) fact that each completion has characteristic zero is taken as an instance argument [∀ v, CharZero (v.1.adicCompletion K)] because Mathlib does not register it as an instance; it can be supplied e.g. via charZero_of_injective_algebraMap.
import Definitions.Def_PadicLog
namespace Leopoldt
theorem semilocal_log_eq_zero_iff (p : ℕ) [Fact p.Prime] (K : Type*) [Field K] [NumberField K]
[∀ v : PrimesOver p K, CharZero (v.1.adicCompletion K)]
(u : SemilocalUnits p K)
(hu : ∀ v : PrimesOver p K,
‖(((u v : (v.1.adicCompletionIntegers K)ˣ) : v.1.adicCompletionIntegers K) :
v.1.adicCompletion K) - 1‖ < 1) :
(∀ v : PrimesOver p K, PadicLog.log (p := p)
(((u v : (v.1.adicCompletionIntegers K)ˣ) : v.1.adicCompletionIntegers K) :
v.1.adicCompletion K) = 0) ↔ ∃ n : ℕ, 0 < n ∧ u ^ n = 1 := by sorry
end Leopoldt