Documentation

GroupoidModel.FibrationForMathlib.FibredCats.Displayed_BiCat

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 c and Y : F d a type HomOver f X Y whose terms are to be thought of as 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, up to casting, dependently over the associativity and unitality equalities in C.

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 c => P⁻¹ c is provided by the instance instDisplayOfFunctor. 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.

We also provide various useful constructors for based-lifts:

We provide the following notations:

We show that for a functor P, the type BasedLift P induces a display category structure on the fiber family fun c => P⁻¹ c.

def CategoryTheory.Fiber {C : Type u_1} (F : CType u_2) (I : C) :
Type u_2
Equations
Instances For
    def CategoryTheory.fiberCast {C : Type u_1} (F : CType u_2) {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
      def CategoryTheory.eqToHomMap {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} 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]
        Equations
        • =
        Instances For
          @[simp]
          theorem CategoryTheory.fiber_cast_trans {C : Type u_1} (F : CType u_2) {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_1} (F : CType u_2) {I : C} {I' : C} (X : F I) {w : I = I'} {w' : I' = I} :
          w'wX = X
          class CategoryTheory.DisplayStruct {C : Type u_1} [CategoryTheory.Category.{u_4, u_1} C] (F : CType u_2) :
          Type (max (max (max u_1 u_2) (u_3 + 1)) u_4)
          • HomOver : {I J : C} → (I J)F IF JType u_3

            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_1} [CategoryTheory.Category.{u_3, u_1} C] (F : CType u_2) extends CategoryTheory.DisplayStruct :
              Type (max (max (max u_1 u_2) u_3) (u_4 + 1))
              Instances
                @[simp]
                theorem CategoryTheory.Display.id_comp_cast {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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.HomOver.cast {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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.HomOver.cast_trans {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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.HomOver.cast_unique {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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
                  theorem CategoryTheory.HomOver.cast_cast {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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.HomOver.eqToHom {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [CategoryTheory.Display F] {I : C} {I' : C} (w : I = I') (X : F I) :

                  EqToHom w X is a hom-over eqToHom w from X to w ▸ X.

                  Equations
                  Instances For
                    def CategoryTheory.HomOver.eqToHomMap {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [CategoryTheory.Display F] {I : C} {J : C} {I' : C} {J' : C} (w : I = I') (w' : J = J') {f : I J} {X : F I} {Y : F J} (g : X ⟶[f] Y) :
                    (wX) ⟶[CategoryTheory.eqToHomMap w w' f] w'Y
                    Equations
                    Instances For
                      def CategoryTheory.HomOver.eqToHomMapId {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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
                        @[simp]
                        theorem CategoryTheory.HomOver.castEquiv_symm_apply {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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.HomOver.castEquiv w).symm g = g
                        @[simp]
                        theorem CategoryTheory.HomOver.castEquiv_apply {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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) :
                        def CategoryTheory.HomOver.castEquiv {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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_1} (F : CType u_2) :
                          Type (max u_1 u_2)

                          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 over I.

                          Equations
                          • F = ((I : C) × F I)
                          Instances For
                            @[reducible, inline]
                            abbrev CategoryTheory.Display.TotalHom {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [CategoryTheory.Display F] (X : F) (Y : F) :
                            Type (max u_3 u_4)
                            Equations
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Equations
                              Equations
                              • CategoryTheory.Display.instCategoryTotalHom = inferInstance
                              @[simp]
                              theorem CategoryTheory.Display.cast_exchange_comp {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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.whisker_left_cast_comp {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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.whisker_right_cast_comp {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [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') :
                              Equations
                              • One or more equations did not get rendered due to their size.

                              The category structure on the fibers of a display category.

                              Equations
                              def CategoryTheory.Display.Vert {C : Type u_1} (F : CType u_2) :
                              Type (max u_1 u_2)
                              Equations
                              Instances For
                                Instances For
                                  class CategoryTheory.Display.IsIso {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} [CategoryTheory.IsIso f] {X : F I} {Y : F J} (g : X ⟶[f] Y) :

                                  A hom-over of an isomorphism is invertible if

                                  Instances
                                    theorem CategoryTheory.Display.IsIso.out {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [CategoryTheory.Display F] {I : C} {J : C} {f : I J} [CategoryTheory.IsIso f] {X : F I} {Y : F J} {g : X ⟶[f] Y} [self : CategoryTheory.Display.IsIso g] :

                                    The existence of an inverse hom-over.

                                    class CategoryTheory.IsoDisplay {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] (F : CType u_2) extends CategoryTheory.Display :
                                    Type (max (max (max u_1 u_2) u_3) (u_4 + 1))

                                    The IsoDisplay structure associated to a family F of types over a category C: A display category is iso-display if every hom-over an isomorphism is itself a display isomorphism.

                                    Instances
                                      theorem CategoryTheory.IsoDisplay.iso_HomOver {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] {F : CType u_2} [self : CategoryTheory.IsoDisplay F] {I : C} {J : C} {f : I J} [CategoryTheory.IsIso f] {X : F I} {Y : F J} (g : X ⟶[f] Y) :