Documentation

Mathlib.CategoryTheory.FiberedCategory.BasedCategory

The bicategory of based categories #

In this file we define the type BasedCategory 𝒮, and give it the structure of a strict bicategory. Given a category 𝒮, we define the type BasedCategory 𝒮 as the type of categories 𝒳 equipped with a functor 𝒳.p : 𝒳 ⥤ 𝒮.

We also define a type of functors between based categories 𝒳 and 𝒴, which we call BasedFunctor 𝒳 𝒴 and denote as 𝒳 ⥤ᵇ 𝒴. These are defined as functors between the underlying categories 𝒳.obj and 𝒴.obj which commute with the projections to 𝒮.

Natural transformations between based functors F G : 𝒳 ⥤ᵇ 𝒴 are given by the structure BasedNatTrans F G. These are defined as natural transformations α between the functors underlying F and G such that α.app a lifts 𝟙 S whenever 𝒳.p.obj a = S.

structure CategoryTheory.BasedCategory (𝒮 : Type u₁) [Category.{v₁, u₁} 𝒮] :
Type (max (max (max u₁ (u₂ + 1)) v₁) (v₂ + 1))

A based category over 𝒮 is a category 𝒳 together with a functor p : 𝒳 ⥤ 𝒮.

Instances For
    def CategoryTheory.BasedCategory.ofFunctor {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : Type u₂} [Category.{v₂, u₂} 𝒳] (p : Functor 𝒳 𝒮) :

    The based category associated to a functor p : 𝒳 ⥤ 𝒮.

    Equations
      Instances For
        structure CategoryTheory.BasedFunctor {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] (𝒳 : BasedCategory 𝒮) (𝒴 : BasedCategory 𝒮) extends CategoryTheory.Functor 𝒳.obj 𝒴.obj :
        Type (max (max (max u₂ u₃) v₂) v₃)

        A functor between based categories is a functor between the underlying categories that commutes with the projections.

        Instances For
          def CategoryTheory.BasedFunctor.id {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] (𝒳 : BasedCategory 𝒮) :
          BasedFunctor 𝒳 𝒳

          The identity based functor.

          Equations
            Instances For

              Notation for the identity functor on a based category.

              Equations
                Instances For
                  def CategoryTheory.BasedFunctor.comp {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {𝒵 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) (G : BasedFunctor 𝒴 𝒵) :
                  BasedFunctor 𝒳 𝒵

                  The composition of two based functors.

                  Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.BasedFunctor.comp_toFunctor {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {𝒵 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) (G : BasedFunctor 𝒴 𝒵) :

                      Notation for composition of based functors.

                      Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.BasedFunctor.comp_id {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) :
                          F.comp (id 𝒴) = F
                          @[simp]
                          theorem CategoryTheory.BasedFunctor.id_comp {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) :
                          (id 𝒳).comp F = F
                          @[simp]
                          theorem CategoryTheory.BasedFunctor.comp_assoc {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {𝒵 : BasedCategory 𝒮} {𝒜 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) (G : BasedFunctor 𝒴 𝒵) (H : BasedFunctor 𝒵 𝒜) :
                          (F.comp G).comp H = F.comp (G.comp H)
                          @[simp]
                          theorem CategoryTheory.BasedFunctor.w_obj {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) (a : 𝒳.obj) :
                          𝒴.p.obj (F.obj a) = 𝒳.p.obj a
                          instance CategoryTheory.BasedFunctor.instIsHomLiftObjPIdObj {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) (a : 𝒳.obj) :
                          instance CategoryTheory.BasedFunctor.preserves_isHomLift {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) {R S : 𝒮} {a b : 𝒳.obj} (f : R S) (φ : a b) [𝒳.p.IsHomLift f φ] :
                          𝒴.p.IsHomLift f (F.map φ)

                          For a based functor F : 𝒳 ⟶ 𝒴, then whenever an arrow φ in 𝒳 lifts some f in 𝒮, then F(φ) also lifts f.

                          theorem CategoryTheory.BasedFunctor.isHomLift_map {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) {R S : 𝒮} {a b : 𝒳.obj} (f : R S) (φ : a b) [𝒴.p.IsHomLift f (F.map φ)] :
                          𝒳.p.IsHomLift f φ

                          For a based functor F : 𝒳 ⟶ 𝒴, and an arrow φ in 𝒳, then φ lifts an arrow f in 𝒮 if F(φ) does.

                          theorem CategoryTheory.BasedFunctor.isHomLift_iff {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) {R S : 𝒮} {a b : 𝒳.obj} (f : R S) (φ : a b) :
                          𝒴.p.IsHomLift f (F.map φ) 𝒳.p.IsHomLift f φ
                          structure CategoryTheory.BasedNatTrans {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F G : BasedFunctor 𝒳 𝒴) extends CategoryTheory.NatTrans F.toFunctor G.toFunctor :
                          Type (max u₂ v₃)

                          A BasedNatTrans between two BasedFunctors is a natural transformation α between the underlying functors, such that for all a : 𝒳, α.app a lifts 𝟙 S whenever 𝒳.p.obj a = S.

                          Instances For
                            theorem CategoryTheory.BasedNatTrans.ext {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α β : BasedNatTrans F G) (h : α.toNatTrans = β.toNatTrans) :
                            α = β
                            theorem CategoryTheory.BasedNatTrans.ext_iff {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} {α β : BasedNatTrans F G} :
                            instance CategoryTheory.BasedNatTrans.app_isHomLift {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α : BasedNatTrans F G) (a : 𝒳.obj) :
                            𝒴.p.IsHomLift (CategoryStruct.id (𝒳.p.obj a)) (α.app a)
                            theorem CategoryTheory.BasedNatTrans.isHomLift {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α : BasedNatTrans F G) {a : 𝒳.obj} {S : 𝒮} (ha : 𝒳.p.obj a = S) :
                            def CategoryTheory.BasedNatTrans.id {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) :

                            The identity natural transformation is a BasedNatTrans.

                            Equations
                              Instances For
                                @[simp]
                                def CategoryTheory.BasedNatTrans.comp {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G H : BasedFunctor 𝒳 𝒴} (α : BasedNatTrans F G) (β : BasedNatTrans G H) :

                                Composition of BasedNatTrans, given by composition of the underlying natural transformations.

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.BasedNatTrans.comp_toNatTrans {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G H : BasedFunctor 𝒳 𝒴} (α : BasedNatTrans F G) (β : BasedNatTrans G H) :
                                    @[simp]
                                    theorem CategoryTheory.BasedNatTrans.homCategory_comp {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] (𝒳 : BasedCategory 𝒮) (𝒴 : BasedCategory 𝒮) {X✝ Y✝ Z✝ : BasedFunctor 𝒳 𝒴} (α : BasedNatTrans X✝ Y✝) (β : BasedNatTrans Y✝ Z✝) :
                                    @[simp]
                                    theorem CategoryTheory.BasedNatTrans.homCategory_id {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] (𝒳 : BasedCategory 𝒮) (𝒴 : BasedCategory 𝒮) (F : BasedFunctor 𝒳 𝒴) :
                                    theorem CategoryTheory.BasedNatTrans.homCategory.ext {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α β : F G) (h : α.toNatTrans = β.toNatTrans) :
                                    α = β
                                    theorem CategoryTheory.BasedNatTrans.homCategory.ext_iff {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} {α β : F G} :
                                    def CategoryTheory.BasedNatTrans.forgetful {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] (𝒳 : BasedCategory 𝒮) (𝒴 : BasedCategory 𝒮) :
                                    Functor (BasedFunctor 𝒳 𝒴) (Functor 𝒳.obj 𝒴.obj)

                                    The forgetful functor from the category of based functors 𝒳 ⥤ᵇ 𝒴 to the category of functors of underlying categories, 𝒳.obj ⥤ 𝒴.obj.

                                    Equations
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.BasedNatTrans.forgetful_map {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] (𝒳 : BasedCategory 𝒮) (𝒴 : BasedCategory 𝒮) {X✝ Y✝ : BasedFunctor 𝒳 𝒴} (α : X✝ Y✝) :
                                        (forgetful 𝒳 𝒴).map α = α.toNatTrans
                                        @[simp]
                                        theorem CategoryTheory.BasedNatTrans.forgetful_obj {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] (𝒳 : BasedCategory 𝒮) (𝒴 : BasedCategory 𝒮) (F : BasedFunctor 𝒳 𝒴) :
                                        (forgetful 𝒳 𝒴).obj F = F.toFunctor
                                        instance CategoryTheory.BasedNatTrans.instIsIsoFunctorObjOfBasedFunctor {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α : F G) [IsIso α] :
                                        def CategoryTheory.BasedNatIso.id {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) :
                                        F F

                                        The identity natural transformation is a based natural isomorphism.

                                        Equations
                                          Instances For
                                            @[simp]
                                            theorem CategoryTheory.BasedNatIso.id_inv {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) :
                                            @[simp]
                                            theorem CategoryTheory.BasedNatIso.id_hom {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) :
                                            def CategoryTheory.BasedNatIso.mkNatIso {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α : F.toFunctor G.toFunctor) (isHomLift' : ∀ (a : 𝒳.obj), 𝒴.p.IsHomLift (CategoryStruct.id (𝒳.p.obj a)) (α.hom.app a)) :
                                            F G

                                            The inverse of a based natural transformation whose underlying natural transformation is an isomorphism.

                                            Equations
                                              Instances For
                                                theorem CategoryTheory.BasedNatIso.isIso_of_toNatTrans_isIso {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α : F G) [IsIso α.toNatTrans] :
                                                def CategoryTheory.BasedCategory.whiskerLeft {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {𝒵 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) {G H : BasedFunctor 𝒴 𝒵} (α : G H) :
                                                F.comp G F.comp H

                                                Left-whiskering in the bicategory BasedCategory is given by whiskering the underlying functors and natural transformations.

                                                Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem CategoryTheory.BasedCategory.whiskerLeft_toNatTrans {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {𝒵 : BasedCategory 𝒮} (F : BasedFunctor 𝒳 𝒴) {G H : BasedFunctor 𝒴 𝒵} (α : G H) :
                                                    def CategoryTheory.BasedCategory.whiskerRight {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {𝒵 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α : F G) (H : BasedFunctor 𝒴 𝒵) :
                                                    F.comp H G.comp H

                                                    Right-whiskering in the bicategory BasedCategory is given by whiskering the underlying functors and natural transformations.

                                                    Equations
                                                      Instances For
                                                        @[simp]
                                                        theorem CategoryTheory.BasedCategory.whiskerRight_toNatTrans {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {𝒳 : BasedCategory 𝒮} {𝒴 : BasedCategory 𝒮} {𝒵 : BasedCategory 𝒮} {F G : BasedFunctor 𝒳 𝒴} (α : F G) (H : BasedFunctor 𝒴 𝒵) :
                                                        @[simp]
                                                        theorem CategoryTheory.BasedCategory.comp_def {𝒮 : Type u₁} [Category.{v₁, u₁} 𝒮] {X✝ Y✝ Z✝ : BasedCategory 𝒮} (F : BasedFunctor X✝ Y✝) (G : BasedFunctor Y✝ Z✝) :

                                                        The bicategory of based categories.

                                                        Equations

                                                          The bicategory structure on BasedCategory.{v₂, u₂} 𝒮 is strict.