Documentation

TauCeti.CategoryTheory.Exact.Resolution.Basic

Finite resolutions in an exact category #

Let E be an exact structure on an additive category C and let P be a property of objects of C. A finite P-resolution of an object X is a finite chain of E-conflations

K₁ ↪ Q₀ ↠ X,   K₂ ↪ Q₁ ↠ K₁,   …,   Kₙ ↪ Qₙ₋₁ ↠ Kₙ₋₁

whose resolving terms Q₀, …, Qₙ₋₁ and whose last syzygy Kₙ all satisfy P. Equivalently, it is a bounded exact augmented complex 0 → Kₙ → Qₙ₋₁ → ⋯ → Q₀ → X → 0 built from conflations. TauCeti.ExactStructure.FiniteResolution records exactly that chain, as data, by recursion on its length.

This file is the reusable resolution vocabulary in which the resolution theorem is stated. It develops the operations a later Euler-class argument needs -- length, syzygies and truncation, transport along an isomorphism, zero padding, and direct sums -- for an arbitrary object property, before any projectivity hypothesis is available.

Main definitions #

Main results #

Implementation notes #

The recursion is on the deep end of the chain: TauCeti.ExactStructure.FiniteResolution.base is a resolution of length zero of an object already satisfying P, and TauCeti.ExactStructure.FiniteResolution.step prepends one conflation K ↪ Q ↠ X to a resolution of K. This is the presentation in which zero padding is the operation that rewrites the base leaf, and it is the one the roadmap's AdmitsFiniteResolutionAlong uses. The conflations are stored by their two maps rather than as a CategoryTheory.ShortComplex, so that the resolved object is a genuine index of the family and FiniteResolution E P X never needs an equality of objects to be matched on.

Every operation is sealed behind its @[simp] equations, with two exceptions. TauCeti.ExactStructure.FiniteResolution.syzygy is the type index of TauCeti.ExactStructure.FiniteResolution.truncate, so the statements of the truncate equations only typecheck when its body is exposed. TauCeti.ExactStructure.FiniteResolution.map is exposed so that the terms of an image resolution reduce on constructors: the identification TauCeti.ExactStructure.FiniteResolution.termMapIso of those terms with the images of the original terms is defined by recursion along the resolution, and each of its cases only typechecks when the image of a constructor unfolds to a constructor.

The closure hypotheses on P are Mathlib's object-property type classes, and are assumed only where they are used: repleteness for ofIso, CategoryTheory.ObjectProperty.ContainsZero for padding, and closure under binary products for direct sums, the last of these reaching biproducts through CategoryTheory.ObjectProperty.prop_biprod_of_isClosedUnderBinaryProducts. The resolving-subcategory package, which bundles these with extension closure and closure under kernels of deflations, is downstream.

References #

A finite P-resolution of an object X of an exact category: a finite chain of conflations

K₁ ↪ Q₀ ↠ X,   K₂ ↪ Q₁ ↠ K₁,   …,   Kₙ ↪ Qₙ₋₁ ↠ Kₙ₋₁

whose resolving terms Qᵢ satisfy P, ending at a syzygy Kₙ which satisfies P as well. The recursion is on the deep end: base is the empty chain, available when X already satisfies P, and step prepends one conflation to a resolution of its subobject.

