Documentation

GroupoidModel.FibrationForMathlib.Displayed.Basic

Displayed category #

Given a type family F : C → Type* on a category C we define the type class Display F of displayed categories over F. A displayed category structure associates to each morphism f in C and terms X : F I and Y : F J a type HomOver f X Y. We think of F I as the Fiber over I, and we think of HomOver f X Y as the type of morphisms lying over f starting from X and ending at Y. The data of a displayed category structure also provides the dependent operations of identity and composition for HomOver. Finally, the modified laws of associativity and unitality hold dependently over the associativity and unitality equalities in C.

Main declarations #

Our main construction is the displayed category of a functor. Given a functor P : E ⥤ C, the associated displayed category on the fiber family fun I => P⁻¹ I is provided by the instance Functor.display. Here HomOver f X Y is given by the type BasedLift f src tgt carrying data witnessing morphisms in E starting from src and ending at tgt and are mapped to f under P.

There is another displayed structure EBasedLift associated to a functor P : E ⥤ C which is defined in terms of the displayed family of "fat" fibers, namely fun I => P⁻¹ᵉ I where P⁻¹ᵉ I is the fibers of P at J for all J isomorphic to I. The type EBasedLift f src tgt is the type of morphisms in E starting from src and ending at tgt and are mapped, up to the specified isomorphisms of src and tgt, to f under P.

We also provide various useful constructors for based-lifts:

Notation #

We provide the following notations:

References #

Benedikt Ahrens, Peter LeFanu Lumsdaine, Displayed Categories, Logical Methods in Computer Science 15 (1).

