Pretriangulated Categories #
This file contains the definition of pretriangulated categories and triangulated functors between them.
Implementation Notes #
We work under the assumption that pretriangulated categories are preadditive categories, but not necessarily additive categories, as is assumed in some sources.
TODO: generalise this to n-angulated categories as in https://arxiv.org/abs/1006.4592
- distinguished_triangles : set (category_theory.triangulated.triangle C)
- isomorphic_distinguished : ∀ (T₁ : category_theory.triangulated.triangle C), (T₁ ∈ dist_triangC) → ∀ (T₂ : category_theory.triangulated.triangle C), (T₂ ≅ T₁) → (T₂ ∈ dist_triangC)
- contractible_distinguished : ∀ (X : C), category_theory.triangulated.contractible_triangle C X ∈ dist_triangC
- distinguished_cocone_triangle : ∀ (X Y : C) (f : X ⟶ Y), ∃ (Z : C) (g : Y ⟶ Z) (h : Z ⟶ (category_theory.shift_functor C 1).obj X), category_theory.triangulated.triangle.mk C f g h ∈ dist_triangC
- rotate_distinguished_triangle : ∀ (T : category_theory.triangulated.triangle C), (T ∈ dist_triangC) ↔ T.rotate ∈ dist_triangC
- complete_distinguished_triangle_morphism : ∀ (T₁ T₂ : category_theory.triangulated.triangle C), (T₁ ∈ dist_triangC) → (T₂ ∈ dist_triangC) → ∀ (a : T₁.obj₁ ⟶ T₂.obj₁) (b : T₁.obj₂ ⟶ T₂.obj₂), T₁.mor₁ ≫ b = a ≫ T₂.mor₁ → (∃ (c : T₁.obj₃ ⟶ T₂.obj₃), T₁.mor₂ ≫ c = b ≫ T₂.mor₂ ∧ T₁.mor₃ ≫ (category_theory.shift_functor C 1).map a = c ≫ T₂.mor₃)
A preadditive category C
with an additive shift, and a class of "distinguished triangles"
relative to that shift is called pretriangulated if the following hold:
- Any triangle that is isomorphic to a distinguished triangle is also distinguished.
- Any triangle of the form
(X,X,0,id,0,0)
is distinguished. - For any morphism
f : X ⟶ Y
there exists a distinguished triangle of the form(X,Y,Z,f,g,h)
. - The triangle
(X,Y,Z,f,g,h)
is distinguished if and only if(Y,Z,X⟦1⟧,g,h,-f⟦1⟧)
is. - Given a diagram:
where the left square commutes, and whose rows are distinguished triangles, there exists a morphism
f g h X ───> Y ───> Z ───> X⟦1⟧ │ │ │ │a │b │a⟦1⟧' V V V X' ───> Y' ───> Z' ───> X'⟦1⟧ f' g' h'
c : Z ⟶ Z'
such that(a,b,c)
is a triangle morphism.
Given any distinguished triangle T
, then we know T.rotate
is also distinguished.
Given any distinguished triangle T
, then we know T.inv_rotate
is also distinguished.
Given any distinguished triangle
f g h
X ───> Y ───> Z ───> X⟦1⟧
the composition f ≫ g = 0
.
See https://stacks.math.columbia.edu/tag/0146
Given any distinguished triangle
f g h
X ───> Y ───> Z ───> X⟦1⟧
the composition g ≫ h = 0
.
See https://stacks.math.columbia.edu/tag/0146
Given any distinguished triangle
f g h
X ───> Y ───> Z ───> X⟦1⟧
the composition h ≫ f⟦1⟧ = 0
.
See https://stacks.math.columbia.edu/tag/0146
- to_functor : C ⥤ D
- comm_shift : category_theory.shift_functor C 1 ⋙ self.to_functor ≅ self.to_functor ⋙ category_theory.shift_functor D 1
The underlying structure of a triangulated functor between pretriangulated categories C
and D
is a functor F : C ⥤ D
together with given functorial isomorphisms ξ X : F(X⟦1⟧) ⟶ F(X)⟦1⟧
.
Equations
- category_theory.triangulated.pretriangulated.triangulated_functor_struct.inhabited C = {default := {to_functor := {obj := λ (X : C), X, map := λ (_x _x_1 : C) (f : _x ⟶ _x_1), f, map_id' := _, map_comp' := _}, comm_shift := category_theory.iso.refl (category_theory.shift_functor C 1 ⋙ {obj := λ (X : C), X, map := λ (_x _x_1 : C) (f : _x ⟶ _x_1), f, map_id' := _, map_comp' := _})}}
Given a triangulated_functor_struct
we can define a function from triangles of C
to
triangles of D
.
Equations
- F.map_triangle T = category_theory.triangulated.triangle.mk D (F.to_functor.map T.mor₁) (F.to_functor.map T.mor₂) (F.to_functor.map T.mor₃ ≫ F.comm_shift.hom.app T.obj₁)
- to_triangulated_functor_struct : category_theory.triangulated.pretriangulated.triangulated_functor_struct C D
- map_distinguished' : ∀ (T : category_theory.triangulated.triangle C), (T ∈ dist_triangC) → (self.to_triangulated_functor_struct.map_triangle T ∈ dist_triangD)
A triangulated functor between pretriangulated categories C
and D
is a functor F : C ⥤ D
together with given functorial isomorphisms ξ X : F(X⟦1⟧) ⟶ F(X)⟦1⟧
such that for every
distinguished triangle (X,Y,Z,f,g,h)
of C
, the triangle
(F(X), F(Y), F(Z), F(f), F(g), F(h) ≫ (ξ X))
is a distinguished triangle of D
.
See https://stacks.math.columbia.edu/tag/014V
Equations
- category_theory.triangulated.pretriangulated.triangulated_functor.inhabited C = {default := {to_triangulated_functor_struct := {to_functor := {obj := λ (X : C), X, map := λ (_x _x_1 : C) (f : _x ⟶ _x_1), f, map_id' := _, map_comp' := _}, comm_shift := category_theory.iso.refl (category_theory.shift_functor C 1 ⋙ {obj := λ (X : C), X, map := λ (_x _x_1 : C) (f : _x ⟶ _x_1), f, map_id' := _, map_comp' := _})}, map_distinguished' := _}}
Given a triangulated_functor
we can define a function from triangles of C
to triangles of D
.
Equations
Given a triangulated_functor
and a distinguished triangle T
of C
, then the triangle it
maps onto in D
is also distinguished.