The -rank of the -adic closure of the units grows by at most the number of new unit generators
ProvedLeopoldt.zpRankBelow_unitClosure_le_add_of_finiteIndexLet be a prime and let be a finite extension of number fields. For a number field write for its units, for the semilocal units at , for the diagonal embedding, and
for the -adic closure of the global units, as in Section 1.1 of the source. Suppose that are units such that the subgroup generated by the units of and the has finite index in . Then
This is the topological half of Remark 1.A of the source: the linear relations among the units of that arise upon -adic completion are preserved under the embedding , so passing to can raise the -rank of the closure only through the new generators. The semilocal units of embed continuously and injectively into those of compatibly with the diagonal embeddings (the construction behind Leopoldt.zpRankBelow_unitClosure_mono), and a subgroup of finite index has the same -rank of closure, so the closure of is, up to a finite group, topologically generated by the image of and the elements . Combined with the algebraic bound on the number of new generators (Leopoldt.exists_finiteIndex_units_sup_closure), it gives , and in particular that a positive Leopoldt defect is inherited by finite extensions.
Formalization Note The two fields are related by an Algebra F K instance with FiniteDimensional F K, as in the milestone statement Leopoldt.defect_pos_of_defect_pos. The subgroup is the join of the range of Units.map of the ring map with the subgroup closure of , and finite index is Mathlib's Subgroup.FiniteIndex. The -ranks are zpRankBelow p (finrank ℚ ·) (unitClosure p ·) of the definition file, each with its own field's degree over as the bound argument, exactly as they enter the definition of the defect; since the -rank of never exceeds that of , which is , the bounds never constrain the ranks.
import Definitions.Def_LeopoldtDefect open NumberField
namespace Leopoldt
theorem zpRankBelow_unitClosure_le_add_of_finiteIndex (p : ℕ) [Fact p.Prime]
(F K : Type*) [Field F] [NumberField F] [Field K] [NumberField K]
[Algebra F K] [FiniteDimensional F K] {m : ℕ} (g : Fin m → (𝓞 K)ˣ)
(hg : ((Units.map (algebraMap (𝓞 F) (𝓞 K)).toMonoidHom).range ⊔
Subgroup.closure (Set.range g)).FiniteIndex) :
zpRankBelow p (Module.finrank ℚ K) (unitClosure p K)
≤ zpRankBelow p (Module.finrank ℚ F) (unitClosure p F) + m := by sorry
end Leopoldt