Documentation

Mathlib.CategoryTheory.Adjunction.Reflective

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 Mathlib/CategoryTheory/Monad/Limits.lean.

class CategoryTheory.Reflective {C : Type u₁} {D : Type uā‚‚} [Category.{v₁, u₁} C] [Category.{vā‚‚, uā‚‚} D] (R : Functor D C) extends R.Full, R.Faithful :
Type (max (max (max u₁ uā‚‚) v₁) vā‚‚)

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

Instances

    The reflector C ℤ D when R : D ℤ C is reflective.

    Instances For

      The adjunction reflector i ⊣ i when i is reflective.

      Instances For

        A reflective functor is fully faithful.

        Instances For

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

          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.)

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

          @[implicit_reducible]

          Composition of reflective functors.

          noncomputable def CategoryTheory.unitCompPartialBijectiveAux {C : Type u₁} {D : Type uā‚‚} [Category.{v₁, u₁} C] [Category.{vā‚‚, uā‚‚} D] {i : Functor D C} [Reflective i] (A : C) (B : D) :
          (A ⟶ i.obj B) ā‰ƒ (i.obj ((reflector i).obj A) ⟶ i.obj B)

          (Implementation) Auxiliary definition for unitCompPartialBijective.

          Instances For
            noncomputable def CategoryTheory.unitCompPartialBijective {C : Type u₁} {D : Type uā‚‚} [Category.{v₁, u₁} C] [Category.{vā‚‚, uā‚‚} D] {i : Functor D C} [Reflective i] (A : C) {B : C} (hB : i.essImage B) :
            (A ⟶ B) ā‰ƒ (i.obj ((reflector 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 fun (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 unitCompPartialBijective_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.

            Instances For

              If i : D ℤ C is reflective, the inverse functor of i ā‰Œ F.essImage can be explicitly defined by the reflector.

              Instances For
                class CategoryTheory.Coreflective {C : Type u₁} {D : Type uā‚‚} [Category.{v₁, u₁} C] [Category.{vā‚‚, uā‚‚} D] (L : Functor C D) extends L.Full, L.Faithful :
                Type (max (max (max u₁ uā‚‚) v₁) vā‚‚)

                A functor is coreflective, or a coreflective inclusion, if it is fully faithful and left adjoint.

                Instances

                  The coreflector D ℤ C when L : C ℤ D is coreflective.

                  Instances For

                    The adjunction j ⊣ coreflector j when j is coreflective.

                    Instances For

                      A coreflective functor is fully faithful.

                      Instances For