Documentation

DerivedAlgGeo.Algebra.Homology.HomotopyCategory.DGEnhancement.CommShift

The seam commutes with the shift #

dg-enhancements-e7. Cdg.seam : H⁰(C^dg A) ≌ K(A) is an equivalence of ordinary categories, and both sides carry a shift by ℤ: on the left the one H0Shift.lean builds out of IsPretriangulated.exists_shift, on the right Mathlib's, induced through the quotient. Nothing so far relates them. Functor.CommShift does, and #378 calls it "the real content of this epic".

The route: factor through cochain complexes #

The two shifts are built by different routes out of the same shift on CochainComplex A ℤ, so the comparison is cleanest with that common source kept in the picture. The tautological functor

Cdg.toH0 : CochainComplex A ℤ ⥤ H⁰(C^dg A)

is the identity on objects, sends a chain map to the class of its own cochain, and is full; and it satisfies Cdg.toH0 ⋙ Cdg.h0Functor = HomotopyCategory.quotient on morphisms as well as objects (Cdg.h0Functor_map_toH0_map). So a CommShift structure on Cdg.toH0, together with Mathlib's on the quotient functor, assembles into one on the seam -- and that assembly is formal, which is the point of going this way round.

Where the mathematics actually is #

All of it is in Cdg.toH0's two coherence identities, and both reduce to IsShiftBy.compare bookkeeping over the model lemmas of HomotopyCategory/ShiftComparison.lean. The chosen shift IsPretriangulated.shiftObj is Classical.choice, so it is never unfolded; what is used is that any two shifts of the same object by the same degree are canonically isomorphic and that those comparisons compose (IsShiftBy.compare_trans). The add coherence telescopes a four-term composite into a single compare in exactly that way.

backward.isDefEq.respectTransparency #

H0 C is a type synonym for C, so goals about H0 (Cdg A) are routinely ill-typed at instances transparency and no rewrite fires. Mathlib's own set_option backward.isDefEq.respectTransparency false is the sanctioned way through, and it is used here for exactly the declarations that need it.

Cochain complexes into H⁰(C^dg A).

Equations
  • One or more equations did not get rendered due to their size.
Instances For

    The tautological functor from cochain complexes to H⁰(C^dg A) is additive.

    noncomputable def CategoryTheory.Cdg.toH0ShiftIso {A : Type u} [Category.{v, u} A] [Preadditive A] [Limits.HasBinaryBiproducts A] [Limits.HasZeroObject A] (K : Cdg A) (n : ℤ) :
    (have this := K.shiftObj n; this) ≅ have this := IsPretriangulated.shiftObj (Cdg A) K n; this

    The comparison between the model shift and the chosen shift, in H⁰.

    Equations
    Instances For
      @[implicit_reducible]
      Equations
      • One or more equations did not get rendered due to their size.

      The seam's commutation isomorphism with the shift, at one object: undo the comparison of Cdg.toH0, then apply Mathlib's for the quotient functor.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[implicit_reducible]

        dg-enhancements-e7, the shift half.

        Equations