# Reflective functors #

Basic properties of reflective functors, especially those relating to their essential image.

Note properties of reflective functors relating to limits and colimits are included in category_theory.monad.limits.

@[class]
structure category_theory.reflective {C : Type u₁} {D : Type u₂} (R : D C) :
Type (max u₁ u₂ v₁ v₂)
• to_full :
• to_faithful :

A functor is reflective, or a reflective inclusion, if it is fully faithful and right adjoint.

Instances
theorem category_theory.unit_obj_eq_map_unit {C : Type u₁} {D : Type u₂} {i : D C} (X : C) :

For a reflective functor i (with left adjoint L), with unit η, we have η_iL = iL η.

@[instance]
def category_theory.is_iso_unit_obj {C : Type u₁} {D : Type u₂} {i : D C} {B : D} :

When restricted to objects in D given by i : D ⥤ C, the unit is an isomorphism. In other words, η_iX is an isomorphism for any X in D. More generally this applies to objects essentially in the reflective subcategory, see functor.ess_image.unit_iso.

theorem category_theory.functor.ess_image.unit_is_iso {C : Type u₁} {D : Type u₂} {i : D C} {A : C} (h : A i.ess_image) :

If A is essentially in the image of a reflective functor i, then η_A is an isomorphism. This gives that the "witness" for A being in the essential image can instead be given as the reflection of A, with the isomorphism as η_A.

(For any B in the reflective subcategory, we automatically have that ε_B is an iso.)

theorem category_theory.mem_ess_image_of_unit_is_iso {C : Type u₁} {D : Type u₂} {i : D C} (A : C)  :

If η_A is an isomorphism, then A is in the essential image of i.

theorem category_theory.mem_ess_image_of_unit_split_mono {C : Type u₁} {D : Type u₂} {i : D C} {A : C}  :

If η_A is a split monomorphism, then A is in the reflective subcategory.

@[instance]
def category_theory.reflective.comp {C : Type u₁} {D : Type u₂} {E : Type u₃} (F : C D) (G : D E) [Fr : category_theory.reflective F] [Gr : category_theory.reflective G] :

Composition of reflective functors.

Equations
def category_theory.unit_comp_partial_bijective_aux {C : Type u₁} {D : Type u₂} {i : D C} (A : C) (B : D) :
(A i.obj B) (i.obj A) i.obj B)

(Implementation) Auxiliary definition for unit_comp_partial_bijective.

Equations
theorem category_theory.unit_comp_partial_bijective_aux_symm_apply {C : Type u₁} {D : Type u₂} {i : D C} {A : C} {B : D} (f : i.obj A) i.obj B) :

The description of the inverse of the bijection unit_comp_partial_bijective_aux.

def category_theory.unit_comp_partial_bijective {C : Type u₁} {D : Type u₂} {i : D C} (A : C) {B : C} (hB : B i.ess_image) :
(A B) (i.obj A) B)

If i has a reflector L, then the function (i.obj (L.obj A) ⟶ B) → (A ⟶ B) given by precomposing with η.app A is a bijection provided B is in the essential image of i. That is, the function λ (f : i.obj (L.obj A) ⟶ B), η.app A ≫ f is bijective, as long as B is in the essential image of i. This definition gives an equivalence: the key property that the inverse can be described nicely is shown in unit_comp_partial_bijective_symm_apply.

This establishes there is a natural bijection (A ⟶ B) ≃ (i.obj (L.obj A) ⟶ B). In other words, from the point of view of objects in D, A and i.obj (L.obj A) look the same: specifically that η.app A is an isomorphism.

Equations
@[simp]
theorem category_theory.unit_comp_partial_bijective_symm_apply {C : Type u₁} {D : Type u₂} {i : D C} (A : C) {B : C} (hB : B i.ess_image) (f : i.obj A) B) :
theorem category_theory.unit_comp_partial_bijective_symm_natural {C : Type u₁} {D : Type u₂} {i : D C} (A : C) {B B' : C} (h : B B') (hB : B i.ess_image) (hB' : B' i.ess_image) (f : i.obj A) B) :
(f h) = h
theorem category_theory.unit_comp_partial_bijective_natural {C : Type u₁} {D : Type u₂} {i : D C} (A : C) {B B' : C} (h : B B') (hB : B i.ess_image) (hB' : B' i.ess_image) (f : A B) :
(f h) =