# 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₁) [] (D : Type u₂) [] :
Type (max (max (max u₁ u₂) v₁) v₂)

Bundled left-exact functors.

Instances For
instance CategoryTheory.instCategoryLeftExactFunctor (C : Type u₁) [] (D : Type u₂) [] :

C ⥤ₗ D denotes left exact functors C ⥤ D

Instances For

A left exact functor is in particular a functor.

Instances For
def CategoryTheory.RightExactFunctor (C : Type u₁) [] (D : Type u₂) [] :
Type (max (max (max u₁ u₂) v₁) v₂)

Bundled right-exact functors.

Instances For
instance CategoryTheory.instCategoryRightExactFunctor (C : Type u₁) [] (D : Type u₂) [] :

C ⥤ᵣ D denotes right exact functors C ⥤ D

Instances For

A right exact functor is in particular a functor.

Instances For
def CategoryTheory.ExactFunctor (C : Type u₁) [] (D : Type u₂) [] :
Type (max (max (max u₁ u₂) v₁) v₂)

Bundled exact functors.

Instances For
instance CategoryTheory.instCategoryExactFunctor (C : Type u₁) [] (D : Type u₂) [] :

C ⥤ₑ D denotes exact functors C ⥤ D

Instances For

An exact functor is in particular a functor.

Instances For

Turn an exact functor into a left exact functor.

Instances For

Turn an exact functor into a left exact functor.

Instances For
@[simp]
theorem CategoryTheory.LeftExactFunctor.ofExact_obj {C : Type u₁} [] {D : Type u₂} [] (F : C ⥤ₑ D) :
().obj F = { obj := F.obj, property := (_ : ) }
@[simp]
theorem CategoryTheory.RightExactFunctor.ofExact_obj {C : Type u₁} [] {D : Type u₂} [] (F : C ⥤ₑ D) :
().obj F = { obj := F.obj, property := (_ : ) }
@[simp]
theorem CategoryTheory.LeftExactFunctor.ofExact_map {C : Type u₁} [] {D : Type u₂} [] {F : C ⥤ₑ D} {G : C ⥤ₑ D} (α : F G) :
().map α = α
@[simp]
theorem CategoryTheory.RightExactFunctor.ofExact_map {C : Type u₁} [] {D : Type u₂} [] {F : C ⥤ₑ D} {G : C ⥤ₑ D} (α : F G) :
().map α = α
@[simp]
theorem CategoryTheory.LeftExactFunctor.forget_obj {C : Type u₁} [] {D : Type u₂} [] (F : C ⥤ₗ D) :
().obj F = F.obj
@[simp]
theorem CategoryTheory.RightExactFunctor.forget_obj {C : Type u₁} [] {D : Type u₂} [] (F : C ⥤ᵣ D) :
().obj F = F.obj
@[simp]
theorem CategoryTheory.ExactFunctor.forget_obj {C : Type u₁} [] {D : Type u₂} [] (F : C ⥤ₑ D) :
().obj F = F.obj
@[simp]
theorem CategoryTheory.LeftExactFunctor.forget_map {C : Type u₁} [] {D : Type u₂} [] {F : C ⥤ₗ D} {G : C ⥤ₗ D} (α : F G) :
().map α = α
@[simp]
theorem CategoryTheory.RightExactFunctor.forget_map {C : Type u₁} [] {D : Type u₂} [] {F : C ⥤ᵣ D} {G : C ⥤ᵣ D} (α : F G) :
().map α = α
@[simp]
theorem CategoryTheory.ExactFunctor.forget_map {C : Type u₁} [] {D : Type u₂} [] {F : C ⥤ₑ D} {G : C ⥤ₑ D} (α : F G) :
().map α = α
def CategoryTheory.LeftExactFunctor.of {C : Type u₁} [] {D : Type u₂} [] (F : ) :
C ⥤ₗ D

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

Instances For
def CategoryTheory.RightExactFunctor.of {C : Type u₁} [] {D : Type u₂} [] (F : ) :
C ⥤ᵣ D

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

Instances For
def CategoryTheory.ExactFunctor.of {C : Type u₁} [] {D : Type u₂} [] (F : ) :
C ⥤ₑ D

Turn an exact functor into an object of the category ExactFunctor C D.

Instances For
@[simp]
theorem CategoryTheory.LeftExactFunctor.of_fst {C : Type u₁} [] {D : Type u₂} [] (F : ) :
= F
@[simp]
theorem CategoryTheory.RightExactFunctor.of_fst {C : Type u₁} [] {D : Type u₂} [] (F : ) :
= F
@[simp]
theorem CategoryTheory.ExactFunctor.of_fst {C : Type u₁} [] {D : Type u₂} [] (F : ) :
().obj = F
theorem CategoryTheory.LeftExactFunctor.forget_obj_of {C : Type u₁} [] {D : Type u₂} [] (F : ) :
theorem CategoryTheory.RightExactFunctor.forget_obj_of {C : Type u₁} [] {D : Type u₂} [] (F : ) :
theorem CategoryTheory.ExactFunctor.forget_obj_of {C : Type u₁} [] {D : Type u₂} [] (F : ) :
noncomputable instance CategoryTheory.instPreservesFiniteLimitsObjFunctorNonempty {C : Type u₁} [] {D : Type u₂} [] (F : C ⥤ₗ D) :
noncomputable instance CategoryTheory.instPreservesFiniteColimitsObjFunctorNonempty {C : Type u₁} [] {D : Type u₂} [] (F : C ⥤ᵣ D) :