Documentation

Mathlib.CategoryTheory.Abelian.FreydMitchell

The Freyd-Mitchell embedding theorem #

Let C be an abelian category. We construct a ring FreydMitchell.EmbeddingRing C and a functor FreydMitchell.embedding : C ⥤ ModuleCat.{max u v} (EmbeddingRing C) which is full, faithful and exact.

Overview over the proof #

The usual stategy to prove the Freyd-Mitchell embedding theorem is as follows:

  1. Prove that if D is a Grothendieck abelian category and F : C ⥤ Dᵒᵖ is a functor from a small category, then there is a functor G : Dᵒᵖ ⥤ ModuleCat R for a suitable R such that G is faithful and exact and F ⋙ G is full.
  2. Find a suitable Grothendieck abelian category D and a full, faithful and exact functor F : C ⥤ Dᵒᵖ.

To prove (1), we proceed as follows:

  1. Using the Special Adjoint Functor Theorem and the duality between subobjects and quotients in abelian categories, we have that Grothendieck abelian categories have all limits (this is shown in Mathlib.CategoryTheory.Abelian.GrothendieckCategory.Basic).
  2. Using the small object argument, it is shown that Grothendieck abelian categories have enough injectives (see Mathlib.CategoryTheory.Abelian.GrothendieckCategory.EnoughInjectives).
  3. Putting these two together, it follows that Grothendieck abelian categories have an injective cogenerator (see Mathlib.CategoryTheory.Generator.Abelian).
  4. By taking a coproduct of copies of the injective cogenerator, we find a projective separator G in Dᵒᵖ such that every object in the image of F is a quotient of G. Then the additive Hom functor Hom(G, ·) : Dᵒᵖ ⥤ Module (End G)ᵐᵒᵖ is faithful (because G is a separator), left exact (because it is a hom functor), right exact (because G is projective) and full (because of a combination of the aforementioned properties, see Mathlib.CategoryTheory.Abelian.Yoneda). We put this all together in the file Mathlib.CategoryTheory.Abelian.GrothendieckCategory.ModuleEmbedding.Opposite.

To prove (2), there are multiple options.

When work on this theorem commenced in early 2022, all three apporaches were quite out of reach. By the time the theorem was proved in early 2025, both the Sheaf approach and the Ind approach were available in mathlib. The code below uses D := Ind Cᵒᵖ.

Implementation notes #

In the literature you will generally only find this theorem stated for small categories C. In Lean, we can work around this limitation by passing from C to AsSmall.{max u v} C, thereby enlarging the category of modules that we land in (which should be inconsequential in most applications) so that our embedding theorem applies to all abelian categories. If C was already a small category, then this does not change anything.

References #

Given an abelian category C, this is a ring such that there is a full, faithful and exact embedding C ⥤ ModuleCat (EmbeddingRing C).

It is probably not a good idea to unfold this.

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

    This is the full, faithful and exact embedding C ⥤ ModuleCat (EmbeddingRing C). The fact that such a functor exists is called the Freyd-Mitchell embedding theorem.

    It is probably not a good idea to unfold this.

    Equations
    Instances For

      The Freyd-Mitchell embedding theorem. See also FreydMitchell.functor for a functor which has the relevant instances.

      Stacks Tag 05PP