The derived seam: H⁰(D^dg A) and DerivedCategory A #
dg-enhancements-e9, the theorem the DG track was opened for. The comparison
functor is built here, its full faithfulness is proved unconditionally, and the
equivalence is derived from one named external input.
The route #
D^dg A is the full dg subcategory of C^dg A on the K-injective complexes
(dg-enhancements-e8). So the comparison factors through work that already
exists:
H⁰(D^dg A) --(ι).h0--> H⁰(C^dg A) --h0Functor--> K(A) --Qh--> D(A)
The middle arrow is dg-enhancements-e4's Cdg.seam, already an equivalence.
The first is H⁰ of the inclusion dg functor, and it is fully faithful because
the inclusion acts as AddMonoidHom.id on Hom-complexes. Only the last arrow
carries new content, and it is where K-injectivity is spent.
What is unconditional, and what is not #
Full faithfulness is unconditional. Mathlib's
CochainComplex.IsKInjective.Qh_map_bijective says Qh is bijective on
morphisms into a K-injective complex. Both objects here are K-injective, so
that applies directly and nothing further is assumed.
Essential surjectivity is not, and cannot be at this pin. It asks that
every object of D(A) be represented by a K-injective complex, i.e. that
K-injective resolutions exist. That is Spaltenstein's theorem, and Mathlib
does not have it: Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean
cites [spaltenstein1998] in its references and proves no existence statement,
and there is no EnoughKInjectives, no kInjectiveResolution and no
HasKInjective anywhere in the library at mathlib_rev.
The input, and the line it must not cross #
HasKInjectiveResolutions asks exactly for the missing mathematics: every
cochain complex admits a quasi-isomorphism to a K-injective one. It is a real,
externally checkable statement about A — true for Grothendieck abelian
categories — and a caller supplying it is asserting a theorem, not a
convenience.
What it deliberately is not is a field asserting that the comparison
functor is an equivalence. That would be assuming the conclusion, which is the
failure mode dg-enhancements-e8's acceptance names when it forbids a
resolution theorem represented by a caller-supplied conclusion field. The
distinction is the whole design of this file: the input is upstream of the
theorem and the theorem is derived from it.
When someone formalizes Spaltenstein's construction, this class becomes an
instance and derivedSeam becomes unconditional with no change to any
consumer. That is the seam the design is protecting.
References #
- N. Spaltenstein, Resolutions of unbounded complexes, Compositio Math. 65
(1988) — the existence theorem
HasKInjectiveResolutionsstands in for. Mathlib/Algebra/Homology/DerivedCategory/KInjective.lean— the full faithfulness half, which Mathlib does supply.
The inclusion of the K-injective model into the dg category of all cochain complexes, as a dg functor.
Equations
Instances For
Every cochain complex admits a K-injective resolution.
The one external input of this file, and the exact statement Mathlib lacks at
mathlib_rev. It holds for Grothendieck abelian categories by Spaltenstein's
construction.
Stated as a quasi-isomorphism into a K-injective complex — the mathematics — rather than as any claim about the comparison functor below. See the module docstring on why that distinction is load-bearing.
- exists_kInjective_quasiIso (K : CochainComplex A ℤ) : ∃ (L : CochainComplex A ℤ) (_ : L.IsKInjective) (f : K ⟶ L), QuasiIso f
Every cochain complex receives a quasi-isomorphism from a K-injective one.
Instances
The derived seam functor H⁰(D^dg A) ⥤ D(A).
Composite of H⁰ of the inclusion, dg-enhancements-e4's seam, and Mathlib's
Qh. The direction is explicit and is the only one this file constructs:
nothing here builds a functor out of D(A).
Equations
Instances For
H⁰ of the inclusion is fully faithful #
Both are definitional. DGFullSubcategory gives Ddg A the ambient
Hom-complexes unchanged, so cocycles and coboundaries between two
K-injective objects are literally the ambient ones, and H⁰ of the inclusion
is the identity map between two quotients of the same group by the same
subgroup.
The composite is fully faithful, unconditionally #
The three arrows are bijective on Hom for three different reasons, and only the
last one spends K-injectivity. Qh is not fully faithful in general; it is
bijective into a K-injective target, which is exactly what the objects of
D^dg A are.
The underlying cochain complex of an object of H⁰(D^dg A).
Equations
Instances For
The seam functor lands on the quotient of the underlying complex; rfl,
and it is what lets Mathlib's bijectivity lemma apply.
The derived seam functor is bijective on Hom-sets.
Three bijections, three different reasons: H⁰ of the inclusion because the
Hom-complexes are the ambient ones, h0Functor because dg-enhancements-e4
proved it an equivalence, and Qh because the target is K-injective. Only the
last is about resolutions, and it assumes nothing.
Essential surjectivity, and the one place the input is spent #
Q is essentially surjective because it is a localization functor.
Named rather than anonymous: an audited generated name breaks silently on a
rename.
The derived seam functor is essentially surjective, given K-injective resolutions.
This is the only declaration in the file that uses
HasKInjectiveResolutions, and the use is exactly the expected one: resolve a
representing complex, then transport along the resulting quasi-isomorphism.
Full, faithful and essentially surjective, so an equivalence. Stated the
same way dg-enhancements-e4 states it for Cdg.seam.
The derived seam. H⁰(D^dg A) ≌ D(A).
Full faithfulness is unconditional; only essential surjectivity consumes
HasKInjectiveResolutions. The direction is H⁰(D^dg A) ⟶ D(A), and it is
derivedSeamFunctor.