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.

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.

    Equations
    Instances For

      The adjunction reflector i ⊣ i when i is reflective.

      Equations
      Instances For

        A reflective functor is fully faithful.

        Equations
        Instances For
          theorem CategoryTheory.unit_obj_eq_map_unit {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] (i : Functor D C) [Reflective i] (X : C) :
          (reflectorAdjunction i).unit.app (i.obj ((reflector i).obj X)) = i.map ((reflector i).map ((reflectorAdjunction i).unit.app X))

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

          theorem CategoryTheory.Functor.essImage.unit_isIso {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] {A : C} (h : A i.essImage) :
          IsIso ((reflectorAdjunction i).unit.app A)

          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 CategoryTheory.mem_essImage_of_unit_isSplitMono {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] {A : C} [IsSplitMono ((reflectorAdjunction i).unit.app A)] :
          A i.essImage

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

          instance CategoryTheory.Reflective.comp {C : Type u₁} {D : Type u₂} {E : Type u₃} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] [Category.{v₃, u₃} E] (F : Functor C D) (G : Functor D E) [Reflective F] [Reflective G] :
          Reflective (F.comp G)

          Composition of reflective functors.

          Equations
          • One or more equations did not get rendered due to their size.
          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.

          Equations
          Instances For
            theorem CategoryTheory.unitCompPartialBijectiveAux_symm_apply {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] {A : C} {B : D} (f : i.obj ((reflector i).obj A) i.obj B) :

            The description of the inverse of the bijection unitCompPartialBijectiveAux.

            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 : B i.essImage) :
            (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.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.unitCompPartialBijective_symm_apply {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 : B i.essImage) (f : i.obj ((reflector i).obj A) B) :
              theorem CategoryTheory.unitCompPartialBijective_symm_natural {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] (A : C) {B B' : C} (h : B B') (hB : B i.essImage) (hB' : B' i.essImage) (f : i.obj ((reflector i).obj A) B) :
              theorem CategoryTheory.unitCompPartialBijective_natural {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] (A : C) {B B' : C} (h : B B') (hB : B i.essImage) (hB' : B' i.essImage) (f : A B) :
              instance CategoryTheory.instIsIsoAppUnitReflectorAdjunctionObjEssImage {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] (X : i.EssImageSubcategory) :
              IsIso ((reflectorAdjunction i).unit.app X.obj)
              def CategoryTheory.equivEssImageOfReflective {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] :
              D i.EssImageSubcategory

              If i : D ⥤ C is reflective, the inverse functor of i ≌ F.essImage can be explicitly defined by the reflector.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem CategoryTheory.equivEssImageOfReflective_counitIso {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {i : Functor D C} [Reflective i] :
                equivEssImageOfReflective.counitIso = Functor.fullyFaithfulCancelRight i.essImageInclusion (NatIso.ofComponents (fun (X : i.EssImageSubcategory) => (asIso ((reflectorAdjunction i).unit.app X.obj)).symm) )
                @[simp]
                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.

                  Equations
                  Instances For

                    A coreflective functor is fully faithful.

                    Equations
                    Instances For
                      theorem CategoryTheory.counit_obj_eq_map_counit {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] (j : Functor C D) [Coreflective j] (X : D) :
                      (coreflectorAdjunction j).counit.app (j.obj ((coreflector j).obj X)) = j.map ((coreflector j).map ((coreflectorAdjunction j).counit.app X))
                      theorem CategoryTheory.Functor.essImage.counit_isIso {C : Type u₁} {D : Type u₂} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] {j : Functor C D} [Coreflective j] {A : D} (h : A j.essImage) :
                      IsIso ((coreflectorAdjunction j).counit.app A)
                      instance CategoryTheory.Coreflective.comp {C : Type u₁} {D : Type u₂} {E : Type u₃} [Category.{v₁, u₁} C] [Category.{v₂, u₂} D] [Category.{v₃, u₃} E] (F : Functor C D) (G : Functor D E) [Coreflective F] [Coreflective G] :
                      Coreflective (F.comp G)
                      Equations
                      • One or more equations did not get rendered due to their size.