Module docstring
{"# Full and faithful functors
We define typeclasses Full and Faithful, decorating functors. These typeclasses
carry no data. However, we also introduce a structure Functor.FullyFaithful which
contains the data of the inverse map (F.obj X ⟶ F.obj Y) ⟶ (X ⟶ Y) of the
map induced on morphisms by a functor F.
Main definitions and results
- Use
F.map_injectiveto retrieve the fact thatF.mapis injective when[Faithful F]. - Similarly,
F.map_surjectivestates thatF.mapis surjective when[Full F]. - Use
F.preimageto obtain preimages of morphisms when[Full F]. - We prove some basic \"cancellation\" lemmas for full and/or faithful functors, as well as a
construction for \"dividing\" a functor by a faithful functor, see
Faithful.div.
See CategoryTheory.Equivalence.of_fullyFaithful_ess_surj for the fact that a functor is an
equivalence if and only if it is fully faithful and essentially surjective.
"}