Definitions/Def_GroupCohomology_CyclicCarry.lean
Discrete logarithm, carry 2-cochain and cyclic invariant
Three definitions set up an explicit cochain calculus for a finite cyclic group. Throughout, G is a group, s \in G an element with the hypotheses hs, that every g \in G lies in Subgroup.zpowers s, and hfin, that s has finite order; thus G is cyclic of order n = orderOf s, generated by s.
cyclicLog s hs hfin g is the discrete logarithm of g to base s, a natural number: it is obtained by transporting g, viewed as an element of the subgroup of powers of s via hs, through the inverse of Mathlib's bijection finEquivZPowers between Fin (orderOf s) and that subgroup, and then coercing to \mathbb{N}. So it is the unique exponent in [0, n) with s^{\mathrm{cyclicLog}(g)} = g.
For a representation A of G over \mathbb{Z} and an element a of A, carryFun s hs hfin a is the inhomogeneous 2-cochain G \times G \to A whose value at (g, h) is a when n \le \mathrm{cyclicLog}(g) + \mathrm{cyclicLog}(h) and 0 otherwise: the "carry" occurring when the two logarithms are added in \mathbb{Z}/n.
In the other direction, cyclicInv s c, defined for an arbitrary function c : G \times G \to A, is the element \sum_{i < n} c(s^i, s) of A; on a 2-cocycle this is the classical cyclic invariant, and it depends on s only through s itself and n.
Relation to Mathlib
The discrete logarithm is read off from Mathlib's finEquivZPowers; the carry cochain and the cyclic invariant of a 2-cochain are the project's own notions, with no Mathlib counterpart.
Where it is used
These cochains support the explicit description of H^2 of a finite cyclic group: every 2-cocycle is cohomologous to the carry cocycle attached to its cyclic invariant, carry classes add, vanish exactly on norms, and transform predictably under restriction to a subgroup \langle s^f \rangle. This is the computational form in which the cyclic-group (local) cohomology input to the Galois-cohomological arguments is handled.
References
- J.-P. Serre, Local Fields, Graduate Texts in Mathematics 67, Springer, 1979
- J. Neukirch, A. Schmidt and K. Wingberg, Cohomology of Number Fields, Grundlehren der mathematischen Wissenschaften 323, Springer, 2nd ed., 2008
References are suggested automatically and have not been individually verified.
English text generated automatically from the Lean source; the Lean statement is authoritative.
- 26 lines
- 3 declarations
- used in the statements of 29 theorems and imported by 45 proofs
- imports 0 definition modules
Source file: Definitions/Def_GroupCohomology_CyclicCarry.lean
Imports
- only Mathlib
Declarations
Source
import Mathlib set_option autoImplicit false open CategoryTheory groupCohomology namespace groupCohomology section Carry variable {G : Type} [Group G] noncomputable def cyclicLog (s : G) (hs : ∀ g : G, g ∈ Subgroup.zpowers s) (hfin : IsOfFinOrder s) (g : G) : ℕ := ((finEquivZPowers hfin).symm ⟨g, hs g⟩ : Fin (orderOf s)) noncomputable def carryFun (s : G) (hs : ∀ g : G, g ∈ Subgroup.zpowers s) (hfin : IsOfFinOrder s) {A : Rep ℤ G} (a : A) : G × G → A := fun p => if orderOf s ≤ cyclicLog s hs hfin p.1 + cyclicLog s hs hfin p.2 then a else 0 noncomputable def cyclicInv (s : G) {A : Rep ℤ G} (c : G × G → A) : A := ∑ i ∈ Finset.range (orderOf s), c (s ^ i, s) end Carry end groupCohomology
Statements phrased using this module (29)
- Inflated 2-cocycle with p-torsion coefficients is a coboundary
groupCohomology.exists_eq_d12_of_invariant_of_mul_dvd_orderOf2 below · depth 16 - Pairing cochain χsmileκₐ differs from inflated carry by a level coboundary
groupCohomology.smul_kummerCocycle_sub_unitsInflate2_carryFun_mem_levelCoboundaries20 below · depth 16 - Every 2-cocycle of a finite cyclic group is cohomologous to a carry cocycle
groupCohomology.exists_carry_H2pi_eq1 below · depth 17 - Local norm index via carry classes in H²(D_w, F_w^×)
NumberField.PlaceDecomp.exists_carryClassHom_surjective_ker_eq_norms_adicCompletion101 below · depth 18 - The carry 2-cochain of a cyclic group is a cocycle
groupCohomology.carryFun_mem_cocycles20 below · depth 18 - Carry class in H² vanishes iff the element is a norm
groupCohomology.carry_H2pi_eq_zero_iff0 below · depth 18 - Local–global compatibility of the idelic Artin map at w
M4aHerbrand.exists_localCoordinate_carry_eq_zsmul_and_div_natCard_decomp_eq_of_idelicArtinMap241 below · depth 19 - Restriction multiplies a carry class by f/gcd(ord s,f)
groupCohomology.map_carry_H2pi_eq_smul_carry3 below · depth 19 - Invariant isomorphism for H² of an unramified sub-layer
ExtCitation.LocalLevel.exists_addEquiv_H2_quotientToInvariants_units_zmod_forall_carryFun36 below · depth 20 - Fixed field of a finite group acting on a q-adic layer
ExtCitation.LocalLevel.exists_intermediateField_forall_mem_iff_smul_eq0 below · depth 20 - Galois over-layer carrying the unramified level of degree n
ExtCitation.LocalLevel.exists_overlayer_unramified_level23 below · depth 20 - Degree of a faithful layer: [L:ℚ_q]=|G| [K:ℚ_q]
ExtCitation.LocalLevel.finrank_eq_natCard_mul_finrank_of_forall_mem_iff_smul_eq0 below · depth 20 - Hilbert 90 for units along an injective restriction
ExtCitation.LocalLevel.isZero_groupCohomology_one_res_units1 below · depth 20 - Equality of inflation images: solvable layer versus unramified layer
ExtCitation.LocalLevel.range_infNatTrans_eq_of_unramified_level68 below · depth 20 - Local Artin map computes carry classes on an enlarged layer
M4aHerbrand.exists_mk_localArtin_eq_pow_and_infNatTrans_carryFun_eq_smul_of_enlargedLayer220 below · depth 20 - Unramified levels of equal index coincide
ExtCitation.LocalLevel.eq_of_unramified_level_of_index_eq7 below · depth 21 - A common Galois overlayer for two finite layers
ExtCitation.LocalLevel.exists_common_overlayer0 below · depth 21 - Frobenius and uniformiser for an unramified level over L^S
ExtCitation.LocalLevel.exists_frobenius_uniformiser_inf_level21 below · depth 21 - Ramification index, residue degree and ψ ≡ φ^f mod N
ExtCitation.LocalLevel.exists_ramificationIdx_inertiaDeg_mk_eq_mk_pow7 below · depth 21 - Unramified layer of degree n with Frobenius and uniformiser
ExtCitation.LocalLevel.exists_unramified_layer_frobenius_uniformiser21 below · depth 21 - Restriction multiplies the local invariant by the index [G:S]
ExtCitation.LocalLevel.inv_res_inf_eq_index_smul_inv16 below · depth 21 - Triviality of inertia at an unramified level
ExtCitation.LocalLevel.mem_of_unramified_level_of_forall_norm_smul_sub_lt_one5 below · depth 21 - Additivity in a of the cyclic carry class in H²
groupCohomology.carry_H2pi_add0 below · depth 21 - Inflation multiplies a cyclic carry class by |N|
groupCohomology.infNatTrans_app_H2pi_carryFun_eq_card_nsmul2 below · depth 21 - Inflated carry cochain restricts to a level coboundary over E
groupCohomology.unitsInflate2_carryFun_restrict_mem_levelCoboundaries2_of_dvd53 below · depth 21 - Fixed field of N∩ S lies in a cyclotomic layer over K'
ExtCitation.LocalLevel.mem_adjoin_rootsOfUnity_of_forall_inf_smul_eq6 below · depth 22 - A carry class generating H² of the idèle class group
M4aHerbrand.exists_addOrderOf_carry_eq_card_and_span_eq_top_ideleClassGroup_of_isCyclic160 below · depth 22 - Carry class upstairs plus a norm condition forces H²(Γ/S,C^S) cyclic of order [Γ:S]
groupCohomology.exists_natCard_H2_eq_and_span_eq_top_of_carry_of_exists_norm_eq6 below · depth 22 - Vanishing of the restricted carry class when [K_N:K]∣[E:K]
groupCohomology.map_carryFun_adjoin_rootsOfUnity_eq_zero_of_dvd50 below · depth 22