Documentation

Mathlib.CategoryTheory.ObjectProperty.FullSubcategory

The full subcategory associated to a property of objects #

Given a category C and P : ObjectProperty C, we define a category structure on the type P.FullSubcategory of objects in C satisfying P.

A subtype-like structure for full subcategories. Morphisms just ignore the property. We don't use actual subtypes since the simp-normal form ↑X of X.val does not work well for full subcategories.

  • obj : C

    The category of which this is a full subcategory

  • property : P self.obj

    The predicate satisfied by all objects in this subcategory

Instances For

    The forgetful functor from a full subcategory into the original category ("forgetting" the condition).

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.ObjectProperty.ι_map {C : Type u} [Category.{v, u} C] (P : ObjectProperty C) {X Y : P.FullSubcategory} {f : X Y} :
      P.ι.map f = f

      Constructor for isomorphisms in P.FullSubcategory when P : ObjectProperty C.

      Equations
      • P.isoMk e = { hom := e.hom, inv := e.inv, hom_inv_id := , inv_hom_id := }
      Instances For
        @[simp]
        @[simp]

        If P and P' are properties of objects such that P ≤ P', there is an induced functor P.FullSubcategory ⥤ P'.FullSubcategory.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.ObjectProperty.ιOfLE_map {C : Type u} [Category.{v, u} C] {P P' : ObjectProperty C} (h : P P') {X✝ Y✝ : P.FullSubcategory} (f : X✝ Y✝) :
          (ιOfLE h).map f = f
          @[simp]

          If h : P ≤ P', then ιOfLE h is fully faithful.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[deprecated "use ιOfLECompιIso" (since := "2025-03-04")]

            If h : P ≤ P' is an inequality of properties of objects, this is the obvious isomorphism ιOfLE h ⋙ P'.ι ≅ P.ι.

            Equations
            Instances For
              def CategoryTheory.ObjectProperty.lift {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) :

              A functor which maps objects to objects satisfying a certain property induces a lift through the full subcategory of objects satisfying that property.

              Equations
              • P.lift F hF = { obj := fun (X : C) => { obj := F.obj X, property := }, map := fun {X Y : C} (f : X Y) => F.map f, map_id := , map_comp := }
              Instances For
                @[simp]
                theorem CategoryTheory.ObjectProperty.lift_map {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) {X✝ Y✝ : C} (f : X✝ Y✝) :
                (P.lift F hF).map f = F.map f
                @[simp]
                theorem CategoryTheory.ObjectProperty.lift_obj_obj {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) (X : C) :
                ((P.lift F hF).obj X).obj = F.obj X
                @[deprecated "use liftCompιIso" (since := "2025-03-04")]
                theorem CategoryTheory.ObjectProperty.FullSubcategory.lift_comp_inclusion_eq {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) :
                (P.lift F hF).comp P.ι = F
                def CategoryTheory.ObjectProperty.liftCompιIso {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) :
                (P.lift F hF).comp P.ι F

                Composing the lift of a functor through a full subcategory with the inclusion yields the original functor. This is actually true definitionally.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.ObjectProperty.ι_obj_lift_obj {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) (X : C) :
                  P.ι.obj ((P.lift F hF).obj X) = F.obj X
                  @[simp]
                  theorem CategoryTheory.ObjectProperty.ι_obj_lift_map {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) {X Y : C} (f : X Y) :
                  P.ι.map ((P.lift F hF).map f) = F.map f
                  instance CategoryTheory.ObjectProperty.instFaithfulFullSubcategoryLift {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) [F.Faithful] :
                  (P.lift F hF).Faithful
                  instance CategoryTheory.ObjectProperty.instFullFullSubcategoryLift {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) [F.Full] :
                  (P.lift F hF).Full
                  instance CategoryTheory.ObjectProperty.instFaithfulFullSubcategoryLift_1 {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) [F.Faithful] :
                  (P.lift F hF).Faithful
                  instance CategoryTheory.ObjectProperty.instFullFullSubcategoryLift_1 {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) [F.Full] :
                  (P.lift F hF).Full
                  def CategoryTheory.ObjectProperty.liftCompιOfLEIso {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) {Q : ObjectProperty D} (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) (h : P Q) :
                  (P.lift F hF).comp (ιOfLE h) Q.lift F

                  When h : P ≤ Q, this is the canonical isomorphism P.lift F hF ⋙ ιOfLE h ≅ Q.lift F _.

                  Equations
                  Instances For
                    @[deprecated "Use liftCompιOfLEIso" (since := "2025-03-04")]
                    theorem CategoryTheory.ObjectProperty.FullSubcategory.lift_comp_map {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) {Q : ObjectProperty D} (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) (h : P Q) :
                    (P.lift F hF).comp (ιOfLE h) = Q.lift F
                    @[deprecated CategoryTheory.ObjectProperty.FullSubcategory (since := "2025-03-04")]

                    Alias of CategoryTheory.ObjectProperty.FullSubcategory.


                    A subtype-like structure for full subcategories. Morphisms just ignore the property. We don't use actual subtypes since the simp-normal form ↑X of X.val does not work well for full subcategories.

                    Equations
                    Instances For
                      @[deprecated CategoryTheory.ObjectProperty.ι (since := "2025-03-04")]

                      Alias of CategoryTheory.ObjectProperty.ι.


                      The forgetful functor from a full subcategory into the original category ("forgetting" the condition).

                      Equations
                      Instances For
                        @[deprecated CategoryTheory.ObjectProperty.ι_obj (since := "2025-03-04")]

                        Alias of CategoryTheory.ObjectProperty.ι_obj.

                        @[deprecated CategoryTheory.ObjectProperty.ι_map (since := "2025-03-04")]

                        Alias of CategoryTheory.ObjectProperty.ι_map.

                        @[deprecated CategoryTheory.ObjectProperty.fullyFaithfulι (since := "2025-03-04")]

                        Alias of CategoryTheory.ObjectProperty.fullyFaithfulι.


                        The inclusion of a full subcategory is fully faithful.

                        Equations
                        Instances For
                          @[deprecated CategoryTheory.ObjectProperty.ιOfLE (since := "2025-03-04")]

                          Alias of CategoryTheory.ObjectProperty.ιOfLE.


                          If P and P' are properties of objects such that P ≤ P', there is an induced functor P.FullSubcategory ⥤ P'.FullSubcategory.

                          Equations
                          Instances For
                            @[deprecated CategoryTheory.ObjectProperty.lift (since := "2025-03-04")]
                            def CategoryTheory.FullSubcategory.lift {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) :

                            Alias of CategoryTheory.ObjectProperty.lift.


                            A functor which maps objects to objects satisfying a certain property induces a lift through the full subcategory of objects satisfying that property.

                            Equations
                            Instances For
                              @[deprecated CategoryTheory.ObjectProperty.liftCompιIso (since := "2025-03-04")]
                              def CategoryTheory.FullSubcategory.lift_comp_inclusion {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) :
                              (P.lift F hF).comp P.ι F

                              Alias of CategoryTheory.ObjectProperty.liftCompιIso.


                              Composing the lift of a functor through a full subcategory with the inclusion yields the original functor. This is actually true definitionally.

                              Equations
                              Instances For
                                @[deprecated CategoryTheory.ObjectProperty.ι_obj_lift_obj (since := "2025-03-04")]
                                theorem CategoryTheory.fullSubcategoryInclusion_obj_lift_obj {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) (X : C) :
                                P.ι.obj ((P.lift F hF).obj X) = F.obj X

                                Alias of CategoryTheory.ObjectProperty.ι_obj_lift_obj.

                                @[deprecated CategoryTheory.ObjectProperty.ι_obj_lift_map (since := "2025-03-04")]
                                theorem CategoryTheory.fullSubcategoryInclusion_map_lift_map {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] (P : ObjectProperty D) (F : Functor C D) (hF : ∀ (X : C), P (F.obj X)) {X Y : C} (f : X Y) :
                                P.ι.map ((P.lift F hF).map f) = F.map f

                                Alias of CategoryTheory.ObjectProperty.ι_obj_lift_map.