Documentation

TauCeti.CategoryTheory.Exact.KernelCokernelPair

Kernel–cokernel pairs #

A kernel–cokernel pair in a category with zero morphisms is a pair of composable morphisms X ⟶ Y ⟶ Z with zero composite in which the first morphism is a kernel of the second and the second is a cokernel of the first. Following Bühler, the first morphism of such a pair is called its inflation and the second its deflation. Quillen exact structures are, by definition, isomorphism-closed classes of such pairs, so this file supplies the objects an ExactStructure will range over, together with the calculus those axioms are stated in.

The point of the notion is that it makes sense in an arbitrary additive category: neither kernels nor cokernels are assumed to exist, so the two universal properties are asserted explicitly rather than read off from ambient (co)completeness. In a balanced preadditive category with homology the notion coincides with Mathlib's CategoryTheory.ShortComplex.ShortExact; that comparison is TauCeti.isKernelCokernelPair_iff_shortExact.

Main definitions #

Main results #

Implementation notes #

IsKernelCokernelPair is a Prop whose fields are Nonempty universal properties, following CategoryTheory.IsPushout. A class of conflations must be a class in the set-theoretic sense, so membership has to be a proposition; the universal properties are recovered by choice, which is harmless because CategoryTheory.Limits.IsLimit is a subsingleton.

of_isIso_f_of_isZero and of_isIso_g_of_isZero are proved directly rather than deduced from CategoryTheory.ShortComplex.Splitting.ofIsIsoOfIsZero and its sibling together with of_splitting, which would need a preadditive category with a zero object. The direct proofs are no longer, and they keep these two statements — Bühler's axiom E0, that an isomorphism is both an inflation and a deflation — in the same bare CategoryTheory.Limits.HasZeroMorphisms generality as the rest of the core API. For the same reason of_hasBinaryBiproduct and biprod are stated for a bare CategoryTheory.Limits.HasZeroMorphisms category with the biproducts they mention: Mathlib's CategoryTheory.Limits.biprod.isKernelSndKernelFork and its siblings already provide the witnesses there, so routing through of_splitting would gratuitously assume a preadditive category with a zero object.

References #

A short complex S : X₁ ⟶ X₂ ⟶ X₃ is a kernel–cokernel pair when S.f is a kernel of S.g and S.g is a cokernel of S.f. This is Bühler's notion of a kernel–cokernel pair; the conflations of a Quillen exact structure are an isomorphism-closed class of these.

Instances For

    The factorization through the kernel S.f of a morphism into S.X₂ killed by S.g.

    Equations
    Instances For

      The factorization through the cokernel S.g of a morphism out of S.X₂ killed by S.f.

      Equations
      Instances For

        Being a kernel–cokernel pair is invariant under isomorphism of short complexes; this is the closure property an exact structure demands of its class of conflations.

        A functor preserving zero morphisms and the two relevant (co)limits — for instance an equivalence, or an exact functor between abelian categories — carries kernel–cokernel pairs to kernel–cokernel pairs.

        A fully faithful functor preserving zero morphisms reflects kernel–cokernel pairs. This is what makes a full subcategory inherit the kernel–cokernel pairs of its ambient category: the universal properties only have to be tested against objects of the subcategory.

        A short complex whose first morphism is an isomorphism and whose last object is zero is a kernel–cokernel pair: an isomorphism is an inflation.

        A short complex whose second morphism is an isomorphism and whose first object is zero is a kernel–cokernel pair: an isomorphism is a deflation.

        The opposite of a kernel–cokernel pair is a kernel–cokernel pair.

        The biproduct short complex X₁ ⟶ X₁ ⊞ X₂ ⟶ X₂ is a kernel–cokernel pair.

        Being a kernel–cokernel pair only depends on the isomorphism class of a short complex.

        @[simp]

        A short complex is a kernel–cokernel pair if and only if its opposite is; the notion is self-dual.

        @[simp]

        A short complex in Cᵒᵖ is a kernel–cokernel pair if and only if its un-opposite is; the notion is self-dual.

        A split short complex is a kernel–cokernel pair. These are the conflations of the split exact structure on an additive category.

        A kernel–cokernel pair whose deflation admits a section is split. The retraction is the factorization of 𝟙 - S.g ≫ s through the kernel S.f.

        Mathlib's CategoryTheory.ShortComplex.Splitting.ofExactOfSection proves this for an exact short complex in a balanced category; here the kernel–cokernel hypothesis replaces balancedness, so the statement applies inside an arbitrary additive category carrying an exact structure.

        Equations
        Instances For

          A kernel–cokernel pair with homology is a short exact short complex.

          In a balanced preadditive category, a short exact short complex is a kernel–cokernel pair.

          In a balanced preadditive category the kernel–cokernel pairs among the short complexes with homology are exactly the short exact ones. This identifies the conflations of the canonical exact structure of an abelian category with Mathlib's CategoryTheory.ShortComplex.ShortExact.