Documentation

Mathlib.CategoryTheory.Functor.FullyFaithful

Full and faithful functors #

We define typeclasses Full and Faithful, decorating functors.

Main definitions and results #

See CategoryTheory.Equivalence.of_fullyFaithful_ess_surj for the fact that a functor is an equivalence if and only if it is fully faithful and essentially surjective.

A functor F : C ⥤ D is full if for each X Y : C, F.map is surjective.

See .

Instances

    A functor F : C ⥤ D is faithful if for each X Y : C, F.map is injective.

    See .

    • map_injective : ∀ {X Y : C}, Function.Injective F.map

      F.map is injective for each X Y : C.

    Instances
      noncomputable def CategoryTheory.Functor.preimage {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {X : C} {Y : C} (F : CategoryTheory.Functor C D) [CategoryTheory.Functor.Full F] (f : F.obj X F.obj Y) :
      X Y

      The choice of a preimage of a morphism under a full functor.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.Functor.map_preimage {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Functor.Full F] {X : C} {Y : C} (f : F.obj X F.obj Y) :
        F.map (F.preimage f) = f
        @[simp]
        theorem CategoryTheory.Functor.preimage_comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} [CategoryTheory.Functor.Full F] [CategoryTheory.Functor.Faithful F] {X : C} {Y : C} {Z : C} (f : F.obj X F.obj Y) (g : F.obj Y F.obj Z) :
        F.preimage (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (F.preimage f) (F.preimage g)

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

        Equations
        Instances For

          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
          Instances For

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

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

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

              Equations
              Instances For

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

                Equations
                Instances For

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

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

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

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

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

                      def CategoryTheory.Functor.Faithful.div {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C E) (G : CategoryTheory.Functor D E) [CategoryTheory.Functor.Faithful G] (obj : CD) (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}, HEq (G.map (map f)) (F.map f)) :

                      “Divide” a functor by a faithful functor.

                      Equations
                      Instances For
                        theorem CategoryTheory.Functor.Faithful.div_comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C E) [CategoryTheory.Functor.Faithful F] (G : CategoryTheory.Functor D E) [CategoryTheory.Functor.Faithful G] (obj : CD) (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}, HEq (G.map (map f)) (F.map f)) :
                        theorem CategoryTheory.Functor.Faithful.div_faithful {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C E) [CategoryTheory.Functor.Faithful F] (G : CategoryTheory.Functor D E) [CategoryTheory.Functor.Faithful G] (obj : CD) (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}, HEq (G.map (map f)) (F.map f)) :

                        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
                        Instances For
                          @[deprecated CategoryTheory.Functor.Full]

                          Alias of CategoryTheory.Functor.Full.


                          A functor F : C ⥤ D is full if for each X Y : C, F.map is surjective.

                          See .

                          Equations
                          Instances For
                            @[deprecated CategoryTheory.Functor.Faithful]

                            Alias of CategoryTheory.Functor.Faithful.


                            A functor F : C ⥤ D is faithful if for each X Y : C, F.map is injective.

                            See .

                            Equations
                            Instances For
                              @[deprecated CategoryTheory.Functor.preimage_comp]
                              theorem CategoryTheory.preimage_comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} [CategoryTheory.Functor.Full F] [CategoryTheory.Functor.Faithful F] {X : C} {Y : C} {Z : C} (f : F.obj X F.obj Y) (g : F.obj Y F.obj Z) :
                              F.preimage (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (F.preimage f) (F.preimage g)

                              Alias of CategoryTheory.Functor.preimage_comp.

                              @[deprecated CategoryTheory.Functor.preimage_map]

                              Alias of CategoryTheory.Functor.preimage_map.

                              @[deprecated CategoryTheory.Functor.Full.of_iso]

                              Alias of CategoryTheory.Functor.Full.of_iso.


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

                              @[deprecated CategoryTheory.Functor.Faithful.div]
                              def CategoryTheory.Faithful.div {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C E) (G : CategoryTheory.Functor D E) [CategoryTheory.Functor.Faithful G] (obj : CD) (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}, HEq (G.map (map f)) (F.map f)) :

                              Alias of CategoryTheory.Functor.Faithful.div.


                              “Divide” a functor by a faithful functor.

                              Equations
                              Instances For
                                @[deprecated CategoryTheory.Functor.Faithful.div_comp]
                                theorem CategoryTheory.Faithful.div_comp {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C E) [CategoryTheory.Functor.Faithful F] (G : CategoryTheory.Functor D E) [CategoryTheory.Functor.Faithful G] (obj : CD) (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}, HEq (G.map (map f)) (F.map f)) :

                                Alias of CategoryTheory.Functor.Faithful.div_comp.

                                @[deprecated CategoryTheory.Functor.Faithful.div_faithful]
                                theorem CategoryTheory.Faithful.div_faithful {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C E) [CategoryTheory.Functor.Faithful F] (G : CategoryTheory.Functor D E) [CategoryTheory.Functor.Faithful G] (obj : CD) (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}, HEq (G.map (map f)) (F.map f)) :

                                Alias of CategoryTheory.Functor.Faithful.div_faithful.

                                @[deprecated CategoryTheory.Functor.fullyFaithfulCancelRight]

                                Alias of CategoryTheory.Functor.fullyFaithfulCancelRight.


                                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
                                Instances For
                                  @[deprecated CategoryTheory.Functor.map_preimage]
                                  theorem CategoryTheory.Functor.image_preimage {C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Functor.Full F] {X : C} {Y : C} (f : F.obj X F.obj Y) :
                                  F.map (F.preimage f) = f

                                  Alias of CategoryTheory.Functor.map_preimage.