Definitions/Def_GroupCohomology_ContinuousH2Map.lean
Pullback maps on level-constant cochains and continuous
The context is a commutative ring k, groups G and H equipped with level maps r_G \colon G \to (\overline{\mathbb{Q}} \simeq_{\mathbb{Q}} \overline{\mathbb{Q}}) and r_H into the same automorphism group of AlgebraicClosure ℚ, a group homomorphism f \colon G \to H with r_H(f(g)) = r_G(g) for all g, representations A of H and B of G over k, and a k-linear map \varphi \colon A \to B satisfying \varphi(A.\rho(f(g))\,a) = B.\rho(g)\,\varphi(a).
Recall that a function on H (resp. on H \times H) is level-constant for r_H when there is a finite-dimensional intermediate field F of \overline{\mathbb{Q}}/\mathbb{Q} such that the function is unchanged by right translation of its argument(s) by elements whose r_H-image lies in the fixing subgroup of F. The two precomp lemmas record that precomposition with f preserves this, with the same field F. The linear maps cochainsPullPush₁ and cochainsPullPush₂ send x to \varphi \circ x \circ f and to \varphi \circ x \circ (f \times f) respectively; they commute with the differential d_{12} from 1- to 2-cochains, and the degree-2 map carries 2-cocycles to 2-cocycles, level-constant cochains to level-constant cochains, hence level 2-cocycles to level 2-cocycles, and coboundaries of level-constant 1-cochains to coboundaries of level-constant 1-cochains. Restricting gives levelCocycles₂Map, a k-linear map between the submodules of level 2-cocycles, and passing to quotients gives continuousH2Map, a k-linear map from the continuous H^2 of (r_H, A) to that of (r_G, B), determined by [x] \mapsto [\varphi \circ x \circ (f \times f)] on classes of level 2-cocycles.
Relation to Mathlib
The cochain-level differential d₁₂ and the submodule cocycles₂ are Mathlib's; the level-constancy conditions, the level cocycles and coboundaries and the quotient continuousH2 are the project's own. The functorial data (f, \varphi) is kept unbundled — a group homomorphism with a pointwise compatibility of level maps, plus a plain linear map with an equivariance hypothesis — rather than packaged as a morphism of representations as in Mathlib's groupCohomology functoriality.
Where it is used
The maps constructed here are the pullback maps on the project's continuous second cohomology: taking f the identity gives change of coefficients, and taking \varphi the identity gives restriction along a subgroup inclusion or a decomposition-group embedding, as needed in the Galois-cohomological parts of the argument.
References
- J.-P. Serre, Galois Cohomology, Springer, 1997
- J. Neukirch, A. Schmidt and K. Wingberg, Cohomology of Number Fields, 2nd ed., Grundlehren der mathematischen Wissenschaften 323, Springer, 2008
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 104 lines
- 16 declarations
- used in the statements of 44 theorems and imported by 68 proofs
- imports 1 definition modules
Source file: Definitions/Def_GroupCohomology_ContinuousH2Map.lean
Imported by
Declarations
- lemma
groupCohomology.IsLevelConstant₁.precomp - lemma
groupCohomology.IsLevelConstant₂.precomp - def
groupCohomology.cochainsPullPush₁ - def
groupCohomology.cochainsPullPush₂ - lemma
groupCohomology.cochainsPullPush₁_apply - lemma
groupCohomology.cochainsPullPush₂_apply - lemma
groupCohomology.cochainsPullPush₂_d₁₂ - lemma
groupCohomology.cochainsPullPush₂_mem_cocycles₂ - lemma
groupCohomology.cochainsPullPush₁_mem_levelCochains₁ - lemma
groupCohomology.cochainsPullPush₂_mem_levelCochains₂ - lemma
groupCohomology.cochainsPullPush₂_mem_levelCocycles₂ - lemma
groupCohomology.cochainsPullPush₂_mem_levelCoboundaries₂ - def
groupCohomology.levelCocycles₂Map - lemma
groupCohomology.coe_levelCocycles₂Map - def
groupCohomology.continuousH2Map - lemma
groupCohomology.continuousH2Map_continuousH2π
Source
import Mathlib import Definitions.Def_GroupCohomology_ContinuousH2 set_option autoImplicit false universe u open CategoryTheory namespace groupCohomology variable {k : Type u} [CommRing k] {G H : Type u} [Group G] [Group H] variable {rH : H →* (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)} {rG : G →* (AlgebraicClosure ℚ ≃ₐ[ℚ] AlgebraicClosure ℚ)} (f : G →* H) (hf : ∀ g, rH (f g) = rG g) section precomp include hf lemma IsLevelConstant₁.precomp {X : Type*} {x : H → X} (hx : IsLevelConstant₁ rH x) : IsLevelConstant₁ rG (x ∘ f) := by obtain ⟨F, hF, h⟩ := hx refine ⟨F, hF, fun g s hs => ?_⟩ simp only [Function.comp_apply, map_mul] exact h (f g) (f s) (by rwa [hf]) lemma IsLevelConstant₂.precomp {X : Type*} {x : H × H → X} (hx : IsLevelConstant₂ rH x) : IsLevelConstant₂ rG (x ∘ Prod.map f f) := by obtain ⟨F, hF, h⟩ := hx refine ⟨F, hF, fun g g' s s' hs hs' => ?_⟩ simp only [Function.comp_apply, Prod.map_apply, map_mul] exact h (f g) (f g') (f s) (f s') (by rwa [hf]) (by rwa [hf]) end precomp variable {A : Rep k H} {B : Rep k G} (φ : A →ₗ[k] B) (hφ : ∀ (g : G) (a : A), φ (A.ρ (f g) a) = B.ρ g (φ a)) def cochainsPullPush₁ : (H → A) →ₗ[k] (G → B) where toFun x := φ ∘ x ∘ f map_add' x y := by ext; simp map_smul' c x := by ext; simp def cochainsPullPush₂ : (H × H → A) →ₗ[k] (G × G → B) where toFun x := φ ∘ x ∘ Prod.map f f map_add' x y := by ext; simp map_smul' c x := by ext; simp @[simp] lemma cochainsPullPush₁_apply (x : H → A) (g : G) : cochainsPullPush₁ f φ x g = φ (x (f g)) := rfl @[simp] lemma cochainsPullPush₂_apply (x : H × H → A) (g : G × G) : cochainsPullPush₂ f φ x g = φ (x (f g.1, f g.2)) := rfl include hφ in lemma cochainsPullPush₂_d₁₂ (x : H → A) : cochainsPullPush₂ f φ ((d₁₂ A).hom x) = (d₁₂ B).hom (cochainsPullPush₁ f φ x) := by ext ⟨g, g'⟩ simp [d₁₂_hom_apply, map_add, map_sub, hφ, map_mul] include hφ in lemma cochainsPullPush₂_mem_cocycles₂ {x : H × H → A} (hx : x ∈ cocycles₂ A) : cochainsPullPush₂ f φ x ∈ cocycles₂ B := by rw [mem_cocycles₂_iff] at hx ⊢ intro g h j simp only [cochainsPullPush₂_apply, map_mul, ← map_add, hx, ← hφ] include hf in lemma cochainsPullPush₁_mem_levelCochains₁ {x : H → A} (hx : x ∈ levelCochains₁ rH A) : cochainsPullPush₁ f φ x ∈ levelCochains₁ rG B := ((IsLevelConstant₁.precomp f hf hx).comp φ :) include hf in lemma cochainsPullPush₂_mem_levelCochains₂ {x : H × H → A} (hx : x ∈ levelCochains₂ rH A) : cochainsPullPush₂ f φ x ∈ levelCochains₂ rG B := ((IsLevelConstant₂.precomp f hf hx).comp φ :) include hf hφ in lemma cochainsPullPush₂_mem_levelCocycles₂ {x : H × H → A} (hx : x ∈ levelCocycles₂ rH A) : cochainsPullPush₂ f φ x ∈ levelCocycles₂ rG B := ⟨cochainsPullPush₂_mem_cocycles₂ f φ hφ hx.1, cochainsPullPush₂_mem_levelCochains₂ f hf φ hx.2⟩ include hf hφ in lemma cochainsPullPush₂_mem_levelCoboundaries₂ {x : H × H → A} (hx : x ∈ levelCoboundaries₂ rH A) : cochainsPullPush₂ f φ x ∈ levelCoboundaries₂ rG B := by obtain ⟨y, hy, rfl⟩ := (mem_levelCoboundaries₂_iff rH A x).1 hx exact (mem_levelCoboundaries₂_iff rG B _).2 ⟨cochainsPullPush₁ f φ y, IsLevelConstant₁.precomp f hf hy |>.comp φ, (cochainsPullPush₂_d₁₂ f φ hφ y).symm⟩ def levelCocycles₂Map : ↥(levelCocycles₂ rH A) →ₗ[k] ↥(levelCocycles₂ rG B) := (cochainsPullPush₂ f φ).restrict fun _ hx => cochainsPullPush₂_mem_levelCocycles₂ f hf φ hφ hx @[simp] lemma coe_levelCocycles₂Map (x : ↥(levelCocycles₂ rH A)) : (levelCocycles₂Map f hf φ hφ x : G × G → B) = cochainsPullPush₂ f φ x := rfl def continuousH2Map : continuousH2 rH A →ₗ[k] continuousH2 rG B := Submodule.mapQ _ _ (levelCocycles₂Map f hf φ hφ) fun _ hx => cochainsPullPush₂_mem_levelCoboundaries₂ f hf φ hφ hx @[simp] lemma continuousH2Map_continuousH2π (x : ↥(levelCocycles₂ rH A)) : continuousH2Map f hf φ hφ (continuousH2π rH A x) = continuousH2π rG B (levelCocycles₂Map f hf φ hφ x) := rfl end groupCohomology
Statements phrased using this module (44)
- Dévissage to trivial lines for continuous H¹ and H²
groupCohomology.finiteDimensional_continuous_of_forall_apply_eq_of_rank_one12 below · depth 14 - Finiteness propagates along the continuous cohomology sequence
groupCohomology.finiteDimensional_continuous_of_shortExact10 below · depth 14 - Degree-one Shapiro lemma for continuous H¹
groupCohomology.nonempty_continuousH1_coind_linearEquiv_continuousH12 below · depth 14 - Invariance of continuous H⁰, H¹, H² under isomorphic data
groupCohomology.nonempty_continuous_linearEquiv_of_mulEquiv0 below · depth 14 - Exactness of C^G → H¹(G,A) → H¹(G,B)
groupCohomology.comp_mem_coboundaries1_iff_exists_invariants_sub_deltaCochain00 below · depth 15 - Exactness at H¹(B) for level-constant cochains
groupCohomology.comp_mem_coboundaries1_iff_exists_isLevelConstant1_sub_comp0 below · depth 15 - Exactness at H² in level-constant cochains, smooth B
groupCohomology.comp_mem_levelCoboundaries2_iff_exists_levelCocycles2_sub_comp1 below · depth 15 - Exactness at H² of the level-constant connecting map
groupCohomology.comp_mem_levelCoboundaries2_iff_exists_sub_deltaCochain10 below · depth 15 - Connecting 0-cochain is a level-constant 1-cocycle
groupCohomology.deltaCochain0_mem_cocycles1_and_isLevelConstant10 below · depth 15 - Exactness at H¹ for level-constant continuous cochains
groupCohomology.deltaCochain1_mem_levelCoboundaries2_iff0 below · depth 15 - Linearity of the connecting map on level-constant 1-cocycles
groupCohomology.exists_linearMap_levelCocycles1_continuousH2_eq_continuousH2pi_deltaCochain13 below · depth 15 - Connecting 2-cochain is independent of the chosen lift
groupCohomology.preimageFun_comp_d12_sub_deltaCochain1_mem_levelCoboundaries20 below · depth 15 - Local Tate duality at q in all three degrees
groupCohomology.bijective_theta_dualTwist_of_primeLocal195 below · depth 16 - Level-constancy of the connecting cochain δ¹(c)
groupCohomology.deltaCochain1_mem_levelCocycles21 below · depth 16 - Existence of θ⁰ and θ² for an equivariant pairing
groupCohomology.exists_theta0_and_theta20 below · depth 16 - Existence of the bidegree-(1,1) cup-product duality map
groupCohomology.exists_theta13 below · depth 16 - Local Tate duality over open subgroups of G_{ℚ_q}
groupCohomology.bijective_theta_dualTwist_of_isOpen196 below · depth 17 - Descent of local duality along a subgroup of index prime to p
groupCohomology.bijective_theta_dualTwist_of_res135 below · depth 17 - Local Tate duality at a Sylow level
groupCohomology.bijective_theta_dualTwist_of_sylowLevel186 below · depth 17 - Local Euler–Poincaré identity from five named inputs
groupCohomology.euler_poincare_identity_of_hypotheses26 below · depth 17 - Tame local Euler characteristic for subgroups of Gₚ
groupCohomology.finrank_continuousH1_eq_invariants_add_dualTwist_add_index_mul_of_tame66 below · depth 17 - Bijectivity of θ⁰ and θ² for a trivial 𝔽ₚ-line
groupCohomology.bijective_theta0_theta2_of_trivial_line_of_isOpen115 below · depth 18 - Local duality in degree one for a trivial line
groupCohomology.bijective_theta1_of_trivial_line_of_isOpen102 below · depth 18 - Shapiro transport of duality to a coinduced pair
groupCohomology.bijective_theta_coind7 below · depth 18 - Local duality over S descends from a subgroup of index prime to p
groupCohomology.bijective_theta_dualTwist_of_res_of_isOpen20 below · depth 18 - Duality maps transfer along a compatible group isomorphism
groupCohomology.bijective_theta_of_mulEquiv0 below · depth 18 - Duality maps descend to retracts of dual pairs
groupCohomology.bijective_theta_of_retract1 below · depth 18 - Continuous duality passes to extensions of representations
groupCohomology.bijective_theta_of_shortExact15 below · depth 18 - Continuous Kummer map H²(G_K,μₚ)→ H²(G_K,Ω^×): injective with p-torsion image
groupCohomology.continuousH2Map_kummerRep_injective_and_range_iff_smul_eq_zero15 below · depth 18 - Uniform killing of level 2-cocycles in a higher unramified layer
groupCohomology.exists_forall_restrict_comap_rootsOfUnity_mem_levelCoboundaries2_of_primeLocal157 below · depth 18 - A Sylow p-level inside an open subgroup of G_{ℚ_q}
groupCohomology.exists_level_sylow_of_isOpen9 below · depth 18 - Dimensions of invariants, twisted duals and continuous H¹ under group transport
groupCohomology.finrank_continuousH1_res_mulEquiv_symm_eq1 below · depth 18 - Invariants and continuous H¹, H² under reindexing S'≤ S
groupCohomology.finrank_continuous_res_subgroupOf_eq_res_inclusion0 below · depth 18 - Euler characteristic of a coinduced module multiplies by p
groupCohomology.finrank_euler_coind_res_index_eq_mul14 below · depth 18 - Additivity of continuous Euler characteristics in short exact sequences
groupCohomology.finrank_euler_even_eq_odd_of_continuousH2MapHom_surjective12 below · depth 18 - Continuous Shapiro isomorphism in degree two for open S
groupCohomology.nonempty_continuousH2_coind_linearEquiv_continuousH22 below · depth 18 - Exactness at C^G of the connecting sequence
groupCohomology.deltaCochain0_mem_coboundaries1_iff0 below · depth 19 - A uniform level killing all continuous H² classes
groupCohomology.exists_forall_restrict_comap_mem_levelCoboundaries2_of_finiteDimensional0 below · depth 19 - Cyclic cokernel for S-localisation of H²(G_{F,S},ℤ/p)
groupCohomology.exists_forall_eq_res_continuousH2Sr_trivial_add_smul_of_exists_sq_eq_neg_one533 below · depth 20 - Restriction on continuous H² is injective when [G:S] is invertible
groupCohomology.continuousH2Map_res_injective_of_isUnit_index2 below · depth 21 - Corank at most one for S-localisation of H²(Γ_F,mathcal O_S^×)[p]
groupCohomology.exists_forall_eq_res_continuousH2Sr_galoisSUnitsRep_add_zsmul_of_sq_eq_neg_one527 below · depth 21 - Hasse principle for p-torsion of H²(Γ_F,mathcal O_S^×)
groupCohomology.continuousH2Sr_galoisSUnitsRep_eq_zero_of_forall_res_extArithIndex_eq_zero270 below · depth 22 - Product of local H² p-torsion bounded via global S-units
groupCohomology.finprod_natCard_torsionBy_continuousH2_le_mul_natCard_torsionBy_continuousH2Sr_galoisSUnitsRep_of_sq_eq_neg_one513 below · depth 22 - Hasse principle for 2-torsion classes split by F(i)
groupCohomology.continuousH2Sr_galoisSUnitsRep_eq_zero_of_res_adjoin_sqrt_neg_one_eq_zero266 below · depth 23