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_triang C) → ∀ (T₂ : category_theory.triangulated.triangle C), (T₂ ≅ T₁) → (T₂ ∈ dist_triang C)
- contractible_distinguished : ∀ (X : C), category_theory.triangulated.contractible_triangle C X ∈ dist_triang C
- 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_triang C
- rotate_distinguished_triangle : ∀ (T : category_theory.triangulated.triangle C), (T ∈ dist_triang C) ↔ T.rotate ∈ dist_triang C
- complete_distinguished_triangle_morphism : ∀ (T₁ T₂ : category_theory.triangulated.triangle C), (T₁ ∈ dist_triang C) → (T₂ ∈ dist_triang C) → ∀ (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.
See https://stacks.math.columbia.edu/tag/0145
Instances for category_theory.triangulated.pretriangulated
- category_theory.triangulated.pretriangulated.has_sizeof_inst
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⟧
.
Instances for category_theory.triangulated.pretriangulated.triangulated_functor_struct
- category_theory.triangulated.pretriangulated.triangulated_functor_struct.has_sizeof_inst
- category_theory.triangulated.pretriangulated.triangulated_functor_struct.inhabited
The identity triangulated_functor_struct
.
Equations
- category_theory.triangulated.pretriangulated.triangulated_functor_struct.id C = {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 functor from triangles of C
to
triangles of D
.
Equations
- F.map_triangle = {obj := λ (T : category_theory.triangulated.triangle C), 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₁), map := λ (S T : category_theory.triangulated.triangle C) (f : S ⟶ T), {hom₁ := F.to_functor.map f.hom₁, hom₂ := F.to_functor.map f.hom₂, hom₃ := F.to_functor.map f.hom₃, comm₁' := _, comm₂' := _, comm₃' := _}, map_id' := _, map_comp' := _}
- to_triangulated_functor_struct : category_theory.triangulated.pretriangulated.triangulated_functor_struct C D
- map_distinguished' : ∀ (T : category_theory.triangulated.triangle C), (T ∈ dist_triang C) → (self.to_triangulated_functor_struct.map_triangle.obj T ∈ dist_triang D)
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
Instances for category_theory.triangulated.pretriangulated.triangulated_functor
- category_theory.triangulated.pretriangulated.triangulated_functor.has_sizeof_inst
- category_theory.triangulated.pretriangulated.triangulated_functor.inhabited
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 functor 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.