Exact structures #
An exact structure on an additive category is an isomorphism-closed class of kernel--cokernel pairs satisfying Quillen's axioms. This file packages those axioms in their self-dual E0/E1/E2 form. In particular, the E2 axioms return actual pushout and pullback squares; they do not assume that the ambient category has arbitrary pushouts or pullbacks.
The distinguished short complexes are called conflations. Their first maps are inflations, and their second maps are deflations. The structures here contain only this intrinsic data and the six Quillen axioms. The split and canonical abelian exact structures are constructed separately.
Main definitions #
TauCeti.ConflationClassis an isomorphism-closed class of kernel--cokernel pairs.TauCeti.ConflationClass.inflationsandTauCeti.ConflationClass.deflationsare theCategoryTheory.MorphismPropertyof morphisms occurring as the first, resp. second, map of a conflation.TauCeti.ConflationClass.IsInflationandTauCeti.ConflationClass.IsDeflationare the corresponding predicates on a single morphism.TauCeti.ExactStructureequips a conflation class with E0/E0op, E1/E1op, and E2/E2op.
Implementation notes #
The conflations are a CategoryTheory.ObjectProperty (CategoryTheory.ShortComplex C) closed
under isomorphisms in Mathlib's sense, and the inflations and the deflations are each a
CategoryTheory.MorphismProperty, so that the generic API applies: isomorphism-closure of the
conflations makes the inflations and the deflations
CategoryTheory.MorphismProperty.RespectsIso, and E0/E0op and E1/E1op are recorded as
CategoryTheory.MorphismProperty.ContainsIdentities and
CategoryTheory.MorphismProperty.IsStableUnderComposition instances. E2/E2op are recorded by
the corresponding property-specific HasPushouts/HasPullbacks and
IsStableUnderCobaseChange/IsStableUnderBaseChange classes. These assert existence only for
pushouts of inflations and pullbacks of deflations, without requiring arbitrary pushouts or
pullbacks in the ambient category.
References #
- Theo Bühler, Exact categories, Expositiones Mathematicae 28 (2010), 1--69, https://arxiv.org/abs/0811.1480. Definition 2.1 and Remarks 2.2--2.8 give the axioms used here.
TauCetiRoadmap/GrothendieckEulerForms/Suggested.lean, the human-authored roadmap formalization, fixes the design followed here: theConflationClass/ExactStructuresplit, the E0/E0op, E1/E1op, E2/E2op fields, and the derived inflation and deflation predicates are its. This file replaces its bespokePushoutWitnessandPullbackWitnessby Mathlib's property-specific pushout and pullback classes, and its pair of composable morphisms by aCategoryTheory.ShortComplex.
An isomorphism-closed class of kernel--cokernel pairs in a preadditive category.
This is the relation underlying an exact structure, before imposing the Quillen axioms.
- Conflation : CategoryTheory.ObjectProperty (CategoryTheory.ShortComplex C)
The distinguished short complexes.
- isKernelCokernelPair (S : CategoryTheory.ShortComplex C) : self.Conflation S → IsKernelCokernelPair S
Every conflation is a kernel--cokernel pair.
- isClosedUnderIsomorphisms : self.Conflation.IsClosedUnderIsomorphisms
The class of conflations is closed under isomorphisms of short complexes.
Instances For
Two conflation classes are equal when they distinguish the same short complexes.
The inflations: the morphisms occurring as the first map of a conflation.
Equations
- E.inflations i = ∃ (Z : C) (p : Y ⟶ Z) (zero : CategoryTheory.CategoryStruct.comp i p = 0), E.Conflation { X₁ := x✝, X₂ := Y, X₃ := Z, f := i, g := p, zero := zero }
Instances For
The deflations: the morphisms occurring as the second map of a conflation.
Equations
- E.deflations p = ∃ (X : C) (i : X ⟶ Y) (zero : CategoryTheory.CategoryStruct.comp i p = 0), E.Conflation { X₁ := X, X₂ := Y, X₃ := x✝, f := i, g := p, zero := zero }
Instances For
A morphism is an inflation when it is the first map of a conflation.
Equations
- E.IsInflation i = E.inflations i
Instances For
A morphism is a deflation when it is the second map of a conflation.
Equations
- E.IsDeflation p = E.deflations p
Instances For
A morphism is an inflation exactly when it is the first map of a conflation.
A morphism is a deflation exactly when it is the second map of a conflation.
A conflation's first map is an inflation.
A conflation's second map is a deflation.
Every inflation is a monomorphism.
Every deflation is an epimorphism.
An isomorphism of short complexes transports the property of being a conflation.
Isomorphic short complexes are conflations together.
A short complex whose first map is an inflation and whose second map is a cokernel of the first is a conflation: the conflation witnessing the inflation has the same cokernel, so the two short complexes are isomorphic.
Only the cokernel half of TauCeti.IsKernelCokernelPair is needed, because the kernel half is
then inherited from the witnessing conflation.
A short complex whose second map is a deflation and whose first map is a kernel of the second is a conflation: the conflation witnessing the deflation has the same kernel, so the two short complexes are isomorphic.
A kernel–cokernel pair whose first map is an inflation is a conflation.
A kernel–cokernel pair whose second map is a deflation is a conflation.
Being an inflation is invariant under composing with isomorphisms on either side: the witnessing conflation transports along the isomorphism.
Being a deflation is invariant under composing with isomorphisms on either side: the witnessing conflation transports along the isomorphism.
A Quillen exact structure on an additive category, in the self-dual E0/E1/E2 presentation.
The E2 fields provide genuine universal squares through Mathlib's pushout and pullback APIs. No ambient pushouts or pullbacks are assumed.
- isKernelCokernelPair (S : CategoryTheory.ShortComplex C) : self.Conflation S → IsKernelCokernelPair S
- isInflation_id (X : C) : self.IsInflation (CategoryTheory.CategoryStruct.id X)
E0: identity morphisms are inflations.
- isDeflation_id (X : C) : self.IsDeflation (CategoryTheory.CategoryStruct.id X)
E0op: identity morphisms are deflations.
- isInflation_comp {X Y Z : C} (i : X ⟶ Y) (j : Y ⟶ Z) : self.IsInflation i → self.IsInflation j → self.IsInflation (CategoryTheory.CategoryStruct.comp i j)
E1: a composite of inflations is an inflation.
- isDeflation_comp {X Y Z : C} (p : X ⟶ Y) (q : Y ⟶ Z) : self.IsDeflation p → self.IsDeflation q → self.IsDeflation (CategoryTheory.CategoryStruct.comp p q)
E1op: a composite of deflations is a deflation.
- hasPushouts_inflations : self.inflations.HasPushouts
E2 existence: pushouts of inflations along arbitrary morphisms exist.
- isStableUnderCobaseChange_inflations : self.inflations.IsStableUnderCobaseChange
E2 stability: every cobase change of an inflation is an inflation.
- hasPullbacks_deflations : self.deflations.HasPullbacks
E2op existence: pullbacks of deflations along arbitrary morphisms exist.
- isStableUnderBaseChange_deflations : self.deflations.IsStableUnderBaseChange
E2op stability: every base change of a deflation is a deflation.
Instances For
Two exact structures are equal when they have the same conflations.
The predicate that a morphism is the first map of a distinguished conflation.
Equations
- E.IsInflation i = E.IsInflation i
Instances For
The predicate that a morphism is the second map of a distinguished conflation.
Equations
- E.IsDeflation p = E.IsDeflation p
Instances For
E0, as the statement that the inflations contain the identities.
E0op, as the statement that the deflations contain the identities.
E1, as the statement that the inflations are stable under composition.
E1op, as the statement that the deflations are stable under composition.
E2 existence, as property-specific availability of pushouts.
E2 stability, as stability of inflations under cobase change.
E2op existence, as property-specific availability of pullbacks.
E2op stability, as stability of deflations under base change.