Documentation

Mathlib.CategoryTheory.Limits.Presentation

(Co)limit presentations #

Let J and C be categories and X : C. We define type ColimitPresentation J X that contains the data of objects Dⱼ and natural maps sⱼ : Dⱼ ⟶ X that make X the colimit of the Dⱼ.

Main definitions: #

TODOs: #

structure CategoryTheory.Limits.ColimitPresentation {C : Type u} [Category.{v, u} C] (J : Type w) [Category.{t, w} J] (X : C) :
Type (max (max (max t u) v) w)

A colimit presentation of X over J is a diagram {Dᵢ} in C and natural maps sᵢ : Dᵢ ⟶ X making X into the colimit of the Dᵢ.

Instances For
    @[reducible, inline]

    The cocone associated to a colimit presentation.

    Equations
    Instances For

      The canonical colimit presentation of any object over a point.

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

        If F preserves colimits of shape J, it maps colimit presentations of X to colimit presentations of F(X).

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

          Map a colimit presentation under an isomorphism.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem CategoryTheory.Limits.ColimitPresentation.ofIso_diag {C : Type u} [Category.{v, u} C] {J : Type w} [Category.{t, w} J] {X : C} (P : ColimitPresentation J X) {Y : C} (e : X Y) :
            (P.ofIso e).diag = P.diag
            def CategoryTheory.Limits.ColimitPresentation.Total {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} (P : (j : J) → ColimitPresentation (I j) (D.obj j)) :
            Type (max u_2 u_1)

            The type underlying the category used in the construction of the composition of colimit presentations. This is simply Σ j, I j but with a different category structure.

            Equations
            Instances For
              @[reducible, inline]
              abbrev CategoryTheory.Limits.ColimitPresentation.Total.mk {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} (P : (j : J) → ColimitPresentation (I j) (D.obj j)) (i : J) (k : I i) :

              Constructor for Total to guide type checking.

              Equations
              Instances For
                structure CategoryTheory.Limits.ColimitPresentation.Total.Hom {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} (k l : Total P) :
                Type (max u_3 v)

                Morphisms in the Total category.

                Instances For
                  theorem CategoryTheory.Limits.ColimitPresentation.Total.Hom.ext {C : Type u} {inst✝ : Category.{v, u} C} {J : Type u_1} {I : JType u_2} {inst✝¹ : Category.{u_3, u_1} J} {inst✝² : (j : J) → Category.{u_4, u_2} (I j)} {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {k l : Total P} {x y : k.Hom l} (base : x.base = y.base) (hom : x.hom = y.hom) :
                  x = y
                  theorem CategoryTheory.Limits.ColimitPresentation.Total.Hom.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {J : Type u_1} {I : JType u_2} {inst✝¹ : Category.{u_3, u_1} J} {inst✝² : (j : J) → Category.{u_4, u_2} (I j)} {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {k l : Total P} {x y : k.Hom l} :
                  x = y x.base = y.base x.hom = y.hom
                  theorem CategoryTheory.Limits.ColimitPresentation.Total.Hom.w_assoc {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {k l : Total P} (self : k.Hom l) {Z : C} (h : D.obj l.fst Z) :
                  def CategoryTheory.Limits.ColimitPresentation.Total.Hom.comp {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {k l m : Total P} (f : k.Hom l) (g : l.Hom m) :
                  k.Hom m

                  Composition of morphisms in the Total category.

                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.Limits.ColimitPresentation.Total.Hom.comp_hom {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {k l m : Total P} (f : k.Hom l) (g : l.Hom m) :
                    @[simp]
                    theorem CategoryTheory.Limits.ColimitPresentation.Total.Hom.comp_base {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {k l m : Total P} (f : k.Hom l) (g : l.Hom m) :
                    Equations
                    • One or more equations did not get rendered due to their size.
                    @[simp]
                    theorem CategoryTheory.Limits.ColimitPresentation.id_base {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} (x✝ : Total P) :
                    @[simp]
                    theorem CategoryTheory.Limits.ColimitPresentation.id_hom {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} (x✝ : Total P) :
                    @[simp]
                    theorem CategoryTheory.Limits.ColimitPresentation.comp_base {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {X✝ Y✝ Z✝ : Total P} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
                    @[simp]
                    theorem CategoryTheory.Limits.ColimitPresentation.comp_hom {C : Type u} [Category.{v, u} C] {J : Type u_1} {I : JType u_2} [Category.{u_3, u_1} J] [(j : J) → Category.{u_4, u_2} (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {X✝ Y✝ Z✝ : Total P} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
                    theorem CategoryTheory.Limits.ColimitPresentation.Total.exists_hom_of_hom {C : Type u} [Category.{v, u} C] {J : Type w} {I : JType w} [SmallCategory J] [(j : J) → SmallCategory (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} {j j' : J} (i : I j) (u : j j') [IsFiltered (I j')] [IsFinitelyPresentable ((P j).diag.obj i)] :
                    ∃ (i' : I j') (f : mk P j i mk P j' i'), f.base = u
                    instance CategoryTheory.Limits.ColimitPresentation.instNonemptyTotalOfIsFiltered {C : Type u} [Category.{v, u} C] {J : Type w} {I : JType w} [SmallCategory J] [(j : J) → SmallCategory (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} [IsFiltered J] [∀ (j : J), IsFiltered (I j)] :
                    instance CategoryTheory.Limits.ColimitPresentation.instIsFilteredTotalOfIsFinitelyPresentableObjDiag {C : Type u} [Category.{v, u} C] {J : Type w} {I : JType w} [SmallCategory J] [(j : J) → SmallCategory (I j)] {D : Functor J C} {P : (j : J) → ColimitPresentation (I j) (D.obj j)} [IsFiltered J] [∀ (j : J), IsFiltered (I j)] [∀ (j : J) (i : I j), IsFinitelyPresentable ((P j).diag.obj i)] :
                    def CategoryTheory.Limits.ColimitPresentation.bind {C : Type u} [Category.{v, u} C] {J : Type w} {I : JType w} [SmallCategory J] [(j : J) → SmallCategory (I j)] {X : C} (P : ColimitPresentation J X) (Q : (j : J) → ColimitPresentation (I j) (P.diag.obj j)) [∀ (j : J), IsFiltered (I j)] [∀ (j : J) (i : I j), IsFinitelyPresentable ((Q j).diag.obj i)] :

                    If P is a colimit presentation over J of X and for every j we are given a colimit presentation Qⱼ over I j of the P.diag.obj j, this is the refined colimit presentation of X over Total Q.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Limits.ColimitPresentation.bind_ι_app {C : Type u} [Category.{v, u} C] {J : Type w} {I : JType w} [SmallCategory J] [(j : J) → SmallCategory (I j)] {X : C} (P : ColimitPresentation J X) (Q : (j : J) → ColimitPresentation (I j) (P.diag.obj j)) [∀ (j : J), IsFiltered (I j)] [∀ (j : J) (i : I j), IsFinitelyPresentable ((Q j).diag.obj i)] (k : Total Q) :
                      (P.bind Q).ι.app k = CategoryStruct.comp ((Q k.fst).ι.app k.snd) (P.ι.app k.fst)
                      @[simp]
                      theorem CategoryTheory.Limits.ColimitPresentation.bind_diag_obj {C : Type u} [Category.{v, u} C] {J : Type w} {I : JType w} [SmallCategory J] [(j : J) → SmallCategory (I j)] {X : C} (P : ColimitPresentation J X) (Q : (j : J) → ColimitPresentation (I j) (P.diag.obj j)) [∀ (j : J), IsFiltered (I j)] [∀ (j : J) (i : I j), IsFinitelyPresentable ((Q j).diag.obj i)] (k : Total Q) :
                      (P.bind Q).diag.obj k = (Q k.fst).diag.obj k.snd
                      @[simp]
                      theorem CategoryTheory.Limits.ColimitPresentation.bind_diag_map {C : Type u} [Category.{v, u} C] {J : Type w} {I : JType w} [SmallCategory J] [(j : J) → SmallCategory (I j)] {X : C} (P : ColimitPresentation J X) (Q : (j : J) → ColimitPresentation (I j) (P.diag.obj j)) [∀ (j : J), IsFiltered (I j)] [∀ (j : J) (i : I j), IsFinitelyPresentable ((Q j).diag.obj i)] {k l : Total Q} (f : k l) :
                      (P.bind Q).diag.map f = f.hom