Definitions/Def_IsDedekindDomain_FiniteUnitIdelesOutside.lean
-unit idèle subgroups of the finite and full adèle rings
Throughout, R is a Dedekind domain with fraction field K (via an algebra structure making K the fraction field of R), and v ranges over HeightOneSpectrum R, the height-one primes of R. For a set S of such primes, IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside R K S is the subgroup of the unit group (\mathbb{A}_K^f)^\times of the finite adèle ring consisting of those units \delta such that for every v \notin S both the v-component of \delta and the v-component of the adèle underlying \delta^{-1} lie in the valuation ring \mathcal{O}_v of the v-adic completion. Thus no condition is imposed at places in S, while outside S the pair of integrality conditions expresses that the local component is a unit of \mathcal{O}_v; the group axioms are verified componentwise. The membership criterion mem_unitIdelesOutside_iff records this carrier description verbatim. Three further lemmas fix the elementary behaviour: for S = \varnothing the subgroup coincides with unitIdeles R K, the subgroup of units integral together with their inverses at every place (unitIdelesOutside_empty); the assignment S \mapsto unitIdelesOutside R K S is monotone for inclusion of sets of primes (unitIdelesOutside_mono); and unitIdeles R K is contained in every such subgroup (unitIdeles_le_unitIdelesOutside).
The second half, NumberField.AdeleRing.unitIdelesOutside R K S, is the corresponding subgroup of (\mathbb{A}_K)^\times, defined as the preimage of IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside R K S under the map on unit groups induced by the second projection \mathbb{A}_K^\infty \times \mathbb{A}_K^f \to \mathbb{A}_K^f. Hence a unit idèle lies in it exactly when its finite part satisfies the local unit conditions outside S, with the infinite components unconstrained; this is again recorded as a membership criterion.
Relation to Mathlib
Mathlib supplies the finite adèle ring, the adèle ring as a product of its infinite and finite parts, and the local integers v.adicCompletionIntegers K, but no S-unit idèle subgroups; these are the project's own, extending the imported unitIdeles (the case S = \varnothing).
Where it is used
These subgroups are the standard S-idèle groups J_{K,S} = \prod_{v \in S} K_v^\times \times \prod_{v \notin S} \mathcal{O}_v^\times used in the idèlic treatment of class groups and class field theory, which enters the arithmetic of the number fields occurring in the modularity argument.
References
- J. W. S. Cassels and A. Fröhlich (eds.), Algebraic Number Theory, Academic Press, 1967, Ch. II §17 and Ch. VII §3
- J. Neukirch, Algebraic Number Theory, Grundlehren der mathematischen Wissenschaften 322, Springer, 1999, Ch. VI §1
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 63 lines
- 7 declarations
- used in the statements of 28 theorems and imported by 40 proofs
- imports 1 definition modules
Source file: Definitions/Def_IsDedekindDomain_FiniteUnitIdelesOutside.lean
Declarations
- def
IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside - theorem
IsDedekindDomain.FiniteAdeleRing.mem_unitIdelesOutside_iff - theorem
IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside_empty - theorem
IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside_mono - theorem
IsDedekindDomain.FiniteAdeleRing.unitIdeles_le_unitIdelesOutside - def
NumberField.AdeleRing.unitIdelesOutside - theorem
NumberField.AdeleRing.mem_unitIdelesOutside_iff
Source
import Mathlib import Definitions.Def_IsDedekindDomain_FiniteUnitIdeles set_option autoImplicit false namespace IsDedekindDomain.FiniteAdeleRing variable (R : Type*) [CommRing R] [IsDedekindDomain R] (K : Type*) [Field K] [Algebra R K] [IsFractionRing R K] def unitIdelesOutside (S : Set (HeightOneSpectrum R)) : Subgroup (FiniteAdeleRing R K)ˣ where carrier := {δ | ∀ v : HeightOneSpectrum R, v ∉ S → (δ : FiniteAdeleRing R K) v ∈ v.adicCompletionIntegers K ∧ ((δ⁻¹ : (FiniteAdeleRing R K)ˣ) : FiniteAdeleRing R K) v ∈ v.adicCompletionIntegers K} one_mem' v _ := ⟨by rw [Units.val_one]; exact one_mem _, by rw [inv_one, Units.val_one]; exact one_mem _⟩ mul_mem' := by rintro x y hx hy v hv obtain ⟨hx1, hx2⟩ := hx v hv obtain ⟨hy1, hy2⟩ := hy v hv exact ⟨by rw [Units.val_mul]; exact mul_mem hx1 hy1, by rw [mul_inv, Units.val_mul]; exact mul_mem hx2 hy2⟩ inv_mem' := by rintro x hx v hv obtain ⟨hx1, hx2⟩ := hx v hv exact ⟨hx2, by rw [inv_inv]; exact hx1⟩ variable {R K} in theorem mem_unitIdelesOutside_iff (S : Set (HeightOneSpectrum R)) (δ : (FiniteAdeleRing R K)ˣ) : δ ∈ unitIdelesOutside R K S ↔ ∀ v : HeightOneSpectrum R, v ∉ S → (δ : FiniteAdeleRing R K) v ∈ v.adicCompletionIntegers K ∧ ((δ⁻¹ : (FiniteAdeleRing R K)ˣ) : FiniteAdeleRing R K) v ∈ v.adicCompletionIntegers K := Iff.rfl theorem unitIdelesOutside_empty : unitIdelesOutside R K (∅ : Set (HeightOneSpectrum R)) = unitIdeles R K := Subgroup.ext fun _ => ⟨fun h => ⟨fun v => (h v fun hv => hv).1, fun v => (h v fun hv => hv).2⟩, fun h v _ => ⟨h.1 v, h.2 v⟩⟩ theorem unitIdelesOutside_mono {S T : Set (HeightOneSpectrum R)} (h : S ⊆ T) : unitIdelesOutside R K S ≤ unitIdelesOutside R K T := fun _ hx v hv => hx v fun hvS => hv (h hvS) theorem unitIdeles_le_unitIdelesOutside (S : Set (HeightOneSpectrum R)) : unitIdeles R K ≤ unitIdelesOutside R K S := fun _ hx v _ => ⟨hx.1 v, hx.2 v⟩ end IsDedekindDomain.FiniteAdeleRing namespace NumberField.AdeleRing variable (R : Type*) [CommRing R] [IsDedekindDomain R] (K : Type*) [Field K] [Algebra R K] [IsFractionRing R K] noncomputable def unitIdelesOutside (S : Set (IsDedekindDomain.HeightOneSpectrum R)) : Subgroup (AdeleRing R K)ˣ := (IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside R K S).comap (Units.map (RingHom.snd (InfiniteAdeleRing K) (IsDedekindDomain.FiniteAdeleRing R K)).toMonoidHom) variable {R K} in theorem mem_unitIdelesOutside_iff (S : Set (IsDedekindDomain.HeightOneSpectrum R)) (x : (AdeleRing R K)ˣ) : x ∈ unitIdelesOutside R K S ↔ Units.map (RingHom.snd (InfiniteAdeleRing K) (IsDedekindDomain.FiniteAdeleRing R K)).toMonoidHom x ∈ IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside R K S := Iff.rfl end NumberField.AdeleRing
Statements phrased using this module (28)
- Unit idèles outside T characterised by valuations
NumberField.AdeleRing.mem_unitIdelesOutside_iff_forall_valued_snd_eq_one0 below · depth 16 - Principal idèles in the S-unit idèles are the S-units
NumberField.AdeleRing.principalIdeles_inf_unitIdelesOutside_eq_map_unit0 below · depth 18 - Every idele is principal times an S-unit idele
NumberField.AdeleRing.principalIdeles_sup_unitIdelesOutside_eq_top1 below · depth 18 - Local p-th powers away from S ∪ T are global
NumberField.exists_pow_eq_of_forall_mem_range_powMonoidHom66 below · depth 18 - The ideal content homomorphism on finite idèles
IsDedekindDomain.FiniteAdeleRing.exists_contentHom_eq_finprod_and_mem_sup_unitIdelesOutside_iff0 below · depth 19 - Finite idèles: S-units together with K^× generate everything
IsDedekindDomain.FiniteAdeleRing.unitIdelesOutside_sup_range_eq_top0 below · depth 19 - Finite index of principal times S-unit idèles
NumberField.AdeleRing.finiteIndex_principalIdeles_sup_unitIdelesOutside1 below · depth 19 - Unique equivariant map of S∪∞-idèle modules along a tower
NumberField.SArchIdele.existsUnique_hom_res_obj_comp_toSIdele_eq3 below · depth 19 - Exactness at the S∪∞-idèle module
NumberField.SArchIdele.toSIdeleClass_mk_comp_diagS_eq_one_and_exists_of_eq_one2 below · depth 19 - Coordinatewise equivariant embedding of the S-idèle module
NumberField.SIdele.exists_addMonoidHom_obj_adeleRing_units_apply17 below · depth 19 - p-capitulation of S-idèle classes at a Galois level
NumberField.exists_le_isGalois_forall_mem_range_sup_unitIdelesOutside_of_pow_mem13 below · depth 19 - Image of the S∪∞-idèle module in the idèles
NumberField.SArchIdele.injective_comp_toSIdele_and_mem_range_iff2 below · depth 20 - Norm group of the Kummer extension by p-th roots of S'-units
NumberField.exists_isGalois_principalIdeles_sup_range_idelicNorm_eq_unitIdelesTrivialOn_of_sup_unitIdelesOutside_eq_top144 below · depth 23 - The S-idèle module as a Galois-equivariant embedding into the idèles
NumberField.SIdele.exists_hom_obj_ideles_injective_of_ideleGaloisDescent18 below · depth 26 - Injectivity on H² of the S-idèle inclusion
NumberField.SIdele.injective_map_H2_of_injective_of_range_eq_unitIdelesOutside11 below · depth 26 - Idèle cocycles modulo unit idèles outside S are coboundaries
NumberField.AdeleRing.exists_forall_mul_inv_smul_div_mem_unitIdelesOutside_of_forall_mem9 below · depth 27 - Capitulation kills p-primary classes dying in the idèles
NumberField.IdeleLocalInv.map_eq_zero_of_zsmul_eq_zero_of_map_eq_zero_of_capitulation12 below · depth 27 - Idèle classes trivial off S descend uniquely to S-idèles
NumberField.SIdele.existsUnique_map_eq_of_forall_map_prG_eq_zero12 below · depth 27 - S-idèle class module embeds into the idèle class group
NumberField.SIdele.exists_hom_classObj_ideleClassGroup_injective_range_eq21 below · depth 27 - Equivariance of Φ upgraded to a morphism of representations
NumberField.SIdele.exists_hom_ideles_apply_eq0 below · depth 27 - Torsion for S-idèle 2-cochains modulo S-units
NumberField.SIdele.exists_smul_eq_d_add_diag_of_d_eq_diag7 below · depth 27 - An idèle with prescribed valuations at all finite places
NumberField.AdeleRing.exists_units_forall_valued_snd_eq_ofAdd_neg0 below · depth 28 - An idèle is a local unit at almost all finite places
NumberField.AdeleRing.finite_setOf_valued_snd_ne_one0 below · depth 28 - Galois action on idèles preserves valuations along transported places
NumberField.AdeleRing.valued_snd_smul_smul_eq4 below · depth 28 - Equivariant realisation of the S-idèle module inside A_K^×
NumberField.SIdele.exists_addMonoidHom_obj_adeleRing_units18 below · depth 28 - S-idèle module realised inside the idèle group
NumberField.SIdele.exists_addMonoidHom_obj_adeleRing_units_transport12 below · depth 29 - Index of K^×·(K_∞^××widehat𝒪^×) is h_K
NumberField.TateGlobal.index_unitIdelesOutside_sup_range_unitsMap_algebraMap_eq_classNumber1 below · depth 31 - Regulator term for unit idele classes of bounded norm
NumberField.TateGlobal.measure_unitIdeles_inter_fundamentalDomain_inter_ideleNorm_Icc_eq_measure_unitShell_mul_regulator_div10 below · depth 31