Full and faithful functors #
We define typeclasses Full and Faithful, decorating functors.
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. Full Fcarries no data.
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.
A functor F : C ⥤ D is full if for each X Y : C, F.map is surjective.
See
- map_surjective : ∀ {X Y : C}, Function.Surjective F.map
Instances
A functor F : C ⥤ D is faithful if for each X Y : C, F.map is injective.
See
- map_injective : ∀ {X Y : C}, Function.Injective F.map
F.mapis injective for eachX Y : C.
Instances
The choice of a preimage of a morphism under a full functor.
Equations
- F.preimage f = Exists.choose ⋯
Instances For
If F : C ⥤ D is fully faithful, every isomorphism F.obj X ≅ F.obj Y has a preimage.
Equations
- CategoryTheory.Functor.preimageIso F f = { hom := F.preimage f.hom, inv := F.preimage f.inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
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.
Equations
- CategoryTheory.equivOfFullyFaithful F = { toFun := fun (f : X ⟶ Y) => F.map f, invFun := fun (f : F.obj X ⟶ F.obj Y) => F.preimage f, left_inv := ⋯, right_inv := ⋯ }
Instances For
If F is fully faithful, we have an equivalence of iso-sets X ≅ Y and F X ≅ F Y.
Equations
- One or more equations did not get rendered due to their size.
Instances For
We can construct a natural transformation between functors by constructing a natural transformation between those functors composed with a fully faithful functor.
Equations
- CategoryTheory.natTransOfCompFullyFaithful H α = { app := fun (X : C) => (CategoryTheory.equivOfFullyFaithful H).symm (α.app X), naturality := ⋯ }
Instances For
We can construct a natural isomorphism between functors by constructing a natural isomorphism between those functors composed with a fully faithful functor.
Equations
- CategoryTheory.natIsoOfCompFullyFaithful H i = CategoryTheory.NatIso.ofComponents (fun (X : C) => (CategoryTheory.isoEquivOfFullyFaithful H).symm (i.app X)) ⋯
Instances For
Horizontal composition with a fully faithful functor induces a bijection on natural transformations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Horizontal composition with a fully faithful functor induces a bijection on natural isomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
If F is full, and naturally isomorphic to some F', then F' is also full.
“Divide” a functor by a faithful functor.
Equations
- CategoryTheory.Functor.Faithful.div F G obj h_obj map h_map = { toPrefunctor := { obj := obj, map := map }, map_id := ⋯, map_comp := ⋯ }
Instances For
Equations
- ⋯ = ⋯
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
- CategoryTheory.Functor.fullyFaithfulCancelRight H comp_iso = CategoryTheory.NatIso.ofComponents (fun (X : C) => CategoryTheory.Functor.preimageIso H (comp_iso.app X)) ⋯
Instances For
Alias of CategoryTheory.Functor.Full.
A functor F : C ⥤ D is full if for each X Y : C, F.map is surjective.
See
Instances For
Alias of CategoryTheory.Functor.Faithful.
A functor F : C ⥤ D is faithful if for each X Y : C, F.map is injective.
See
Instances For
Alias of CategoryTheory.Functor.preimage_id.
Alias of CategoryTheory.Functor.preimage_comp.
Alias of CategoryTheory.Functor.preimage_map.
Alias of CategoryTheory.Functor.Faithful.of_comp.
Alias of CategoryTheory.Functor.Full.of_iso.
If F is full, and naturally isomorphic to some F', then F' is also full.
Alias of CategoryTheory.Functor.Faithful.of_iso.
Alias of CategoryTheory.Functor.Faithful.div.
“Divide” a functor by a faithful functor.
Instances For
Alias of CategoryTheory.Functor.Faithful.div_comp.
Alias of CategoryTheory.Functor.Full.of_comp_faithful.
If F ⋙ G is full and G is faithful, then F is full.
Alias of CategoryTheory.Functor.Full.of_comp_faithful_iso.
If F ⋙ G is full and G is faithful, then F is full.
Alias of CategoryTheory.Functor.fullyFaithfulCancelRight.
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
Instances For
Alias of CategoryTheory.Functor.fullyFaithfulCancelRight_hom_app.
Alias of CategoryTheory.Functor.fullyFaithfulCancelRight_inv_app.
Alias of CategoryTheory.Functor.map_preimage.