The transported triangulated structure is Mathlib's #
dg-enhancements-e7. H⁰(C^dg A) carries the pretriangulated structure
H0Triangle.lean builds out of dg cones, and K(A) = HomotopyCategory A carries
Mathlib's, built out of mapping cones. Cdg.seam identifies the two categories
and Model/CommShift.lean identifies their shifts. This file proves that the two
structures agree.
What "agree" means, and why it is a set equality #
Pretriangulated.distinguishedTriangles is a field of the class, so the two
structures agree exactly when the two sets of triangles correspond. No notion of
"isomorphism of triangulated structures" exists at the pin, and none is invented
here: the theorem is
Cdg.seam_distinguishedTriangles_eq :
{T | Cdg.seam.inverse.mapTriangle.obj T ∈ H0.distinguishedTriangles (Cdg A)}
= HomotopyCategory.Pretriangulated.distinguishedTriangles A
an equality of two terms of Set (Triangle (HomotopyCategory A (ComplexShape.up ℤ))).
Cdg.distinguishedTriangles_eq is the same statement read on H⁰, and
Cdg.mem_distTriang_iff is the pointwise form both come from.
Transporting a triangle needs the shift comparison, which is why
Functor.mapTriangle -- and hence this file -- rests on
Cdg.h0FunctorCommShift. Nothing here assumes the comparison; it is the
CommShift instance built in HomotopyCategory/CommShift.lean.
The sign #
The dg connecting morphism IsConeOf.toShift is fst followed by the shift with
no sign; Mathlib's CochainComplex.mappingCone.triangle uses -mappingCone.fst.
Cdg.triangle_mor₃_eq records that discrepancy, and H0.coneTriangle carries the
sign that removes it. Without it the two structures would genuinely differ:
diagonal isomorphisms of triangles realise exactly the sign patterns whose product
over the three vertices is +1, and negating the third map alone is not one of
them, so the disagreement could not be absorbed by an isomorphism.
The octahedral half #
The pin supplies IsTriangulated (HomotopyCategory A (ComplexShape.up ℤ))
(Mathlib/Algebra/Homology/HomotopyCategory/Triangulated.lean), so the octahedral
axiom transfers back along the fully faithful triangulated seam:
IsTriangulated (H0 (Cdg A)) is an instance below. It is stated only for this
model. For a general pretriangulated dg category C this file proves nothing
about IsTriangulated (H0 C), and nothing at the pin does either -- the
octahedron there would have to be built from the dg cone directly, which is not
dg-enhancements-e7's scope.
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 rewriting stalls. 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.
The dg cone's degree-one projection is Mathlib's mappingCone.fst.
The dg connecting morphism, at the model shift, is Mathlib's fst
right-shifted.
The sign. Mathlib's standard triangle uses -mappingCone.fst; the dg
toShift is +fst. This is why H0.coneTriangle carries a sign.
The image of a model cone triangle is Mathlib's standard triangle.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The seam is a triangulated functor.
The agreement theorem, as an equivalence.
The agreement theorem, as an equality of sets of triangles.
The octahedral axiom for H⁰(C^dg A).
The same statements, read on the seam #
Equations
- CategoryTheory.Cdg.seamFunctorCommShift = { commShiftIso := CategoryTheory.Cdg.seamFunctorCommShift._aux_1, commShiftIso_zero := ⋯, commShiftIso_add := ⋯ }
The agreement theorem, transported onto the homotopy category.
C^dg A is an exact enhancement of the homotopy category, not merely
an H⁰ presentation of it.
Enhancement.Exact is supplied data everywhere else in the library; this is the
one place it is discharged, and both fields come from theorems rather than from
a hypothesis. commShift is Cdg.h0FunctorCommShift, built in
HomotopyCategory/CommShift.lean from the seam's shift comparison;
isTriangulated is Cdg.h0FunctorIsTriangulated above, which is the agreement
theorem seam_distinguishedTriangles_eq in functor form.
Neither this nor anything downstream says that an exact enhancement of
HomotopyCategory A is unique. dg-enhancements-e15 remains open, and the
statement it will need quantifies over this structure rather than over
Enhancement.
Equations
- One or more equations did not get rendered due to their size.