Semilocal units become principal after a fixed power: for all
ProvedLeopoldt.exists_pow_mem_oneUnitsLet be a prime and a number field, with semilocal units at (Section 1.1 of the source), where is the ring of integers of the completion . Then there is an integer such that for every and every prime ,
that is, lies in the product of the principal units.
The point is that each residue field is finite, say of order , so the reduction of any local unit satisfies and ; the product then works for all coordinates at once. Equivalently, the principal units form a subgroup of finite index in the local units, and is a multiple of the exponent of the finite quotient .
This is the step that moves a rank question from the full semilocal units, where the platform's definitions live, to the principal units, which carry the -module structure of Definitions.Def_OneUnits: raising a continuous injection to the -th power keeps it injective and continuous and lands it in , where Leopoldt.natCast_le_rank_of_continuous_injective applies.
Formalization Note The coordinate is a unit of v.1.adicCompletionIntegers F and is coerced into the completion v.1.adicCompletion F to take the norm, exactly as in the hypothesis of Leopoldt.natCast_le_rank_of_continuous_injective. Finiteness of the residue field of the completion is not available in Mathlib at this revision as a ready-made instance; it has to be obtained from the finiteness of and the identification of residue fields, or from a direct argument with the norm.
import Definitions.Def_PrimesOverNorm open NumberField
namespace Leopoldt
theorem exists_pow_mem_oneUnits (p : ℕ) [Fact p.Prime] (F : Type*) [Field F] [NumberField F] :
∃ M : ℕ, 0 < M ∧ ∀ (u : SemilocalUnits p F) (v : PrimesOver p F),
‖((u v : v.1.adicCompletionIntegers F) : v.1.adicCompletion F) ^ M - 1‖ < 1 := by sorry
end Leopoldt