The units of a finite extension are generated, up to finite index, by the units of the base field and further units
ProvedLeopoldt.exists_finiteIndex_units_sup_closureLet be a finite extension of number fields and write and for their unit groups, with Dirichlet ranks and . The inclusion embeds into .
Then there exist an integer and units such that
In words: the -generators of the units of are those of together with at most further units, up to a subgroup of finite index. This is the algebraic half of Remark 1.A of the source, which compares the "linear relations between -generators of the units" of a field and of a finite extension: it bounds how many new generators the extension can contribute, so that any growth of the -adic rank of the closure of the units along is charged to at most elements. Together with the corresponding bound on the -rank of the -adic closure (Leopoldt.zpRankBelow_unitClosure_le_add_of_finiteIndex) it yields that a positive Leopoldt defect is inherited by finite extensions.
Formalization Note The fields are related by an Algebra F K instance with FiniteDimensional F K, exactly as in the milestone statement Leopoldt.defect_pos_of_defect_pos; the embedding of unit groups is Units.map of the ring map , and the subgroup generated by and the is the join of the range of that map with the subgroup closure of . Dirichlet's rank is Mathlib's NumberField.Units.rank. The number is existentially quantified with rather than fixed as a truncated difference, so the statement carries the inequality with it.
import Definitions.Def_LeopoldtDefect open NumberField
namespace Leopoldt
theorem exists_finiteIndex_units_sup_closure
(F K : Type*) [Field F] [NumberField F] [Field K] [NumberField K]
[Algebra F K] [FiniteDimensional F K] :
∃ (m : ℕ) (g : Fin m → (𝓞 K)ˣ), m + Units.rank F ≤ Units.rank K ∧
((Units.map (algebraMap (𝓞 F) (𝓞 K)).toMonoidHom).range ⊔
Subgroup.closure (Set.range g)).FiniteIndex := by sorry
end Leopoldt