Instances For
    @[simp]
    theorem TauCeti.ExactStructure.FiniteResolution.length_step {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} {K Q X : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) :
    (step hQ i p zero hp r).length = r.length + 1

    The alternating fold of f along a resolution: f Q₀ - f Q₁ + ⋯ + (-1)ⁿ f Kₙ, where f assigns an element of an additive group to every object satisfying P.

    This is the common shape of the Euler-type invariants of a finite resolution; TauCeti.ExactStructure.FiniteResolution.homEuler is the alternating Hom dimension obtained from it.

    Equations
    Instances For
      @[simp]
      theorem TauCeti.ExactStructure.FiniteResolution.foldAlternating_step {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} {A : Type u_1} [AddGroup A] (f : (Z : C) → P Z → A) {K Q X : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) :
      foldAlternating f (step hQ i p zero hp r) = f Q hQ - foldAlternating f r

      The n-th syzygy of a resolution of X: the object resolved by what is left after discarding the first n conflations. It is X itself for n = 0, and it stabilises at the last syzygy once n reaches the length.

      Equations
      Instances For
        @[simp]
        theorem TauCeti.ExactStructure.FiniteResolution.syzygy_step_succ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} {K Q X : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) (n : ℕ) :
        (step hQ i p zero hp r).syzygy (n + 1) = r.syzygy n
        @[simp]
        theorem TauCeti.ExactStructure.FiniteResolution.truncate_step_zero {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} {K Q X : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) :
        (step hQ i p zero hp r).truncate 0 = step hQ i p zero hp r
        @[simp]
        theorem TauCeti.ExactStructure.FiniteResolution.truncate_step_succ {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} {K Q X : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) (n : ℕ) :
        (step hQ i p zero hp r).truncate (n + 1) = r.truncate n
        @[simp]

        The syzygies of a truncation are the syzygies of the original chain, shifted.

        Every syzygy of index at least the length satisfies P: the chain has run out.

        @[simp]
        theorem TauCeti.ExactStructure.FiniteResolution.ofIso_step {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} [P.IsClosedUnderIsomorphisms] {K Q X Y : C} (e : X ≅ Y) (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) :
        ofIso e (step hQ i p zero hp r) = step hQ i (CategoryTheory.CategoryStruct.comp p e.hom) ⋯ ⋯ r

        Lengthen a resolution by one, adjoining the trivial conflation 0 ↪ Kₙ ↠ Kₙ at its last syzygy.

        Equations
        Instances For
          @[simp]
          theorem TauCeti.ExactStructure.FiniteResolution.zeroPad_step {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} [P.IsClosedUnderIsomorphisms] [P.ContainsZero] {K Q X : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) :
          (step hQ i p zero hp r).zeroPad = step hQ i p zero hp r.zeroPad

          Lengthen a resolution by n, adjoining n trivial conflations at its last syzygy.

          Equations
          Instances For

            After the original resolution ends, every syzygy of a positive padding is the zero object.

            The componentwise direct sum of two finite P-resolutions. Where one chain has run out, it is padded against the other by the trivial conflation on its last syzygy.

            Equations
            Instances For
              @[simp]
              theorem TauCeti.ExactStructure.FiniteResolution.biprod_step_step {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} [P.IsClosedUnderIsomorphisms] [P.IsClosedUnderBinaryProducts] {K Q X K' Q' Y : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) (hQ' : P Q') (i' : K' ⟶ Q') (p' : Q' ⟶ Y) (zero' : CategoryTheory.CategoryStruct.comp i' p' = 0) (hp' : E.Conflation { X₁ := K', X₂ := Q', X₃ := Y, f := i', g := p', zero := zero' }) (s : E.FiniteResolution P K') :
              (step hQ i p zero hp r).biprod (step hQ' i' p' zero' hp' s) = step ⋯ (CategoryTheory.Limits.biprod.map i i') (CategoryTheory.Limits.biprod.map p p') ⋯ ⋯ (r.biprod s)

              The image of a finite P-resolution under a conflation-exact functor F carrying P into P': applying F to every conflation of the chain gives a finite P'-resolution of F X.

              Equations
              Instances For
                @[simp]
                theorem TauCeti.ExactStructure.FiniteResolution.map_step {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] {E : ExactStructure C} {P : CategoryTheory.ObjectProperty C} {D : Type u'} [CategoryTheory.Category.{v', u'} D] [CategoryTheory.Preadditive D] [CategoryTheory.Limits.HasZeroObject D] [CategoryTheory.Limits.HasBinaryBiproducts D] {E' : ExactStructure D} {P' : CategoryTheory.ObjectProperty D} {F : CategoryTheory.Functor C D} [F.Additive] (hF : E.IsConflationExact E' F) (hPP' : P ≤ P'.inverseImage F) {K Q X : C} (hQ : P Q) (i : K ⟶ Q) (p : Q ⟶ X) (zero : CategoryTheory.CategoryStruct.comp i p = 0) (hp : E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero }) (r : E.FiniteResolution P K) :
                map hF hPP' (step hQ i p zero hp r) = step ⋯ (F.map i) (F.map p) ⋯ ⋯ (map hF hPP' r)

                The first step of a finite P-resolution of length at most n + 1: a conflation K ↪ Q ↠ X with P Q, whose subobject K still admits a finite P-resolution of length at most n. A resolution of length zero contributes the trivial conflation 0 ↪ X ↠ X.

                An object admitting a finite P-resolution is the quotient of a conflation K ↪ Q ↠ X whose middle term satisfies P and whose kernel again admits a finite P-resolution.

                For a replete property closed under kernels of deflations between its objects, the kernel of a deflation from an object of P-dimension at most n onto an object of P has P-dimension at most n.

                Admitting a finite P-resolution passes from the subobject of a conflation with resolving middle term to its quotient.

                theorem TauCeti.ExactStructure.admitsFiniteResolution_induction {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Preadditive C] [CategoryTheory.Limits.HasZeroObject C] [CategoryTheory.Limits.HasBinaryBiproducts C] (E : ExactStructure C) (P : CategoryTheory.ObjectProperty C) {motive : CategoryTheory.ObjectProperty C} (hP : P ≤ motive) (hstep : ∀ {K Q X : C}, P Q → ∀ {i : K ⟶ Q} {p : Q ⟶ X} {zero : CategoryTheory.CategoryStruct.comp i p = 0}, E.Conflation { X₁ := K, X₂ := Q, X₃ := X, f := i, g := p, zero := zero } → motive K → motive X) {X : C} (hX : E.admitsFiniteResolution P X) :
                motive X

                The object-property presentation. Admitting a finite P-resolution is the smallest object property containing P and closed under passing from the subobject of a conflation with resolving middle term to its quotient.