Definitions/Def_GroupCohomology_ContinuousUnramifiedLevelInflation.lean
Inflation into the -level continuous
The setting is a group G together with a level map r\colon G\to\operatorname{Gal}(\overline{\mathbb Q}/\mathbb Q), a commutative ring k, a k-linear representation M of G, a finite set S of rational primes, and an intermediate field F of \overline{\mathbb Q}/\mathbb Q normal over \mathbb Q; write U_F = r^{-1}(\mathrm{Gal}(\overline{\mathbb Q}/F)) for the preimage under r of the fixing subgroup of F, a normal subgroup of G. The standing hypothesis hF is F.IsUnramifiedOutside S, i.e. F is finite over \mathbb Q and, for every prime q\notin S and every valuation subring of \overline{\mathbb Q} lying over q, its inertia subgroup over \mathbb Q is contained in the fixing subgroup of F.
The cochain-level inflation maps levelInflate₁ r M F and levelInflate₂ r M F send a function on G/U_F (respectively on (G/U_F)^2) with values in the U_F-invariants M^{U_F}, viewed as a representation of G/U_F, to the function g\mapsto y(\bar g) (respectively (g,h)\mapsto x(\bar g,\bar h)) with values in M. The lemmas here record that these land in the S-level objects: levelInflate₁ y is S-level constant with witness field F itself, the inflation of a 2-cocycle lies in levelCocyclesSr₂ r S M (the intersection of 2-cocycles with the S-level 2-cochains), and the inflation of d_{12}y equals d_{12} of the inflation of y, hence lies in levelCoboundariesSr₂ r S M (the image of the S-level 1-cochains under d_{12}).
From this, levelInflateCocyclesSr₂ is the k-linear map from 2-cocycles of M^{U_F} over G/U_F to levelCocyclesSr₂ r S M, with coe_levelInflateCocyclesSr₂ identifying its underlying function with levelInflate₂; it kills 2-coboundaries modulo the S-level coboundaries. Consequently continuousH2SrInflation r S M F hF is a k-linear map
H^2\big(G/U_F,\;M^{U_F}\big)\longrightarrow \mathrm{continuousH2Sr}\,r\,S\,M,
where the target is the quotient of the S-level 2-cocycles by the S-level 2-coboundaries; it is obtained by factoring the above through the identification of H^2 with 2-cocycles modulo the image of the cycles map, and continuousH2SrInflation_H2π states the characterising identity \mathrm{inf}_F(\pi x) = \pi_S(\mathrm{levelInflateCocyclesSr₂}\,x) on 2-cocycles x.
Relation to Mathlib
Mathlib supplies the inhomogeneous 2-cocycles and 2-coboundaries, H^2 with its projection and its identification with cocycles modulo the cycles map, and the quotient-to-invariants representation; the S-level cochain conditions, the quotient continuousH2Sr and the inflation map into it are the project's own, and are not Mathlib's inflation map for a normal subgroup.
Where it is used
These maps form the inflation system used to describe the S-level continuous H^2 of a level map as a colimit of the ordinary H^2 of the finite quotients G/U_F over fields F unramified outside S, which is how second-cohomology obstruction classes are handled in the deformation-theoretic part of the argument.
References
- J. Neukirch, A. Schmidt and K. Wingberg, Cohomology of Number Fields, Grundlehren der mathematischen Wissenschaften 323, Springer, 2nd edition, 2008, Chapter I
- J.-P. Serre, Galois Cohomology, Springer, 1997
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 80 lines
- 9 declarations
- used in the statements of 30 theorems and imported by 32 proofs
- imports 4 definition modules
Source file: Definitions/Def_GroupCohomology_ContinuousUnramifiedLevelInflation.lean
Imports
Declarations
- lemma
groupCohomology.coe_mul_eq_of_mem' - lemma
groupCohomology.levelInflate₁_mem_levelCochainsSr₁ - lemma
groupCohomology.levelInflate₂_mem_levelCocyclesSr₂ - lemma
groupCohomology.levelInflate₂_mem_levelCoboundariesSr₂ - def
groupCohomology.levelInflateCocyclesSr₂ - lemma
groupCohomology.coe_levelInflateCocyclesSr₂ - lemma
groupCohomology.continuousH2Srπ_levelInflateCocyclesSr₂_eq_zero - def
groupCohomology.continuousH2SrInflation - lemma
groupCohomology.continuousH2SrInflation_H2π
Source
import Mathlib import Definitions.Def_GroupCohomology_ContinuousUnramified import Definitions.Def_GroupCohomology_ContinuousUnramifiedLevel import Definitions.Def_GroupCohomology_LevelSubgroup import Definitions.Def_GroupCohomology_ContinuousH2Inflation set_option autoImplicit false open CategoryTheory noncomputable section namespace groupCohomology section A0 variable {k G : Type} [CommRing k] [Group G] (r : G →* (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)) (S : Finset Nat.Primes) (M : Rep.{0} k G) (F : IntermediateField ℚ (AlgebraicClosure ℚ)) [Normal ℚ F] omit [Normal ℚ F] in private lemma coe_mul_eq_of_mem' {g s : G} (hs : r s ∈ F.fixingSubgroup) : ((g * s : G) : G ⧸ F.fixingSubgroup.comap r) = (g : G ⧸ F.fixingSubgroup.comap r) := by rw [QuotientGroup.eq]; simpa using (F.fixingSubgroup.comap r).inv_mem hs lemma levelInflate₁_mem_levelCochainsSr₁ (hF : F.IsUnramifiedOutside S) (y : (G ⧸ F.fixingSubgroup.comap r) → M.quotientToInvariants _) : levelInflate₁ r M F y ∈ levelCochainsSr₁ r S M := ⟨F, hF, fun g s hs => by simp only [levelInflate₁_apply, coe_mul_eq_of_mem' r F hs]⟩ lemma levelInflate₂_mem_levelCocyclesSr₂ (hF : F.IsUnramifiedOutside S) {x : (G ⧸ F.fixingSubgroup.comap r) × (G ⧸ F.fixingSubgroup.comap r) → M.quotientToInvariants _} (hx : x ∈ cocycles₂ (M.quotientToInvariants (F.fixingSubgroup.comap r))) : levelInflate₂ r M F x ∈ levelCocyclesSr₂ r S M := ⟨levelInflate₂_mem_cocycles₂ hx, ⟨F, hF, fun g g' s s' hs hs' => by simp only [levelInflate₂_apply, coe_mul_eq_of_mem' r F hs, coe_mul_eq_of_mem' r F hs']⟩⟩ lemma levelInflate₂_mem_levelCoboundariesSr₂ (hF : F.IsUnramifiedOutside S) {x : (G ⧸ F.fixingSubgroup.comap r) × (G ⧸ F.fixingSubgroup.comap r) → M.quotientToInvariants _} (hx : x ∈ coboundaries₂ (M.quotientToInvariants (F.fixingSubgroup.comap r))) : levelInflate₂ r M F x ∈ levelCoboundariesSr₂ r S M := by obtain ⟨y, rfl⟩ := hx exact (mem_levelCoboundariesSr₂_iff r S M _).2 ⟨levelInflate₁ r M F y, levelInflate₁_mem_levelCochainsSr₁ r S M F hF y, (levelInflate₂_d₁₂ y).symm⟩ def levelInflateCocyclesSr₂ (hF : F.IsUnramifiedOutside S) : cocycles₂ (M.quotientToInvariants (F.fixingSubgroup.comap r)) →ₗ[k] ↥(levelCocyclesSr₂ r S M) := ((levelInflate₂ r M F).comp (Submodule.subtype _)).codRestrict _ fun x => levelInflate₂_mem_levelCocyclesSr₂ r S M F hF x.2 lemma coe_levelInflateCocyclesSr₂ (hF : F.IsUnramifiedOutside S) (x : cocycles₂ (M.quotientToInvariants (F.fixingSubgroup.comap r))) : (levelInflateCocyclesSr₂ r S M F hF x : G × G → M) = levelInflate₂ r M F x := rfl lemma continuousH2Srπ_levelInflateCocyclesSr₂_eq_zero (hF : F.IsUnramifiedOutside S) {x : cocycles₂ (M.quotientToInvariants (F.fixingSubgroup.comap r))} (hx : (x : _ → _) ∈ coboundaries₂ (M.quotientToInvariants (F.fixingSubgroup.comap r))) : continuousH2Srπ r S M (levelInflateCocyclesSr₂ r S M F hF x) = 0 := (continuousH2Srπ_eq_zero_iff r S M _).2 (levelInflate₂_mem_levelCoboundariesSr₂ r S M F hF hx) def continuousH2SrInflation (hF : F.IsUnramifiedOutside S) : H2 (M.quotientToInvariants (F.fixingSubgroup.comap r)) →ₗ[k] continuousH2Sr r S M := (Submodule.liftQ _ (continuousH2Srπ r S M ∘ₗ levelInflateCocyclesSr₂ r S M F hF) (by rintro x ⟨y, rfl⟩ exact continuousH2Srπ_levelInflateCocyclesSr₂_eq_zero r S M F hF ⟨y, rfl⟩)) ∘ₗ (H2Iso (M.quotientToInvariants (F.fixingSubgroup.comap r))).hom.hom lemma continuousH2SrInflation_H2π (hF : F.IsUnramifiedOutside S) (x : cocycles₂ (M.quotientToInvariants (F.fixingSubgroup.comap r))) : continuousH2SrInflation r S M F hF (H2π _ x) = continuousH2Srπ r S M (levelInflateCocyclesSr₂ r S M F hF x) := by have h := π_comp_H2Iso_hom_apply (M.quotientToInvariants (F.fixingSubgroup.comap r)) ((isoCocycles₂ _).inv x) simp only [Iso.inv_hom_id_apply] at h have e : (H2Iso (M.quotientToInvariants (F.fixingSubgroup.comap r))).hom.hom (H2π _ x) = (LinearMap.range (shortComplexH2 (M.quotientToInvariants (F.fixingSubgroup.comap r))).moduleCatToCycles).mkQ x := Eq.trans rfl h have key : ∀ z, z = (LinearMap.range (shortComplexH2 (M.quotientToInvariants (F.fixingSubgroup.comap r))).moduleCatToCycles).mkQ x → (LinearMap.range (shortComplexH2 (M.quotientToInvariants (F.fixingSubgroup.comap r))).moduleCatToCycles).liftQ (continuousH2Srπ r S M ∘ₗ levelInflateCocyclesSr₂ r S M F hF) (by rintro x ⟨y, rfl⟩; exact continuousH2Srπ_levelInflateCocyclesSr₂_eq_zero r S M F hF ⟨y, rfl⟩) z = continuousH2Srπ r S M (levelInflateCocyclesSr₂ r S M F hF x) := by rintro _ rfl; rfl exact key _ e end A0 end groupCohomology end
Statements phrased using this module (30)
- Capitulation of p-power-torsion ideal classes in a Galois S-level
NumberField.LevelArith.exists_le_isUnramifiedOutside_isGalois_forall_map_isPrincipal8 below · depth 21 - 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 - Conjugating an inflated level 2-cocycle by σ
NumberField.LevelArith.exists_cocyclesTwo_conj_transport_continuousH2SrInflation_eq4 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 - Invariant maximal S-units as the S-units of F
NumberField.LevelArith.exists_monoidHom_levelGal_exists_hom_res_quotientToInvariants_sUnitsRep_bijective8 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 - Inflations of two S-level 2-cocycles with equal values agree
groupCohomology.continuousH2SrInflation_H2pi_eq_of_le0 below · depth 24 - Every S-ramified continuous H² class is an inflation
groupCohomology.exists_continuousH2SrInflation_eq3 below · depth 24 - Torsion classes in H²_S inflate from torsion at a finite level
groupCohomology.exists_continuousH2SrInflation_eq_of_nsmul_eq_zero6 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 - Vanishing of H³ of the S-idèle module of a level
NumberField.LevelArith.exists_inhomogeneousCochains_d_two_three_eq_sIdele158 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 - 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 - Inflated H²_S class vanishes iff cocycle bounds deeper
groupCohomology.continuousH2SrInflation_H2pi_eq_zero_iff3 below · depth 25 - 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 - 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 - 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