Documentation

Mathlib.CategoryTheory.Limits.Types.Colimits

Colimits in the category of types #

We show that the category of types has all colimits, by providing the usual concrete models.

If F : J ⥤ Type u, then the data of a "type-theoretic" cocone of F with a point in Type u is the same as the data of a cocone (in a categorical sense).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[reducible, inline]

    (internal implementation) the colimit cocone of a functor, implemented as a quotient of a sigma type

    Equations
    Instances For

      (internal implementation) the fact that the proposed colimit cocone is the colimit

      Equations
      Instances For
        @[instance 1300]

        The category of types has all colimits.

        @[reducible, inline]

        (internal implementation) the colimit cocone of a functor, implemented as a quotient of a sigma type

        Equations
        Instances For

          (internal implementation) the fact that the proposed colimit cocone is the colimit

          Equations
          Instances For

            The equivalence between the abstract colimit of F in TypeCat u and the "concrete" definition as a quotient.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.Limits.colimit.ι_desc_apply {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u} [Category.{v, u} C] {F : Functor J C} [HasColimit F] (c : Cocone F) (j : J) {F✝ : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F✝ X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F✝] (x : carrier (F.obj j)) :
              @[simp]
              theorem CategoryTheory.Limits.colimit.ι_map_apply {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u} [Category.{v, u} C] {F : Functor J C} [HasColimitsOfShape J C] {G : Functor J C} (α : F G) (j : J) {F✝ : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F✝ X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F✝] (x : carrier (F.obj j)) :
              @[simp]
              theorem CategoryTheory.Limits.colimit.w_apply {J : Type u₁} [Category.{v₁, u₁} J] {C : Type u} [Category.{v, u} C] (F : Functor J C) [HasColimit F] {j j' : J} (f : j j') {F✝ : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F✝ X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F✝] (x : carrier (F.obj j)) :
              @[deprecated CategoryTheory.Limits.colimit.w_apply (since := "2026-03-06")]
              @[deprecated CategoryTheory.Limits.colimit.ι_desc_apply (since := "2026-03-06")]
              @[deprecated CategoryTheory.Limits.colimit.ι_map_apply (since := "2026-03-06")]
              theorem CategoryTheory.Limits.Types.colimit_sound {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j j') (w : (ConcreteCategory.hom (F.map f)) x = x') :
              theorem CategoryTheory.Limits.Types.colimit_sound' {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J} (f : j j'') (f' : j' j'') (w : (ConcreteCategory.hom (F.map f)) x = (ConcreteCategory.hom (F.map f')) x') :
              theorem CategoryTheory.Limits.Types.jointly_surjective_of_isColimit {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} {t : Cocone F} (h : IsColimit t) (x : t.pt) :
              ∃ (j : J) (y : (fun (X : Type u) => X) (F.obj j)), (ConcreteCategory.hom (t.ι.app j)) y = x
              theorem CategoryTheory.Limits.Types.jointly_surjective {J : Type v} [Category.{w, v} J] (F : Functor J (Type u)) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
              ∃ (j : J) (y : F.obj j), (ConcreteCategory.hom (t.ι.app j)) y = x
              theorem CategoryTheory.Limits.Types.jointly_surjective' {J : Type v} [Category.{w, v} J] {F : Functor J (Type u)} [HasColimit F] (x : colimit F) :
              ∃ (j : J) (y : F.obj j), (ConcreteCategory.hom (colimit.ι F j)) y = x

              A variant of jointly_surjective for x : colimit F.

              If a colimit is nonempty, also its index category is nonempty.