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 strategy to prove the Freyd-Mitchell embedding theorem is as follows:
- Prove that if
Dis a Grothendieck abelian category andF : C ⥤ Dᵒᵖis a functor from a small category, then there is a functorG : Dᵒᵖ ⥤ ModuleCat Rfor a suitableRsuch thatGis faithful and exact andF ⋙ Gis full. - Find a suitable Grothendieck abelian category
Dand a full, faithful and exact functorF : C ⥤ Dᵒᵖ.
To prove (1), we proceed as follows:
- 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.lean). - Using the small object argument, it is shown that Grothendieck abelian categories have enough
injectives (see
Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean). - Putting these two together, it follows that Grothendieck abelian categories have an injective
cogenerator (see
Mathlib/CategoryTheory/Generator/Abelian.lean). - By taking a coproduct of copies of the injective cogenerator, we find a projective separator
GinDᵒᵖsuch that every object in the image ofFis a quotient ofG. Then the additive Hom functorHom(G, ·) : Dᵒᵖ ⥤ Module (End G)ᵐᵒᵖis faithful (becauseGis a separator), left exact (because it is a hom functor), right exact (becauseGis projective) and full (because of a combination of the aforementioned properties, seeMathlib/CategoryTheory/Abelian/Yoneda.lean). We put this all together in the fileMathlib/CategoryTheory/Abelian/GrothendieckCategory/ModuleEmbedding/Opposite.lean.
To prove (2), there are multiple options.
- Some sources (for example Freyd's "Abelian Categories") choose
D := LeftExactFunctor C Ab. The main difficulty with this approach is that it is not obvious thatDis abelian. This approach has a very algebraic flavor and requires a relatively large armount of ad-hoc reasoning. - In the Stacks project, it is suggested to choose
D := Sheaf J Abfor a suitable Grothendieck topology onCᵒᵖand there are reasons to believe that thisDis in fact equivalent toLeftExactFunctor C Ab. This approach translates many of the interesting properties along the sheafification adjunction from a category ofAb-valued presheaves, which in turn inherits many interesting properties from the category of abelian groups. - Kashiwara and Schapira choose
D := Ind Cᵒᵖ, which can be shown to be equivalent toLeftExactFunctor C Ab(see the fileMathlib/CategoryTheory/Preadditive/Indization.lean). This approach deduces most interesting properties from the category of types.
When work on this theorem commenced in early 2022, all three approaches 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 #
- https://stacks.math.columbia.edu/tag/05PL
- [M. Kashiwara, P. Schapira, Categories and Sheaves][Kashiwara2006], Section 9.6
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.