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 #
It looks odd to make D
an explicit argument of InducedCategory
,
when it is determined by the argument F
anyways. The reason to make D
explicit is in order to control its syntactic form, so that instances
like InducedCategory.has_forget₂
(elsewhere) refer to the correct
form of D
. This is used to set up several algebraic categories like
def CommMon : Type (u+1) := InducedCategory Mon (Bundled.map @CommMonoid.toMonoid)
-- not InducedCategory (Bundled Monoid) (Bundled.map @CommMonoid.toMonoid)
,
-- even though MonCat = Bundled Monoid
!
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
- CategoryTheory.InducedCategory D _F = C
Instances For
Equations
- CategoryTheory.InducedCategory.hasCoeToSort F = { coe := fun (c : CategoryTheory.InducedCategory D F) => CoeSort.coe (F c) }
Equations
- One or more equations did not get rendered due to their size.
Construct an isomorphism in the induced category from an isomorphism in the original category.
Equations
Instances For
The forgetful functor from an induced category to the original category, forgetting the extra data.
Equations
- CategoryTheory.inducedFunctor F = { obj := F, map := fun {X Y : CategoryTheory.InducedCategory D F} (f : X ⟶ Y) => f, map_id := ⋯, map_comp := ⋯ }
Instances For
The induced functor inducedFunctor F : InducedCategory D F ⥤ D
is fully faithful.
Equations
- One or more equations did not get rendered due to their size.