Full and faithful functors #
We define typeclasses full and faithful, decorating functors.
Use F.map_injective to retrieve the fact that F.map is injective when [faithful F],
and F.preimage to obtain preimages of morphisms when [full F].
We prove some basic "cancellation" lemmas for full and/or faithful functors.
See category_theory.equivalence for the fact that a functor is an equivalence if and only if
it is fully faithful and essentially surjective.
- preimage : Π {X Y : C}, (F.obj X ⟶ F.obj Y) → (X ⟶ Y)
- witness' : (∀ {X Y : C} (f : F.obj X ⟶ F.obj Y), F.map (category_theory.full.preimage f) = f) . "obviously"
A functor F : C ⥤ D is full if for each X Y : C, F.map is surjective.
In fact, we use a constructive definition, so the full F typeclass contains data,
specifying a particular preimage of each f : F.obj X ⟶ F.obj Y.
See https://stacks.math.columbia.edu/tag/001C.
Instances
- category_theory.equivalence.full_of_equivalence
- category_theory.full.id
- category_theory.full.comp
- category_theory.induced_category.full
- category_theory.full_subcategory.full
- category_theory.full_subcategory.map.full
- category_theory.full_subcategory.lift.full
- category_theory.functor.ess_image_inclusion.full
- category_theory.full.to_ess_image
- category_theory.functor.op.category_theory.full
- category_theory.ulift_functor_full
- category_theory.bundled_hom.forget₂_full
- CommRing.category_theory.forget₂.category_theory.full
- map_injective' : (∀ {X Y : C}, function.injective F.map) . "obviously"
A functor F : C ⥤ D is faithful if for each X Y : C, F.map is injective.
See https://stacks.math.columbia.edu/tag/001C.
Instances
- category_theory.equivalence.faithful_of_equivalence
- category_theory.faithful.id
- category_theory.faithful.comp
- category_theory.induced_category.faithful
- category_theory.full_subcategory.faithful
- category_theory.full_subcategory.map.faithful
- category_theory.full_subcategory.lift.faithful
- category_theory.faithful_whiskering_right_obj
- category_theory.functor.ess_image_inclusion.faithful
- category_theory.faithful.to_ess_image
- category_theory.functor.op.category_theory.faithful
- category_theory.functor.right_op_faithful
- category_theory.functor.left_op_faithful
- category_theory.ulift_functor_faithful
- category_theory.concrete_category.forget_faithful
- category_theory.forget_faithful
The specified preimage of a morphism under a full functor.
Equations
If F : C ⥤ D is fully faithful, every isomorphism F.obj X ≅ F.obj Y has a preimage.
Equations
- category_theory.preimage_iso f = {hom := F.preimage f.hom, inv := F.preimage f.inv, hom_inv_id' := _, inv_hom_id' := _}
If the image of a morphism under a fully faithful functor in an isomorphism, then the original morphisms is also an isomorphism.
If F is fully faithful, we have an equivalence of hom-sets X ⟶ Y and F X ⟶ F Y.
If F is fully faithful, we have an equivalence of iso-sets X ≅ Y and F X ≅ F Y.
We can construct a natural transformation between functors by constructing a natural transformation between those functors composed with a fully faithful functor.
Equations
- category_theory.nat_trans_of_comp_fully_faithful H α = {app := λ (X : C), ⇑((category_theory.equiv_of_fully_faithful H).symm) (α.app X), naturality' := _}
We can construct a natural isomorphism between functors by constructing a natural isomorphism between those functors composed with a fully faithful functor.
Equations
- category_theory.nat_iso_of_comp_fully_faithful H i = category_theory.nat_iso.of_components (λ (X : C), ⇑((category_theory.iso_equiv_of_fully_faithful H).symm) (i.app X)) _
If F is full, and naturally isomorphic to some F', then F' is also full.
Alias of faithful.of_comp_iso.
Alias of faithful.of_comp_eq.
“Divide” a functor by a faithful functor.
If F ⋙ G is full and G is faithful, then F is full.
If F ⋙ G is full and G is faithful, then F is full.
Given a natural isomorphism between F ⋙ H and G ⋙ H for a fully faithful functor H, we
can 'cancel' it to give a natural iso between F and G.
Equations
- category_theory.fully_faithful_cancel_right H comp_iso = category_theory.nat_iso.of_components (λ (X : C), category_theory.preimage_iso (comp_iso.app X)) _