def CategoryTheory.eqToHom.map {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {I : C} {I' : C} {J : C} {J' : C} (w : I = I') (w' : J = J') (f : I J) :
I' J'

Transporting a morphism f : I ⟶ J along equalities w : I = I' and w' : J = J'. Note: It might be a good idea to add this to eqToHom file.

Equations
Instances For
    @[simp]

    The diagram below commutes:

        I --eqToHom w -->  J
        |                  |
      f |                  | eqToHom.map w w' f
        v                  v
        I' --eqToHom w'-> J'
    
    def CategoryTheory.Fiber.cast {C : Type u₁} (F : CType u₂) {I : C} {I' : C} (w : I = I') (X : F I) :
    F I'

    Cast an element of a Fiber along an equality of the base objects.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.Fiber.cast_trans {C : Type u₁} (F : CType u₂) {I : C} {I' : C} {I'' : C} (X : F I) {w : I = I'} {w' : I' = I''} {w'' : I = I''} :
      w'wX = w''X
      theorem CategoryTheory.Fiber.cast_cast {C : Type u₁} (F : CType u₂) {I : C} {I' : C} (X : F I) {w : I = I'} {w' : I' = I} :
      w'wX = X
      class CategoryTheory.DisplayStruct {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] (F : CType u₂) :
      Type (max (max (max u₁ u₂) v₁) (v₂ + 1))
      • HomOver : {I J : C} → (I J)F IF JType v₂

        The type of morphisms indexed over morphisms of C.

      • id_over : {I : C} → (X : F I) → X ⟶[CategoryTheory.CategoryStruct.id I] X

        The identity morphism overlying the identity morphism of C.

      • comp_over : {I J K : C} → {f₁ : I J} → {f₂ : J K} → {X : F I} → {Y : F J} → {Z : F K} → (X ⟶[f₁] Y)(Y ⟶[f₂] Z)X ⟶[CategoryTheory.CategoryStruct.comp f₁ f₂] Z

        Composition of morphisms overlying composition of morphisms of C.

      Instances
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          class CategoryTheory.Display {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] (F : CType u₂) extends CategoryTheory.DisplayStruct :
          Type (max (max (max (u_1 + 1) u₁) u₂) v₁)
          Instances
            @[simp]
            theorem CategoryTheory.Display.id_comp_cast {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [self : CategoryTheory.Display F] {I : C} {J : C} {f : I J} {X : F I} {Y : F J} (g : X ⟶[f] Y) :
            @[simp]
            theorem CategoryTheory.Display.comp_id_cast {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [self : CategoryTheory.Display F] {I : C} {J : C} {f : I J} {X : F I} {Y : F J} (g : X ⟶[f] Y) :
            @[simp]
            theorem CategoryTheory.Display.assoc_cast {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [self : CategoryTheory.Display F] {I : C} {J : C} {K : C} {L : C} {f₁ : I J} {f₂ : J K} {f₃ : K L} {X : F I} {Y : F J} {Z : F K} {W : F L} (g₁ : X ⟶[f₁] Y) (g₂ : Y ⟶[f₂] Z) (g₃ : Z ⟶[f₃] W) :
            def CategoryTheory.Display.cast {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {X : F I} {Y : F J} (w : f = f') (g : X ⟶[f] Y) :
            X ⟶[f'] Y
            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Display.cast_symm {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {X : F I} {Y : F J} (w : f = f') (g : X ⟶[f] Y) (g' : X ⟶[f'] Y) :
              wg = g' g = g'
              theorem CategoryTheory.Display.cast_assoc_symm {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {K : C} {L : C} {f₁ : I J} {f₂ : J K} {f₃ : K L} {X : F I} {Y : F J} {Z : F K} {W : F L} (g₁ : X ⟶[f₁] Y) (g₂ : Y ⟶[f₂] Z) (g₃ : Z ⟶[f₃] W) :
              @[simp]
              theorem CategoryTheory.Display.cast_trans {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {f'' : I J} {X : F I} {Y : F J} {w : f = f'} {w' : f' = f''} (g : X ⟶[f] Y) :
              w'wg = g
              theorem CategoryTheory.Display.cast_eq {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {X : F I} {Y : F J} {w : f = f'} {w' : f = f'} (g : X ⟶[f] Y) :
              wg = w'g
              @[simp]
              theorem CategoryTheory.Display.cast_cast {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {X : F I} {Y : F J} (w : f = f') (w' : f' = f) (g : X ⟶[f'] Y) :
              g = g
              def CategoryTheory.Display.castToHom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {I' : C} (w : I = I') (X : F I) :

              castToHom w X is a morphism from X to w ▸ X over eqToHom w.

              Equations
              Instances For
                def CategoryTheory.Display.castToHomInv {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {I' : C} (w : I = I') (X : F I) :
                Equations
                Instances For
                  def CategoryTheory.Display.castToHomMap {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {I' : C} {J : C} {J' : C} (w : I = I') (w' : J = J') {f : I J} {X : F I} {Y : F J} (g : X ⟶[f] Y) :
                  (wX) ⟶[CategoryTheory.eqToHom.map w w' f] w'Y
                  Equations
                  Instances For
                    def CategoryTheory.Display.castToHomMapId {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {I' : C} (w : I = I') {X : F I} {Y : F I} (g : X ⟶[CategoryTheory.CategoryStruct.id I] Y) :
                    Equations
                    Instances For

                      The displayed diagram

                                    X --------g--------> Y
                                    |                    |
                      eqToHom w X   |                    | eqToHom w' Y
                                    v                    v
                                 w ▸ X ------------->  w ▸ Y
                                      eqToHom.map w w' g
                      
                      

                      commutes.

                      @[simp]
                      theorem CategoryTheory.Display.castEquiv_apply {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {X : F I} {Y : F J} (w : f = f') (g : X ⟶[f] Y) :
                      @[simp]
                      theorem CategoryTheory.Display.castEquiv_symm_apply {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {X : F I} {Y : F J} (w : f = f') (g : X ⟶[f'] Y) :
                      (CategoryTheory.Display.castEquiv w).symm g = g
                      def CategoryTheory.Display.castEquiv {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {f' : I J} {X : F I} {Y : F J} (w : f = f') :
                      (X ⟶[f] Y) X ⟶[f'] Y
                      Equations
                      Instances For
                        def CategoryTheory.Display.Total {C : Type u₁} (F : CType u₂) :
                        Type (max u₁ u₂)

                        The total space of a displayed category consists of pairs (I, X) where I is an object of C and X is an object of the Fiber F I.

                        Equations
                        • F = ((I : C) × F I)
                        Instances For
                          def CategoryTheory.Display.Total.mk {C : Type u₁} {F : CType u₂} {I : C} (X : F I) :
                          F
                          Equations
                          Instances For
                            @[reducible, inline]
                            abbrev CategoryTheory.Display.Total.Hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] (X : F) (Y : F) :
                            Type (max v₁ u_1)
                            Equations
                            • X.Hom Y = ((f : X.fst Y.fst) × X.snd ⟶[f] Y.snd)
                            Instances For
                              @[simp]
                              theorem CategoryTheory.Display.Total.Hom.mk_snd {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {X : F I} {Y : F J} {f : I J} (g : X ⟶[f] Y) :
                              @[simp]
                              theorem CategoryTheory.Display.Total.Hom.mk_fst {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {X : F I} {Y : F J} {f : I J} (g : X ⟶[f] Y) :
                              def CategoryTheory.Display.Total.Hom.mk {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {X : F I} {Y : F J} {f : I J} (g : X ⟶[f] Y) :
                              Equations
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                @[simp]
                                theorem CategoryTheory.Display.Total.cast_exchange_comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {K : C} {f : I J} {f' : I J} {h : J K} {h' : J K} {X : F I} {Y : F J} {Z : F K} (g : X ⟶[f] Y) (k : Y ⟶[h] Z) (w : f = f') (w' : h = h') :
                                @[simp]
                                theorem CategoryTheory.Display.Total.whisker_left_cast_comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {K : C} {f : I J} {h : J K} {h' : J K} {X : F I} {Y : F J} {Z : F K} (g : X ⟶[f] Y) (k : Y ⟶[h] Z) (w : h = h') :
                                @[simp]
                                theorem CategoryTheory.Display.Total.whisker_right_cast_comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {K : C} {f : I J} {f' : I J} {h : J K} {X : F I} {Y : F J} {Z : F K} (g : X ⟶[f] Y) (k : Y ⟶[h] Z) (w : f = f') :
                                structure CategoryTheory.BasedLift {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} (f : I J) (X : P ⁻¹ I) (Y : P ⁻¹ J) :
                                Type u_2

                                The type of lifts of a given morphism in the base with fixed source and target in the Fibers of the domain and codomain respectively.

                                Instances For
                                  def CategoryTheory.BasedLift' {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} (f : I J) (X : P ⁻¹ I) (Y : P ⁻¹ J) :
                                  Type u_2
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    structure CategoryTheory.EBasedLift {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} (f : I J) (X : P ⁻¹ᵉ I) (Y : P ⁻¹ᵉ J) :
                                    Type u_2

                                    The structure of based-lifts up to an isomorphism of the domain objects in the base.

                                         X -------------------------------> Y
                                         _                                  -
                                         |                                  |
                                         |                                  |
                                         v                                  v
                                    P.obj X --------> I ------> J ----> P.obj Y
                                                ≅           f       ≅
                                    
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.BasedLift.comp_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_2} [CategoryTheory.Category.{u_3, u_2} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {K : C} {f₁ : I J} {f₂ : J K} {X : P ⁻¹ I} {Y : P ⁻¹ J} {Z : P ⁻¹ K} (g₁ : CategoryTheory.BasedLift f₁ X Y) (g₂ : CategoryTheory.BasedLift f₂ Y Z) :
                                      (g₁.comp g₂).hom = CategoryTheory.CategoryStruct.comp g₁.hom g₂.hom
                                      def CategoryTheory.BasedLift.comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_2} [CategoryTheory.Category.{u_3, u_2} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {K : C} {f₁ : I J} {f₂ : J K} {X : P ⁻¹ I} {Y : P ⁻¹ J} {Z : P ⁻¹ K} (g₁ : CategoryTheory.BasedLift f₁ X Y) (g₂ : CategoryTheory.BasedLift f₂ Y Z) :

                                      The composition of based-lifts

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.BasedLift.cast_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_2} [CategoryTheory.Category.{u_3, u_2} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {f : I J} {f' : I J} {X : P ⁻¹ I} {Y : P ⁻¹ J} (w : f = f') (g : CategoryTheory.BasedLift f X Y) :
                                        def CategoryTheory.BasedLift.cast {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_2} [CategoryTheory.Category.{u_3, u_2} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {f : I J} {f' : I J} {X : P ⁻¹ I} {Y : P ⁻¹ J} (w : f = f') (g : CategoryTheory.BasedLift f X Y) :
                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.EBasedLift.comp_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {K : C} {f₁ : I J} {f₂ : J K} {X : P ⁻¹ᵉ I} {Y : P ⁻¹ᵉ J} {Z : P ⁻¹ᵉ K} (g₁ : CategoryTheory.EBasedLift f₁ X Y) (g₂ : CategoryTheory.EBasedLift f₂ Y Z) :
                                          (g₁.comp g₂).hom = CategoryTheory.CategoryStruct.comp g₁.hom g₂.hom
                                          def CategoryTheory.EBasedLift.comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {K : C} {f₁ : I J} {f₂ : J K} {X : P ⁻¹ᵉ I} {Y : P ⁻¹ᵉ J} {Z : P ⁻¹ᵉ K} (g₁ : CategoryTheory.EBasedLift f₁ X Y) (g₂ : CategoryTheory.EBasedLift f₂ Y Z) :
                                          Equations
                                          Instances For
                                            @[simp]
                                            theorem CategoryTheory.EBasedLift.cast_hom {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {f : I J} {f' : I J} {X : P ⁻¹ᵉ I} {Y : P ⁻¹ᵉ J} (w : f = f') (g : CategoryTheory.EBasedLift f X Y) :
                                            def CategoryTheory.EBasedLift.cast {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {f : I J} {f' : I J} {X : P ⁻¹ᵉ I} {Y : P ⁻¹ᵉ J} (w : f = f') (g : CategoryTheory.EBasedLift f X Y) :
                                            Equations
                                            Instances For

                                              The display structure DisplayStruct P associated to a functor P : E ⥤ C. This instance makes the displayed notations _ ⟶[f] _, _ ≫ₒ _ and 𝟙ₒ available for based-lifts.

                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              theorem CategoryTheory.BasedLift.ext {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {f : I J} {X : P ⁻¹ I} {Y : P ⁻¹ J} (g : X ⟶[f] Y) (g' : X ⟶[f] Y) (w : g.hom = g'.hom) :
                                              g = g'
                                              @[simp]
                                              theorem CategoryTheory.BasedLift.cast_rec {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] {P : CategoryTheory.Functor E C} {I : C} {J : C} {f : I J} {f' : I J} {X : P ⁻¹ I} {Y : P ⁻¹ J} {w : f = f'} (g : X ⟶[f] Y) :

                                              BasedLift.tauto regards a morphism g of the domain category E as a based-lift of its image P g under functor P.

                                              Equations
                                              Instances For

                                                A morphism of E coerced as a tautological based-lift.

                                                Equations
                                                theorem CategoryTheory.EBasedLift.ext {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] (P : CategoryTheory.Functor E C) {I : C} {J : C} {f : I J} {X : P ⁻¹ᵉ I} {Y : P ⁻¹ᵉ J} (g : X ⟶[f] Y) (g' : X ⟶[f] Y) (w : g.hom = g'.hom) :
                                                g = g'
                                                @[simp]
                                                theorem CategoryTheory.EBasedLift.cast_rec {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {E : Type u_1} [CategoryTheory.Category.{u_2, u_1} E] (P : CategoryTheory.Functor E C) {I : C} {J : C} {f : I J} {f' : I J} {X : P ⁻¹ᵉ I} {Y : P ⁻¹ᵉ J} {w : f = f'} (g : X ⟶[f] Y) :

                                                EBasedLift.tauto regards a morphism g of the domain category E as a based-lift of its image P g under functor P.

                                                Equations
                                                Instances For

                                                  A morphism of E coerced as a tautological based-lift.

                                                  Equations

                                                  The displayed category of a functor P : E ⥤ C.

                                                  Equations
                                                  structure CategoryTheory.Display.Lift {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} (f : I J) (tgt : F J) :
                                                  Type (max u_2 u₂)

                                                  The type Lift f tgt of a lift of f with the target tgt consists of an object src in the Fiber of the domain of f and a based-lift of f starting at src and ending at tgt.

                                                  • src : F I
                                                  • homOver : self.src ⟶[f] tgt
                                                  Instances For
                                                    theorem CategoryTheory.Display.Lift.ext {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} {tgt : F J} {g : CategoryTheory.Display.Lift f tgt} {g' : CategoryTheory.Display.Lift f tgt} (w_src : g.src = g'.src) (w_homOver : g.homOver = g'.homOver) :
                                                    g = g'
                                                    theorem CategoryTheory.Display.CoLift.ext {C : Type u₁} :
                                                    ∀ {inst : CategoryTheory.Category.{v₁, u₁} C} {F : CType u₂} {inst_1 : CategoryTheory.Display F} {I J : C} {f : I J} {src : F I} (x y : CategoryTheory.Display.CoLift f src), x.tgt = y.tgtHEq x.homOver y.homOverx = y
                                                    theorem CategoryTheory.Display.CoLift.ext_iff {C : Type u₁} :
                                                    ∀ {inst : CategoryTheory.Category.{v₁, u₁} C} {F : CType u₂} {inst_1 : CategoryTheory.Display F} {I J : C} {f : I J} {src : F I} (x y : CategoryTheory.Display.CoLift f src), x = y x.tgt = y.tgt HEq x.homOver y.homOver
                                                    structure CategoryTheory.Display.CoLift {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {F : CType u₂} [CategoryTheory.Display F] {I : C} {J : C} (f : I J) (src : F I) :
                                                    Type (max u_2 u₂)

                                                    The type CoLift f src of a colift of f with the source src consists of an object tgt in the Fiber of the codomain of f and a based-lift of f starting at src and ending at tgt.

                                                    • tgt : F J
                                                    • homOver : src ⟶[f] self.tgt
                                                    Instances For