The pretriangulated axioms, with rotation only forward #
Pretriangulated states TR2 as an ↔: a triangle is distinguished exactly
when its rotation is. Only the forward half is ever proved by a construction.
The reverse half is a theorem about the other four axioms, and this file
proves it, so a category that supplies the forward half supplies the class.
The redundancy #
Axioms bundles the five things a construction actually establishes:
isomorphism-closure, the contractible triangles, a cone on every morphism, the
forward rotation, and the completion of a square. Axioms.mem_of_rotate_mem
derives the reverse rotation from them, and Axioms.pretriangulated assembles
the class.
The proof is the classical one. Given T.rotate distinguished, take a cone
triangle S on T.mor₁; the completion axiom against mor₂ -- itself the
completion axiom applied to rotations -- produces φ : T.obj₃ ⟶ S.obj₃
commuting with both remaining maps. Hom(U, -) is exact at the second vertex
of a distinguished triangle (Axioms.coyoneda_exact₂), and applying that to
the rotations of T.rotate and of S makes post-composition with φ
injective and surjective on every Hom(U, -). So φ is an isomorphism,
T ≅ S, and T is distinguished.
Nothing here is circular: every exactness fact used is read off a triangle
already known to be distinguished -- T.rotate and its further rotations, or
S and its rotations -- never off T itself.
Placement #
Generic triangulated vocabulary. This file imports Mathlib alone, mentions no
dg category and no stability condition, and lives in Mathlib's
CategoryTheory.Pretriangulated namespace because everything it says is about
Mathlib's Triangle and Pretriangulated.
The backward options #
Mathlib sets both of these on the same lemmas (comp_distTriang_mor_zero₁₂,
complete_distinguished_triangle_morphism₁, the coyoneda_exact family). The
projections (contractibleTriangle X).obj₂ and T.rotate.mor₂ are definitional
but not reducible, so a hypothesis stated through them will not unify with the
same statement written directly without them. They are set for the file rather
than per declaration because every proof below is of that kind.
The lifting axiom transports along isomorphisms of triangles.
A class of distinguished triangles is an isomorphism-closure, so the completion
axiom only ever has to be proved for the triangles that generate the class.
This is what moves it to the closure: a and b are conjugated into the
generators, the lift is conjugated back, and each of the two squares is the
corresponding square of the generators with four Iso.hom_inv_id cancellations
around it.
It asks for no more than a shift, so a construction can use it before it knows
its class satisfies Axioms.
The Pretriangulated axioms, with the rotation axiom weakened to its
forward direction only.
a triangle isomorphic to a distinguished one is distinguished
the contractible triangles are distinguished
- cocone {X Y : D} (f : X ⟶ Y) : ∃ (Z : D) (g : Y ⟶ Z) (h : Z ⟶ (shiftFunctor D 1).obj X), Triangle.mk f g h ∈ triangles
every morphism fits into a distinguished triangle
the rotation of a distinguished triangle is distinguished
- complete (T₁ T₂ : Triangle D) : T₁ ∈ triangles → T₂ ∈ triangles → ∀ (a : T₁.obj₁ ⟶ T₂.obj₁) (b : T₁.obj₂ ⟶ T₂.obj₂), CategoryStruct.comp T₁.mor₁ b = CategoryStruct.comp a T₂.mor₁ → ∃ (c : T₁.obj₃ ⟶ T₂.obj₃), CategoryStruct.comp T₁.mor₂ c = CategoryStruct.comp b T₂.mor₂ ∧ CategoryStruct.comp T₁.mor₃ ((shiftFunctor D 1).map a) = CategoryStruct.comp c T₂.mor₃
a commuting square between the first two vertices extends to the third
Instances For
Consecutive morphisms of a distinguished triangle compose to zero.
The completion axiom against mor₂: a square between the second and third
vertices extends backwards to the first.
Hom(U, -) is exact at the second vertex of a distinguished triangle.
The reverse direction of the rotation axiom is redundant.
The Pretriangulated structure carried by a class of triangles satisfying
Axioms. The rotation axiom's reverse direction is supplied by
mem_of_rotate_mem, so nothing beyond the forward one has to be proved.
Equations
- One or more equations did not get rendered due to their size.