Documentation

TauCeti.Algebra.CrossedProduct.Cohomology

Cohomology classes of crossed-product cocycles #

A TwoCocycle K L is the multiplicative form of an inhomogeneous 2-cocycle of Aut_K(L) with values in Lˣ. This file connects that explicit object to Mathlib's second group cohomology. The map TwoCocycle.cohomologyClass reads a crossed-product cocycle as a class in H²(Aut_K(L), Lˣ), and TwoCocycle.cohomologyClass_eq_iff proves that equality of classes is exactly the explicit coboundary relation already used by crossed products.

Consequently TwoCocycle.cohomologyClassEquiv identifies H²(Aut_K(L), Lˣ) with explicit 2-cocycles modulo TwoCocycle.Cohomologous. This is the finite-cohomology input needed to apply the Hilbert 90 injectivity theorem to the classification of crossed-product Brauer classes.

Universes #

Mathlib's multiplicative interface to groupCohomology.cocycles₂ (cocyclesOfIsMulCocycle₂, coboundariesOfIsMulCoboundary₂, isMulCoboundary₂_of_mem_coboundaries₂) is stated for an acting group and coefficient group in Type. This comes from Mathlib's low-degree group cohomology, which requires the acting group to share the universe of the coefficient ring, here ℤ : Type. The underlying TwoCocycle and CrossedProduct definitions remain universe-polymorphic; only their comparison with groupCohomology has this restriction.

Main results #

References #

The construction adapts the factor-set classification of TauCeti/GroupTheory/GroupExtension/Cohomology.lean (TauCeti.FactorSet.toCocycles₂, TauCeti.FactorSet.cohomologyClass_eq_iff, TauCeti.FactorSet.cohomologyClassEquiv) from normalized factor sets of an arbitrary group to the unnormalized cocycles of Aut_K(L) used by crossed products; since those cocycles are not normalized, no normalization step is needed for surjectivity.

A crossed-product 2-cocycle, read as a 2-cocycle valued in Additive Lˣ.

Equations
Instances For
    @[simp]
    theorem TauCeti.TwoCocycle.coe_toCocycles₂ {K L : Type} [CommSemiring K] [CommRing L] [Algebra K L] (z : TwoCocycle K L) :
    ⇑z.toCocycles₂ = fun (p : (L ≃ₐ[K] L) × L ≃ₐ[K] L) => Additive.ofMul (z.toFun p.1 p.2)

    The additive cocycle underlying z evaluates to Additive.ofMul (z(σ, τ)).

    The class in H²(Aut_K(L), Lˣ) represented by a crossed-product 2-cocycle.

    Equations
    Instances For

      The cohomology class of z is the image of its underlying additive cocycle.

      theorem TauCeti.TwoCocycle.coe_toCocycles₂_sub {K L : Type} [CommSemiring K] [CommRing L] [Algebra K L] (z w : TwoCocycle K L) :
      ⇑w.toCocycles₂ - ⇑z.toCocycles₂ = fun (p : (L ≃ₐ[K] L) × L ≃ₐ[K] L) => Additive.ofMul (w.toFun p.1 p.2 / z.toFun p.1 p.2)

      The pointwise quotient of two multiplicative cocycles is the difference of their additive counterparts.

      Two crossed-product cocycles represent the same class in H²(Aut_K(L), Lˣ) exactly when they are cohomologous.

      @[simp]

      The explicit cohomologous relation is equality of second cohomology classes.

      Every class in H²(Aut_K(L), Lˣ) is represented by an explicit crossed-product 2-cocycle.

      The setoid of cohomologous crossed-product 2-cocycles, presented as the kernel of their cohomology class.

      Equations
      Instances For
        @[simp]

        The relation of TwoCocycle.cohomologousSetoid is TwoCocycle.Cohomologous.

        Second group cohomology classifies crossed-product 2-cocycles modulo coboundaries.

        Equations
        Instances For
          @[simp]

          TwoCocycle.cohomologyClassEquiv sends the class of a cocycle to its cohomology class.