mathlib3 documentation

category_theory.functor.fully_faithful

Full and faithful functors #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

We define typeclasses full and faithful, decorating functors.

Main definitions and results #

See category_theory.equivalence.of_fully_faithful_ess_surj for the fact that a functor is an equivalence if and only if it is fully faithful and essentially surjective.

@[class]
structure category_theory.full {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) :
Type (max u₁ v₁ v₂)

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 of this typeclass
Instances of other typeclasses for category_theory.full
  • category_theory.full.has_sizeof_inst
@[simp]
theorem category_theory.full.witness {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} [self : category_theory.full F] {X Y : C} (f : F.obj X F.obj Y) :
@[class]
structure category_theory.faithful {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) :
Prop

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 of this typeclass
def category_theory.functor.preimage {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {X Y : C} (F : C D) [category_theory.full F] (f : F.obj X F.obj Y) :
X Y

The specified preimage of a morphism under a full functor.

Equations
@[simp]
theorem category_theory.functor.image_preimage {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) [category_theory.full F] {X Y : C} (f : F.obj X F.obj Y) :
F.map (F.preimage f) = f
noncomputable def category_theory.functor.full_of_exists {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] (F : C D) (h : (X Y : C) (f : F.obj X F.obj Y), (p : X Y), F.map p = f) :

Deduce that F is full from the existence of preimages, using choice.

Equations

Deduce that F is full from surjectivity of F.map, using choice.

Equations
@[simp]
theorem category_theory.preimage_comp {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} [category_theory.full F] [category_theory.faithful F] {X Y Z : C} (f : F.obj X F.obj Y) (g : F.obj Y F.obj Z) :
F.preimage (f g) = F.preimage f F.preimage g
@[simp]
theorem category_theory.preimage_map {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {F : C D} [category_theory.full F] [category_theory.faithful F] {X Y : C} (f : X Y) :
F.preimage (F.map f) = f

If F : C ⥤ D is fully faithful, every isomorphism F.obj X ≅ F.obj Y has a preimage.

Equations

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

If F is fully faithful, we have an equivalence of iso-sets X ≅ Y and F X ≅ F Y.

Equations

We can construct a natural transformation between functors by constructing a natural transformation between those functors composed with a fully faithful functor.

Equations

We can construct a natural isomorphism between functors by constructing a natural isomorphism between those functors composed with a fully faithful functor.

Equations

Horizontal composition with a fully faithful functor induces a bijection on natural transformations.

Equations

Horizontal composition with a fully faithful functor induces a bijection on natural isomorphisms.

Equations
@[protected, instance]
Equations

If F is full, and naturally isomorphic to some F', then F' is also full.

Equations
theorem category_theory.faithful.of_comp_iso {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {E : Type u₃} [category_theory.category E] {F : C D} {G : D E} {H : C E} [ℋ : category_theory.faithful H] (h : F G H) :
theorem category_theory.faithful.of_comp_eq {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {E : Type u₃} [category_theory.category E] {F : C D} {G : D E} {H : C E} [ℋ : category_theory.faithful H] (h : F G = H) :
theorem eq.faithful_of_comp {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {E : Type u₃} [category_theory.category E] {F : C D} {G : D E} {H : C E} [ℋ : category_theory.faithful H] (h : F G = H) :

Alias of category_theory.faithful.of_comp_eq.

@[protected]
def category_theory.faithful.div {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {E : Type u₃} [category_theory.category E] (F : C E) (G : D E) [category_theory.faithful G] (obj : C D) (h_obj : (X : C), G.obj (obj X) = F.obj X) (map : Π {X Y : C}, (X Y) (obj X obj Y)) (h_map : {X Y : C} {f : X Y}, G.map (map f) == F.map f) :
C D

“Divide” a functor by a faithful functor.

Equations
theorem category_theory.faithful.div_comp {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {E : Type u₃} [category_theory.category E] (F : C E) [category_theory.faithful F] (G : D E) [category_theory.faithful G] (obj : C D) (h_obj : (X : C), G.obj (obj X) = F.obj X) (map : Π {X Y : C}, (X Y) (obj X obj Y)) (h_map : {X Y : C} {f : X Y}, G.map (map f) == F.map f) :
category_theory.faithful.div F G obj h_obj map h_map G = F
theorem category_theory.faithful.div_faithful {C : Type u₁} [category_theory.category C] {D : Type u₂} [category_theory.category D] {E : Type u₃} [category_theory.category E] (F : C E) [category_theory.faithful F] (G : D E) [category_theory.faithful G] (obj : C D) (h_obj : (X : C), G.obj (obj X) = F.obj X) (map : Π {X Y : C}, (X Y) (obj X obj Y)) (h_map : {X Y : C} {f : X Y}, G.map (map f) == F.map f) :
@[protected, instance]
Equations

If F ⋙ G is full and G is faithful, then F is full.

Equations

If F ⋙ G is full and G is faithful, then F is full.

Equations

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
@[simp]
@[simp]