Definitions/Def_NumberField_SUnitsMax.lean
S-units of the maximal extension unramified outside S
Throughout, S is a finite set of rational primes and all algebraic extensions are taken inside \overline{\mathbb{Q}} = AlgebraicClosure ℚ. The predicate IsSUnitMax S x, for a unit x \in \overline{\mathbb{Q}}^{\times}, is the conjunction of two conditions: first, x lies in some intermediate field F of \overline{\mathbb{Q}}/\mathbb{Q} satisfying F.IsUnramifiedOutside S, that is, F is finite-dimensional over \mathbb{Q} and, for every prime q \notin S and every valuation subring A \subseteq \overline{\mathbb{Q}} with q a non-unit of A, the inertia subgroup of A over \mathbb{Q} (transported into \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q})) fixes F pointwise; and second, for every prime q \notin S and every such valuation subring A lying over q, both x and x^{-1} belong to A. Thus x is an algebraic number generating an extension unramified outside S which is a unit at every place away from S. These elements form a subgroup sUnitsMax S of \overline{\mathbb{Q}}^{\times} (closure under products uses the stability of IsUnramifiedOutside under joins of fields).
For an intermediate field L, sUnitsMaxStable S L is the intersection, over all \gamma in the fixing subgroup of L (i.e. \mathrm{Gal}(\overline{\mathbb{Q}}/L) acting on \overline{\mathbb{Q}}^{\times}), of the preimages of sUnitsMax S under x \mapsto \gamma \cdot x; membership is characterised by \gamma \cdot x \in sUnitsMax S for all such \gamma. It is contained in sUnitsMax S (take \gamma = 1) and is stable under the action of \mathrm{Gal}(\overline{\mathbb{Q}}/L). Its image sUnitsMaxSubmodule S L in the additive group Additive\,\overline{\mathbb{Q}}^{\times} is a \mathbb{Z}-submodule, and sUnitsMaxRep S L is the resulting object of Rep ℤ ↥L.fixingSubgroup, namely the subrepresentation of the multiplicative action of \mathrm{Gal}(\overline{\mathbb{Q}}/L) on Additive\,\overline{\mathbb{Q}}^{\times} cut out by that submodule. The accessor sUnitsMaxRep.val returns the underlying unit, and sUnitsMaxRep.val_ρ records that the representation acts by the Galois action on units.
Relation to Mathlib
Mathlib supplies the ambient notions used here (ValuationSubring and its inertia subgroup, IntermediateField.fixingSubgroup, MulDistribMulAction and Rep.ofMulDistribMulAction, Subgroup.toAddSubgroup), but not the predicates IsUnramifiedOutside or IsSUnitMax: Mathlib's S-unit notions are attached to a fixed number field or Dedekind domain, whereas these are conditions on elements of \overline{\mathbb{Q}}^{\times} formulated through valuation subrings of \overline{\mathbb{Q}}, and are the project's own.
Where it is used
The module provides the coefficient module for the Kummer sequence over the maximal extension of \mathbb{Q} unramified outside S, in the form of a Galois representation over \mathbb{Z}, for use in the cohomological level arithmetic (global and local H^1/H^2 with level-constant cochains, Selmer conditions) of the project.
References
- J. Neukirch, A. Schmidt and K. Wingberg, Cohomology of Number Fields, Grundlehren der mathematischen Wissenschaften 323, Springer, 2nd ed., 2008, Chapter VIII §3
- J. S. Milne, Arithmetic Duality Theorems, Academic Press, 1986, Chapter I §4
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 69 lines
- 12 declarations
- used in the statements of 68 theorems and imported by 77 proofs
- imports 1 definition modules
Source file: Definitions/Def_NumberField_SUnitsMax.lean
Declarations
- def
NumberField.LevelArith.IsSUnitMax - def
NumberField.LevelArith.sUnitsMax - theorem
NumberField.LevelArith.mem_sUnitsMax_iff - def
NumberField.LevelArith.sUnitsMaxStable - theorem
NumberField.LevelArith.mem_sUnitsMaxStable_iff - theorem
NumberField.LevelArith.sUnitsMaxStable_le - theorem
NumberField.LevelArith.smul_mem_sUnitsMaxStable - def
NumberField.LevelArith.sUnitsMaxSubmodule - theorem
NumberField.LevelArith.mem_sUnitsMaxSubmodule - abbrev
NumberField.LevelArith.sUnitsMaxRep - abbrev
NumberField.LevelArith.sUnitsMaxRep.val - theorem
NumberField.LevelArith.sUnitsMaxRep.val_ρ
Source
import Mathlib import Definitions.Def_GroupCohomology_ContinuousUnramified set_option autoImplicit false noncomputable section namespace NumberField.LevelArith variable (S : Finset Nat.Primes) def IsSUnitMax (x : (AlgebraicClosure ℚ)ˣ) : Prop := (∃ F : IntermediateField ℚ (AlgebraicClosure ℚ), F.IsUnramifiedOutside S ∧ (x : AlgebraicClosure ℚ) ∈ F) ∧ ∀ q : Nat.Primes, q ∉ S → ∀ A : ValuationSubring (AlgebraicClosure ℚ), A.LiesOverPrime (q : ℕ) → (x : AlgebraicClosure ℚ) ∈ A ∧ ((x⁻¹ : (AlgebraicClosure ℚ)ˣ) : AlgebraicClosure ℚ) ∈ A def sUnitsMax : Subgroup (AlgebraicClosure ℚ)ˣ where carrier := {x | IsSUnitMax S x} one_mem' := ⟨⟨⊥, IntermediateField.isUnramifiedOutside_bot S, by simp⟩, fun q _ A _ => ⟨by simp, by simp⟩⟩ mul_mem' := by rintro x y ⟨⟨F, hF, hxF⟩, hx⟩ ⟨⟨F', hF', hyF'⟩, hy⟩ refine ⟨⟨F ⊔ F', hF.sup hF', ?_⟩, fun q hq A hA => ⟨?_, ?_⟩⟩ · rw [Units.val_mul]; exact mul_mem ((le_sup_left : F ≤ F ⊔ F') hxF) ((le_sup_right : F' ≤ F ⊔ F') hyF') · rw [Units.val_mul]; exact A.toSubring.mul_mem (hx q hq A hA).1 (hy q hq A hA).1 · rw [mul_inv_rev, Units.val_mul]; exact A.toSubring.mul_mem (hy q hq A hA).2 (hx q hq A hA).2 inv_mem' := by rintro x ⟨⟨F, hF, hxF⟩, hx⟩ refine ⟨⟨F, hF, ?_⟩, fun q hq A hA => ⟨(hx q hq A hA).2, by simpa using (hx q hq A hA).1⟩⟩ rw [Units.val_inv_eq_inv_val]; exact inv_mem hxF theorem mem_sUnitsMax_iff (x : (AlgebraicClosure ℚ)ˣ) : x ∈ sUnitsMax S ↔ IsSUnitMax S x := Iff.rfl variable (L : IntermediateField ℚ (AlgebraicClosure ℚ)) def sUnitsMaxStable : Subgroup (AlgebraicClosure ℚ)ˣ := ⨅ γ : ↥L.fixingSubgroup, (sUnitsMax S).comap (MulDistribMulAction.toMonoidHom (AlgebraicClosure ℚ)ˣ (γ : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ))) theorem mem_sUnitsMaxStable_iff (x : (AlgebraicClosure ℚ)ˣ) : x ∈ sUnitsMaxStable S L ↔ ∀ γ : ↥L.fixingSubgroup, (γ : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)) • x ∈ sUnitsMax S := by simp only [sUnitsMaxStable, Subgroup.mem_iInf, Subgroup.mem_comap, MulDistribMulAction.toMonoidHom_apply] theorem sUnitsMaxStable_le : sUnitsMaxStable S L ≤ sUnitsMax S := fun x hx => by have h := (mem_sUnitsMaxStable_iff S L x).1 hx 1 rwa [show ((1 : ↥L.fixingSubgroup) : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)) = 1 from rfl, one_smul] at h theorem smul_mem_sUnitsMaxStable (δ : ↥L.fixingSubgroup) {x : (AlgebraicClosure ℚ)ˣ} (hx : x ∈ sUnitsMaxStable S L) : (δ : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)) • x ∈ sUnitsMaxStable S L := by rw [mem_sUnitsMaxStable_iff] at hx ⊢ intro γ rw [← mul_smul] exact hx (γ * δ) def sUnitsMaxSubmodule : Submodule ℤ (Additive (AlgebraicClosure ℚ)ˣ) := (Subgroup.toAddSubgroup (sUnitsMaxStable S L)).toIntSubmodule theorem mem_sUnitsMaxSubmodule (x : Additive (AlgebraicClosure ℚ)ˣ) : x ∈ sUnitsMaxSubmodule S L ↔ Additive.toMul x ∈ sUnitsMaxStable S L := Iff.rfl abbrev sUnitsMaxRep : Rep ℤ ↥L.fixingSubgroup := Rep.of ((Rep.ofMulDistribMulAction ↥L.fixingSubgroup (AlgebraicClosure ℚ)ˣ).ρ.subrepresentation (sUnitsMaxSubmodule S L) fun γ _ hx => smul_mem_sUnitsMaxStable S L γ hx) abbrev sUnitsMaxRep.val (x : sUnitsMaxRep S L) : (AlgebraicClosure ℚ)ˣ := Additive.toMul x.1 theorem sUnitsMaxRep.val_ρ (γ : ↥L.fixingSubgroup) (x : sUnitsMaxRep S L) : sUnitsMaxRep.val S L ((sUnitsMaxRep S L).ρ γ x) = (γ : (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)) • sUnitsMaxRep.val S L x := rfl end NumberField.LevelArith end
Statements phrased using this module (68)
- Embedding of H¹_S into the S-class group
NumberField.LevelArith.exists_continuousH1Sr_sUnitsMaxRep_linearMap_sClassGroupRep_injective17 below · depth 21 - Equivariant embedding of H¹_S into the S-class group
NumberField.LevelArith.exists_continuousH1Sr_sUnitsMaxRep_linearMap_sClassGroupRep_injective_natural17 below · depth 21 - Capitulation of p-power-torsion ideal classes in a Galois S-level
NumberField.LevelArith.exists_le_isUnramifiedOutside_isGalois_forall_map_isPrincipal8 below · depth 21 - Galois stability of the maximal S-unit group
NumberField.LevelArith.sUnitsMaxStable_eq_sUnitsMax0 below · depth 21 - Natural Kummer–Brauer exact sequence for H²_S with μₚ
groupCohomology.exists_kummerBrauer_maps_continuousH2Sr_cyclotomic_natural470 below · depth 21 - Mod p torsion of the S-units is 𝔽ₚ(1)
NumberField.LevelArith.nonempty_repTorsionP_sUnitsMaxRep_iso_trivial_twist_cycloChar2 below · depth 22 - Smoothness and p-divisibility of the S-unit module
NumberField.LevelArith.sUnitsMaxRep_smooth_and_divisible2 below · depth 22 - p-power-torsion level-constant 3-cocycles on S-units are coboundaries
groupCohomology.exists_isLevelConstant_d_two_three_eq_of_pPow_smul_sUnitsMax486 below · depth 22 - Local invariants of the p-primary S-unit H²
groupCohomology.exists_natural_localInv_pPrimary_continuousH2Sr_sUnitsMax464 below · depth 22 - Local invariants on p-torsion of H²_S, with naturality
groupCohomology.exists_natural_localInv_torsionBy_continuousH2Sr_sUnitsMax465 below · depth 22 - Naturality of Brauer local invariants under automorphisms of L
NumberField.LevelArith.apply_eq_apply_of_isBrauerLocalInv_of_algEquiv125 below · depth 23 - Cochain identities descend along inflation to a layer
NumberField.LevelArith.d_eq_zero_and_d_eq_pow_smul_of_level_presentation_sUnitsMaxRep0 below · depth 23 - Existence of a local invariant map on p-primary H²_S
NumberField.LevelArith.exists_isBrauerLocalInv152 below · depth 23 - Inflating a layer coboundary to a level-constant 2-cochain
NumberField.LevelArith.exists_isLevelConstant_d_two_three_eq_of_level_coboundary_sUnitsMaxRep0 below · depth 23 - Inflating a layer cochain to a larger layer
NumberField.LevelArith.exists_level_comp_eq_of_le_sUnitsMaxRep0 below · depth 23 - Presenting a level-constant cochain at a finite Galois level
NumberField.LevelArith.exists_level_eq_comp_of_isLevelConstant_sUnitsMaxRep5 below · depth 23 - Inflation kills p-power-torsion 3-cocycles of S-units
NumberField.LevelArith.exists_level_inhomogeneousCochains_d_two_three_eq_of_pow_smul480 below · depth 23 - Reciprocity for p-primary S-ramified classes over L
NumberField.LevelArith.finsum_apply_eq_zero_of_isBrauerLocalInv403 below · depth 23 - Injectivity of any Brauer local-invariant map on p-primary classes
NumberField.LevelArith.injective_of_isBrauerLocalInv280 below · depth 23 - Realisation of sum-zero p-primary families of local invariants
NumberField.LevelArith.mem_range_of_isBrauerLocalInv_of_finsum_eq_zero422 below · depth 23 - Change of S-unit coefficients is bijective on H²
groupCohomology.bijective_continuousH2SrMap_sUnitsMaxRep_galoisSUnitsRep3 below · depth 23 - Hasse principle for the p-primary part of H² of S-units
groupCohomology.eq_zero_of_forall_continuousH2Map_primeLocal_eq_zero_pPrimary_continuousH2Sr_sUnitsMax258 below · depth 23 - Degree-two Kummer comparison for S-units of the maximal extension
groupCohomology.mem_levelCoboundaries2_sUnitsMaxRep_of_zsmul_mem_of_val_mem1 below · depth 23 - Inflation kills p-primary S-unit classes with vanishing idèle image
NumberField.LevelArith.continuousH2SrInflation_H2pi_eq_zero_of_map_principalIdele_eq_zero_of_pow_smul_eq_zero162 below · depth 24 - Uniqueness of the Brauer local invariant at a place
NumberField.LevelArith.eq_of_hasBrauerLocalInvAt146 below · depth 24 - Invariants of the maximal S-units are the S-units of F
NumberField.LevelArith.exists_addEquiv_quotientToInvariants_sUnitsMaxRep_sUnitsRep7 below · depth 24 - Conjugating an inflated level 2-cocycle by σ
NumberField.LevelArith.exists_cocyclesTwo_conj_transport_continuousH2SrInflation_eq4 below · depth 24 - Brauer class with prescribed invariants from an idèle class
NumberField.LevelArith.exists_forall_hasBrauerLocalInvAt_of_ideleClass_hasLocalInv175 below · depth 24 - Existence of a local Brauer invariant at a place above S
NumberField.LevelArith.exists_hasBrauerLocalInvAt118 below · depth 24 - One layer presentation for a p-primary H²_S class
NumberField.LevelArith.exists_layer_presentation_and_pow_smul_eq_zero18 below · depth 24 - Existence of a Sylow intermediate field for a finite layer
NumberField.LevelArith.exists_le_le_isPGroup_quotient_not_dvd_finrank1 below · depth 24 - Capitulation at a larger level of S-unit 2-cocycles
NumberField.LevelArith.exists_level_coboundary_of_isPGroup_of_map_diag_H2pi_eq_zero_sUnitsMaxRep143 below · depth 24 - Prime-to-p descent of degree-3 S-unit coboundaries
NumberField.LevelArith.exists_level_d_two_three_eq_of_restrict_coboundary_of_not_dvd3 below · depth 24 - Realising p-primary sum-zero families as local invariants of idèle classes
NumberField.LevelArith.exists_level_ideleClass_hasLocalInv_of_finsum_eq_zero385 below · depth 24 - Killing a degree-three S-unit cocycle at a deeper level
NumberField.LevelArith.exists_level_inhomogeneousCochains_d_two_three_eq_of_pow_smul_of_isPGroup479 below · depth 24 - Invariant maximal S-units as the S-units of F
NumberField.LevelArith.exists_monoidHom_levelGal_exists_hom_res_quotientToInvariants_sUnitsRep_bijective8 below · depth 24 - Restriction of degree-3 S-unit cochain data to a larger base
NumberField.LevelArith.exists_three_cochain_val_eq_of_le_sUnitsMaxRep1 below · depth 24 - Additivity of Brauer local invariants at a place
NumberField.LevelArith.hasBrauerLocalInvAt_add144 below · depth 24 - Local w-components of σ-transported H² classes agree
NumberField.LevelArith.map_prG_conj_transport_eq_map_prG_map_psi1 below · depth 24 - Local component at w ∤ S of an S-unit class vanishes
NumberField.LevelArith.map_prG_map_principalIdele_eq_zero_of_forall_comap_ne22 below · depth 24 - Unramifiedness off S of the layer F_L over L
NumberField.LevelArith.ramificationIdx_eq_one_of_isUnramifiedOutside_of_under_not_mem_placesOverPrimesFinset6 below · depth 24 - Hasse principle for p-primary S-unit classes H²_S(Γ_L, E_S)
groupCohomology.eq_zero_of_forall_continuousH2Map_primeLocal_archimedean_eq_zero_pPrimary_continuousH2Sr_sUnitsMax262 below · depth 24 - Inflated p-primary class vanishes after prime-to-p restriction
NumberField.LevelArith.continuousH2SrInflation_H2pi_eq_zero_of_restrict_coboundary_of_not_dvd7 below · depth 25 - Trivial decomposition at infinity in a p-group layer
NumberField.LevelArith.eq_one_of_mem_infPlaceDecomp_of_isPGroup1 below · depth 25 - Restricting an S-unit 2-cocycle to a larger base field
NumberField.LevelArith.exists_cocyclesTwo_quotientToInvariants_sUnitsMaxRep_val_eq_of_le1 below · depth 25 - Presenting a p-primary S-Brauer class with prescribed local invariants
NumberField.LevelArith.exists_forall_hasBrauerLocalInvAt_of_cocycles_sUnitsRep1 below · depth 25 - Vanishing of H³ of the S-idèle module of a level
NumberField.LevelArith.exists_inhomogeneousCochains_d_two_three_eq_sIdele158 below · depth 25 - Local coboundaries yield a coboundary in an adic completion
NumberField.LevelArith.exists_layer_coboundary_adicCompletion_of_forall_conj_primeLocal_coboundary9 below · depth 25 - Degree-3 S-unit cocycles split at a deeper p-level
NumberField.LevelArith.exists_level_d_two_three_eq_of_sIdele_coboundary_of_isPGroup478 below · depth 25 - Cocycles with equal inflated class differ by a coboundary at a deeper level
NumberField.LevelArith.exists_level_sub_eq_coboundary_of_continuousH2SrInflation_eq4 below · depth 25 - Transporting a degree-3 cochain to the S-units frame
NumberField.LevelArith.exists_three_cochain_sUnitsRep_val_eq_of_transport0 below · depth 25 - Local invariants unchanged on passing to a larger S-level
NumberField.LevelArith.hasLocalInv_of_hasLocalInv_of_le119 below · depth 25 - The layer F_L/L is Galois for F/ℚ finite normal
NumberField.LevelArith.isGalois_levelField0 below · depth 25 - Surjectivity and kernel of Γ_L → Gal(F/L)
NumberField.LevelArith.levelGal_surjective_and_ker0 below · depth 25 - Vanishing S-idèle class of a restricted layer 2-cocycle
NumberField.LevelArith.map_diag_H2pi_eq_zero_of_map_principalIdele_H2pi_eq_zero_of_le30 below · depth 25 - Layer order p^k kills degree-3 cocycles at cochain level
NumberField.LevelArith.exists_card_eq_pow_and_d_two_three_eq_pow_smul_of_isPGroup1 below · depth 26 - Galois S-levels above a given level with p^k dividing decomposition orders
NumberField.LevelArith.exists_le_isUnramifiedOutside_isGalois_pow_dvd_natCard_decomp12 below · depth 26 - Depth splitting of a 3-cocycle of S-units
NumberField.LevelArith.exists_level_d_two_three_eq_of_sIdele_coboundary_of_smul_eq_of_dvd_natCard_decomp415 below · depth 26 - Sylow placement of a large decomposition group
NumberField.LevelArith.exists_mem_placesOverPrimesFinset_pow_dvd_natCard_decomp_above_of_isPGroup_of_not_dvd6 below · depth 26 - Torsion transfer of S-idèle cochains along a level tower
NumberField.LevelArith.exists_smul_eq_smul_add_d_add_diag_of_sIdele_coboundary_of_le43 below · depth 26 - Inflation of degree-3 cochain data to a larger layer
NumberField.LevelArith.exists_three_cochain_val_eq_of_le_level_sUnitsMaxRep0 below · depth 26 - Vanishing idèle class transfers from base L to L'
NumberField.LevelArith.map_principalIdele_H2pi_eq_zero_of_le2 below · depth 26 - Genuine base change preserves S-unit idèles and S-units
NumberField.AdeleRing.unitsMap_genuineBaseChange_mem_unitIdelesOutside_of_isScalarTower2 below · depth 27 - Capitulation step: idèlic 2-cochain gives deeper S-unit coboundary
NumberField.LevelArith.exists_level_sUnitsRep_val_d_eq_of_sIdele_coboundary_of_map_eq_add_d56 below · depth 27 - Un-transporting a degree-3 coboundary to the invariants frame
NumberField.LevelArith.exists_two_cochain_quotientToInvariants_sUnitsMaxRep_eq_d_of_transport0 below · depth 27 - Γ_L/U_F a p-group forces Gal(F_L/L) a p-group
NumberField.LevelArith.isPGroup_levelGal_of_isPGroup_quotient1 below · depth 27 - Genuine base change preserves S-idèles and S-units in level towers
NumberField.LevelArith.unitsMap_genuineBaseChange_mem_unitIdelesOutside_of_le2 below · depth 27 - A Galois S-level absorbing p-power idèle classes
NumberField.LevelArith.exists_le_unitsMap_genuineBaseChange_mem_sup_of_pow_mem14 below · depth 28