Documentation

DerivedAlgGeo.CategoryTheory.Sites.SheafCohomology.Cech.Differential

The Čech differential in coordinates #

Mathlib defines the Čech complex of a presheaf as alternatingCofaceMapComplex applied to the cosimplicial object attached to the Čech nerve of a formal coproduct. That definition is compact but says nothing directly about components: it never names the index of a cochain, nor the restriction that carries a face into it.

This file supplies that reading. cechComplexFunctor_delta_π computes one coface at one index, and cechComplexFunctor_d_π assembles the alternating sum. Both are statements about Mathlib's construction, so they live in Mathlib's namespace.

Main statements #

Implementation notes #

The projections are stated in the shape Mathlib's construction produces, indexed by ToType (mk n) → ι with the object written through the Čech nerve rather than as ∏ᶜ (U ∘ x). A caller-friendly restatement belongs downstream, together with the identification of the intersection.

Both proofs finish with exact rather than rw. The two sides differ in the HasProduct instance argument that Pi.π carries, which rw will not see through but definitional unification will. Rewriting with Pi.lift_π fails here for that reason alone.

Fin.succAbove needs no reindexing lemma: SimplexCategory.δ j has toOrderHom = Fin.succAbove j, so this is the shape the Čech nerve already produces via FormalCoproduct.mapPower.

@[reducible, inline]

The Čech nerve of the family U, as a simplicial formal coproduct.

Equations
Instances For
    @[reducible, inline]
    noncomputable abbrev CategoryTheory.cechCosimplicial {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] [Limits.HasProducts A] [Limits.HasFiniteProducts C] {ι : Type w} (U : ι → C) (P : Functor Cᵒᵖ A) :

    The Čech cosimplicial object of a presheaf against the nerve of U.

    Equations
    Instances For
      @[reducible, inline]
      noncomputable abbrev CategoryTheory.cechTermFamily {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] [Limits.HasFiniteProducts C] {ι : Type w} (U : ι → C) (P : Functor Cᵒᵖ A) (n : ℕ) :
      (ToType { len := n } → ι) → A

      Degree-n Čech cochains, in the shape Mathlib's construction produces.

      Equations
      Instances For

        The j-th coface, projected at the index x, is the projection at the face index (cech.map (δ j).op).f x = x ∘ j.succAbove followed by the presheaf on the face inclusion.

        Preadditivity plays no part here — only the alternating sum in cechComplexFunctor_d_π needs it.

        theorem CategoryTheory.cechComplexFunctor_map_f_π {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] [Limits.HasProducts A] [Limits.HasFiniteProducts C] [Preadditive A] {ι : Type w} (U : ι → C) {F G : Functor Cᵒᵖ A} (φ : F ⟶ G) (n : ℕ) (x : ToType { len := n } → ι) :

        The map a morphism of presheaves induces on Čech cochains, projected at the index x, is the projection at x followed by the morphism on that intersection.

        evalOp sends a morphism to Pi.map componentwise, so once the two sides are recognised as a Pi.map and its projection this is Pi.map_π. The recognition is rfl rather than a rewrite: cechComplexFunctor reaches evalOp through two functor compositions, and only definitional unfolding crosses them.

        Unlike cechComplexFunctor_delta_π this cannot omit Preadditive A: it names cechComplexFunctor itself, whose target CochainComplex A ℕ needs the zero morphisms.

        theorem CategoryTheory.cechComplexFunctor_d_π {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] [Limits.HasProducts A] [Limits.HasFiniteProducts C] [Preadditive A] {ι : Type w} (U : ι → C) (P : Functor Cᵒᵖ A) {n : ℕ} (x : ToType { len := n + 1 } → ι) :

        The Čech differential, projected at the index x, is the alternating sum of the face restrictions. This is the formula a concrete computation of Hⁱ consumes.