Documentation

Mathlib.CategoryTheory.GlueData

Gluing data #

We define GlueData as a family of data needed to glue topological spaces, schemes, etc. We provide the API to realize it as a multispan diagram, and also states lemmas about its interaction with a functor that preserves certain pullbacks.

structure CategoryTheory.GlueData (C : Type u₁) [CategoryTheory.Category.{v, u₁} C] :
Type (max u₁ (v + 1))

A gluing datum consists of

  1. An index type J
  2. An object U i for each i : J.
  3. An object V i j for each i j : J.
  4. A monomorphism f i j : V i j ⟶ U i for each i j : J.
  5. A transition map t i j : V i j ⟶ V j i for each i j : J. such that
  6. f i i is an isomorphism.
  7. t i i is the identity.
  8. The pullback for f i j and f i k exists.
  9. V i j ×[U i] V i k ⟶ V i j ⟶ V j i factors through V j k ×[U j] V j i ⟶ V j i via some t' : V i j ×[U i] V i k ⟶ V j k ×[U j] V j i.
  10. t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.
Instances For
    theorem CategoryTheory.GlueData.cocycle_assoc {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (self : CategoryTheory.GlueData C) (i : self.J) (j : self.J) (k : self.J) {Z : C} (h : CategoryTheory.Limits.pullback (self.f i j) (self.f i k) Z) :
    theorem CategoryTheory.GlueData.t_fac_assoc {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (self : CategoryTheory.GlueData C) (i : self.J) (j : self.J) (k : self.J) {Z : C} (h : self.V (j, i) Z) :
    CategoryTheory.CategoryStruct.comp (self.t' i j k) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.snd h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (self.t i j) h)
    @[simp]
    theorem CategoryTheory.GlueData.t'_iij {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (D : CategoryTheory.GlueData C) (i : D.J) (j : D.J) :
    D.t' i i j = (CategoryTheory.Limits.pullbackSymmetry (D.f i i) (D.f i j)).hom
    theorem CategoryTheory.GlueData.t'_jii {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (D : CategoryTheory.GlueData C) (i : D.J) (j : D.J) :
    D.t' j i i = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (D.t j i) (CategoryTheory.inv CategoryTheory.Limits.pullback.snd))
    theorem CategoryTheory.GlueData.t'_iji {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (D : CategoryTheory.GlueData C) (i : D.J) (j : D.J) :
    D.t' i j i = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (CategoryTheory.CategoryStruct.comp (D.t i j) (CategoryTheory.inv CategoryTheory.Limits.pullback.snd))
    @[simp]
    theorem CategoryTheory.GlueData.t_inv_apply {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (D : CategoryTheory.GlueData C) (i : D.J) (j : D.J) [inst : CategoryTheory.ConcreteCategory C] (x : (CategoryTheory.forget C).toPrefunctor.obj (D.V (i, j))) :
    (D.t j i) ((D.t i j) x) = x
    Equations
    instance CategoryTheory.GlueData.t'_isIso {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] (D : CategoryTheory.GlueData C) (i : D.J) (j : D.J) (k : D.J) :
    Equations

    (Implementation) The diagram to take colimit of.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The pullback cone spanned by V i j ⟶ U i and V i j ⟶ U j. This will often be a pullback diagram.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem CategoryTheory.GlueData.mapGlueData_t {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {C' : Type u₂} [CategoryTheory.Category.{v, u₂} C'] (D : CategoryTheory.GlueData C) (F : CategoryTheory.Functor C C') [H : (i j k : D.J) → CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan (D.f i j) (D.f i k)) F] (i : D.J) (j : D.J) :
        (CategoryTheory.GlueData.mapGlueData D F).t i j = F.toPrefunctor.map (D.t i j)
        @[simp]
        theorem CategoryTheory.GlueData.mapGlueData_f {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {C' : Type u₂} [CategoryTheory.Category.{v, u₂} C'] (D : CategoryTheory.GlueData C) (F : CategoryTheory.Functor C C') [H : (i j k : D.J) → CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.cospan (D.f i j) (D.f i k)) F] (i : D.J) (j : D.J) :
        (CategoryTheory.GlueData.mapGlueData D F).f i j = F.toPrefunctor.map (D.f i j)
        @[simp]

        A functor that preserves the pullbacks of f i j and f i k can map a family of glue data.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          The diagram of the image of a GlueData under a functor F is naturally isomorphic to the original diagram of the GlueData via F.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            If there is a forgetful functor into Type that preserves enough (co)limits, then D.ι will be jointly surjective.