Documentation

Mathlib.CategoryTheory.InducedCategory

Induced categories and full subcategories #

Given a category D and a function F : C → D from a type C to the objects of D, there is an essentially unique way to give C a category structure such that F becomes a fully faithful functor, namely by taking $ Hom_C(X, Y) = Hom_D(FX, FY) $. We call this the category induced from D along F.

Implementation notes #

The type of morphisms between X and Y in InducedCategory D F is not definitionally equal to F X ⟶ F Y. Instead, this type is made a 1-field structure. Use InducedCategory.homMk to construct morphisms in induced categories.

def CategoryTheory.InducedCategory {C : Type u₁} (D : Type u₂) (_F : CD) :
Type u₁

InducedCategory D F, where F : C → D, is a typeclass synonym for C, which provides a category structure so that the morphisms X ⟶ Y are the morphisms in D from F X to F Y.

Equations
    Instances For
      instance CategoryTheory.InducedCategory.hasCoeToSort {C : Type u₁} {D : Type u₂} (F : CD) {α : Sort u_1} [CoeSort D α] :
      Equations
        structure CategoryTheory.InducedCategory.Hom {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} (X Y : InducedCategory D F) :

        The type of morphisms in InducedCategory D F between X and Y is a 1-field structure which identifies to F X ⟶ F Y.

        • hom : F X F Y

          The underlying morphism.

        Instances For
          theorem CategoryTheory.InducedCategory.Hom.ext_iff {C : Type u₁} {D : Type u₂} {inst✝ : Category.{v, u₂} D} {F : CD} {X Y : InducedCategory D F} {x y : X.Hom Y} :
          x = y x.hom = y.hom
          theorem CategoryTheory.InducedCategory.Hom.ext {C : Type u₁} {D : Type u₂} {inst✝ : Category.{v, u₂} D} {F : CD} {X Y : InducedCategory D F} {x y : X.Hom Y} (hom : x.hom = y.hom) :
          x = y
          @[simp]
          @[simp]
          theorem CategoryTheory.InducedCategory.comp_hom {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X✝ Y✝ Z✝ : InducedCategory D F} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
          theorem CategoryTheory.InducedCategory.comp_hom_assoc {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X✝ Y✝ Z✝ : InducedCategory D F} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) {Z : D} (h : F Z✝ Z) :
          theorem CategoryTheory.InducedCategory.hom_ext {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} {f g : X Y} (h : f.hom = g.hom) :
          f = g
          theorem CategoryTheory.InducedCategory.hom_ext_iff {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} {f g : X Y} :
          f = g f.hom = g.hom
          def CategoryTheory.InducedCategory.homMk {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} (f : F X F Y) :
          X Y

          Construct a morphism in the induced category from a morphism in the original category.

          Equations
            Instances For
              @[simp]
              theorem CategoryTheory.InducedCategory.homMk_hom {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} (f : F X F Y) :
              (homMk f).hom = f
              def CategoryTheory.InducedCategory.homEquiv {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} :
              (X Y) (F X F Y)

              Morphisms in InducedCategory D F identify to morphisms in D.

              Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.InducedCategory.homEquiv_symm_apply_hom {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} (f : F X F Y) :
                  @[simp]
                  theorem CategoryTheory.InducedCategory.homEquiv_apply {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} (f : X Y) :
                  def CategoryTheory.InducedCategory.isoMk {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} (f : F X F Y) :
                  X Y

                  Construct an isomorphism in the induced category from an isomorphism in the original category.

                  Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.InducedCategory.isoMk_inv {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} (f : F X F Y) :
                      @[simp]
                      theorem CategoryTheory.InducedCategory.isoMk_hom {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] {F : CD} {X Y : InducedCategory D F} (f : F X F Y) :
                      def CategoryTheory.inducedFunctor {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] (F : CD) :

                      The forgetful functor from an induced category to the original category, forgetting the extra data.

                      Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.inducedFunctor_obj {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] (F : CD) (a✝ : C) :
                          (inducedFunctor F).obj a✝ = F a✝
                          @[simp]
                          theorem CategoryTheory.inducedFunctor_map {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] (F : CD) {X✝ Y✝ : InducedCategory D F} (f : X✝ Y✝) :

                          The induced functor inducedFunctor F : InducedCategory D F ⥤ D is fully faithful.

                          Equations
                            Instances For
                              instance CategoryTheory.InducedCategory.full {C : Type u₁} {D : Type u₂} [Category.{v, u₂} D] (F : CD) :