Documentation

Mathlib.CategoryTheory.Limits.ExactFunctor

Bundled exact functors #

We say that a functor F is left exact if it preserves finite limits, it is right exact if it preserves finite colimits, and it is exact if it is both left exact and right exact.

In this file, we define the categories of bundled left exact, right exact and exact functors.

def CategoryTheory.LeftExactFunctor (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] (D : Type u₂) [CategoryTheory.Category.{v₂, u₂} D] :
Type (max (max (max u₁ u₂) v₁) v₂)

Bundled left-exact functors.

Equations
Instances For

    C ⥤ₗ D denotes left exact functors C ⥤ D

    Equations
    Instances For
      def CategoryTheory.RightExactFunctor (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] (D : Type u₂) [CategoryTheory.Category.{v₂, u₂} D] :
      Type (max (max (max u₁ u₂) v₁) v₂)

      Bundled right-exact functors.

      Equations
      Instances For

        C ⥤ᵣ D denotes right exact functors C ⥤ D

        Equations
        Instances For
          def CategoryTheory.ExactFunctor (C : Type u₁) [CategoryTheory.Category.{v₁, u₁} C] (D : Type u₂) [CategoryTheory.Category.{v₂, u₂} D] :
          Type (max (max (max u₁ u₂) v₁) v₂)

          Bundled exact functors.

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

            C ⥤ₑ D denotes exact functors C ⥤ D

            Equations
            Instances For

              An exact functor is in particular a functor.

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

                Turn a left exact functor into an object of the category LeftExactFunctor C D.

                Equations
                Instances For

                  Turn a right exact functor into an object of the category RightExactFunctor C D.

                  Equations
                  Instances For

                    Whiskering a left exact functor by a left exact functor yields a left exact functor.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem CategoryTheory.LeftExactFunctor.whiskeringLeft_map_app_app (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 : C ⥤ₗ D} {G : C ⥤ₗ D} (η : F G) (H : D ⥤ₗ E) (c : C) :
                      (((CategoryTheory.LeftExactFunctor.whiskeringLeft C D E).map η).app H).app c = H.obj.map (η.app c)
                      @[simp]
                      theorem CategoryTheory.LeftExactFunctor.whiskeringLeft_obj_obj_obj_map (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 : C ⥤ₗ D) (X : D ⥤ₗ E) :
                      ∀ {X_1 Y : C} (f : X_1 Y), (((CategoryTheory.LeftExactFunctor.whiskeringLeft C D E).obj F).obj X).obj.map f = X.obj.map (F.obj.map f)
                      @[simp]
                      theorem CategoryTheory.LeftExactFunctor.whiskeringLeft_obj_map_app (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 : C ⥤ₗ D) :
                      ∀ {X Y : D ⥤ₗ E} (f : X Y) (X_1 : C), (((CategoryTheory.LeftExactFunctor.whiskeringLeft C D E).obj F).map f).app X_1 = f.app (F.obj.obj X_1)

                      Whiskering a left exact functor by a left exact functor yields a left exact functor.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem CategoryTheory.LeftExactFunctor.whiskeringRight_map_app_app (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 : D ⥤ₗ E} {G : D ⥤ₗ E} (η : F G) (H : C ⥤ₗ D) (c : C) :
                        (((CategoryTheory.LeftExactFunctor.whiskeringRight C D E).map η).app H).app c = η.app (H.obj.obj c)
                        @[simp]
                        theorem CategoryTheory.LeftExactFunctor.whiskeringRight_obj_map_app (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 : D ⥤ₗ E) :
                        ∀ {X Y : C ⥤ₗ D} (f : X Y) (X_1 : C), (((CategoryTheory.LeftExactFunctor.whiskeringRight C D E).obj F).map f).app X_1 = F.obj.map (f.app X_1)
                        @[simp]
                        theorem CategoryTheory.LeftExactFunctor.whiskeringRight_obj_obj_obj_map (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 : D ⥤ₗ E) (X : C ⥤ₗ D) :
                        ∀ {X_1 Y : C} (f : X_1 Y), (((CategoryTheory.LeftExactFunctor.whiskeringRight C D E).obj F).obj X).obj.map f = F.obj.map (X.obj.map f)

                        Whiskering a right exact functor by a right exact functor yields a right exact functor.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.RightExactFunctor.whiskeringLeft_map_app_app (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 : C ⥤ᵣ D} {G : C ⥤ᵣ D} (η : F G) (H : D ⥤ᵣ E) (c : C) :
                          (((CategoryTheory.RightExactFunctor.whiskeringLeft C D E).map η).app H).app c = H.obj.map (η.app c)
                          @[simp]
                          theorem CategoryTheory.RightExactFunctor.whiskeringLeft_obj_map_app (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 : C ⥤ᵣ D) :
                          ∀ {X Y : D ⥤ᵣ E} (f : X Y) (X_1 : C), (((CategoryTheory.RightExactFunctor.whiskeringLeft C D E).obj F).map f).app X_1 = f.app (F.obj.obj X_1)
                          @[simp]
                          theorem CategoryTheory.RightExactFunctor.whiskeringLeft_obj_obj_obj_map (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 : C ⥤ᵣ D) (X : D ⥤ᵣ E) :
                          ∀ {X_1 Y : C} (f : X_1 Y), (((CategoryTheory.RightExactFunctor.whiskeringLeft C D E).obj F).obj X).obj.map f = X.obj.map (F.obj.map f)

                          Whiskering a right exact functor by a right exact functor yields a right exact functor.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem CategoryTheory.RightExactFunctor.whiskeringRight_map_app_app (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 : D ⥤ᵣ E} {G : D ⥤ᵣ E} (η : F G) (H : C ⥤ᵣ D) (c : C) :
                            (((CategoryTheory.RightExactFunctor.whiskeringRight C D E).map η).app H).app c = η.app (H.obj.obj c)
                            @[simp]
                            theorem CategoryTheory.RightExactFunctor.whiskeringRight_obj_obj_obj_map (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 : D ⥤ᵣ E) (X : C ⥤ᵣ D) :
                            ∀ {X_1 Y : C} (f : X_1 Y), (((CategoryTheory.RightExactFunctor.whiskeringRight C D E).obj F).obj X).obj.map f = F.obj.map (X.obj.map f)
                            @[simp]
                            theorem CategoryTheory.RightExactFunctor.whiskeringRight_obj_map_app (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 : D ⥤ᵣ E) :
                            ∀ {X Y : C ⥤ᵣ D} (f : X Y) (X_1 : C), (((CategoryTheory.RightExactFunctor.whiskeringRight C D E).obj F).map f).app X_1 = F.obj.map (f.app X_1)

                            Whiskering an exact functor by an exact functor yields an exact functor.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem CategoryTheory.ExactFunctor.whiskeringLeft_obj_obj_obj_map (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 : C ⥤ₑ D) (X : D ⥤ₑ E) :
                              ∀ {X_1 Y : C} (f : X_1 Y), (((CategoryTheory.ExactFunctor.whiskeringLeft C D E).obj F).obj X).obj.map f = X.obj.map (F.obj.map f)
                              @[simp]
                              theorem CategoryTheory.ExactFunctor.whiskeringLeft_obj_obj_obj_obj (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 : C ⥤ₑ D) (X : D ⥤ₑ E) (X : C) :
                              (((CategoryTheory.ExactFunctor.whiskeringLeft C D E).obj F).obj X✝).obj.obj X = X✝.obj.obj (F.obj.obj X)
                              @[simp]
                              theorem CategoryTheory.ExactFunctor.whiskeringLeft_obj_map_app (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 : C ⥤ₑ D) :
                              ∀ {X Y : D ⥤ₑ E} (f : X Y) (X_1 : C), (((CategoryTheory.ExactFunctor.whiskeringLeft C D E).obj F).map f).app X_1 = f.app (F.obj.obj X_1)
                              @[simp]
                              theorem CategoryTheory.ExactFunctor.whiskeringLeft_map_app_app (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 : C ⥤ₑ D} {G : C ⥤ₑ D} (η : F G) (H : D ⥤ₑ E) (c : C) :
                              (((CategoryTheory.ExactFunctor.whiskeringLeft C D E).map η).app H).app c = H.obj.map (η.app c)

                              Whiskering an exact functor by an exact functor yields an exact functor.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                @[simp]
                                @[simp]
                                theorem CategoryTheory.ExactFunctor.whiskeringRight_map_app_app (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 : D ⥤ₑ E} {G : D ⥤ₑ E} (η : F G) (H : C ⥤ₑ D) (c : C) :
                                (((CategoryTheory.ExactFunctor.whiskeringRight C D E).map η).app H).app c = η.app (H.obj.obj c)
                                @[simp]
                                theorem CategoryTheory.ExactFunctor.whiskeringRight_obj_map_app (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 : D ⥤ₑ E) :
                                ∀ {X Y : C ⥤ₑ D} (f : X Y) (X_1 : C), (((CategoryTheory.ExactFunctor.whiskeringRight C D E).obj F).map f).app X_1 = F.obj.map (f.app X_1)
                                @[simp]
                                theorem CategoryTheory.ExactFunctor.whiskeringRight_obj_obj_obj_map (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 : D ⥤ₑ E) (X : C ⥤ₑ D) :
                                ∀ {X_1 Y : C} (f : X_1 Y), (((CategoryTheory.ExactFunctor.whiskeringRight C D E).obj F).obj X).obj.map f = F.obj.map (X.obj.map f)