Rotate #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file adds the ability to rotate triangles and triangle morphisms. It also shows that rotation gives an equivalence on the category of triangles.
If you rotate a triangle, you get another triangle. Given a triangle of the form:
f g h
X ───> Y ───> Z ───> X⟦1⟧
applying rotate
gives a triangle of the form:
g h -f⟦1⟧'
Y ───> Z ───> X⟦1⟧ ───> Y⟦1⟧
Equations
Given a triangle of the form:
f g h
X ───> Y ───> Z ───> X⟦1⟧
applying inv_rotate
gives a triangle that can be thought of as:
-h⟦-1⟧' f g
Z⟦-1⟧ ───> X ───> Y ───> Z
(note that this diagram doesn't technically fit the definition of triangle, as Z⟦-1⟧⟦1⟧
is
not necessarily equal to Z
, but it is isomorphic, by the counit_iso
of shift C
)
Equations
- T.inv_rotate = category_theory.pretriangulated.triangle.mk (-(category_theory.shift_functor C (-1)).map T.mor₃ ≫ (category_theory.shift_shift_neg T.obj₁ 1).hom) T.mor₁ (T.mor₂ ≫ (category_theory.shift_neg_shift T.obj₃ 1).inv)
Rotating triangles gives an endofunctor on the category of triangles in C
.
Equations
- category_theory.pretriangulated.rotate C = {obj := category_theory.pretriangulated.triangle.rotate _inst_3, map := λ (T₁ T₂ : category_theory.pretriangulated.triangle C) (f : T₁ ⟶ T₂), {hom₁ := f.hom₂, hom₂ := f.hom₃, hom₃ := (category_theory.shift_functor C 1).map f.hom₁, comm₁' := _, comm₂' := _, comm₃' := _}, map_id' := _, map_comp' := _}
Instances for category_theory.pretriangulated.rotate
The inverse rotation of triangles gives an endofunctor on the category of triangles in C
.
Equations
- category_theory.pretriangulated.inv_rotate C = {obj := category_theory.pretriangulated.triangle.inv_rotate _inst_3, map := λ (T₁ T₂ : category_theory.pretriangulated.triangle C) (f : T₁ ⟶ T₂), {hom₁ := (category_theory.shift_functor C (-1)).map f.hom₃, hom₂ := f.hom₁, hom₃ := f.hom₂, comm₁' := _, comm₂' := _, comm₃' := _}, map_id' := _, map_comp' := _}
Instances for category_theory.pretriangulated.inv_rotate
The unit isomorphism of the auto-equivalence of categories triangle_rotation C
of
triangle C
given by the rotation of triangles.
Equations
- category_theory.pretriangulated.rot_comp_inv_rot = category_theory.nat_iso.of_components (λ (T : category_theory.pretriangulated.triangle C), ((𝟭 (category_theory.pretriangulated.triangle C)).obj T).iso_mk ((category_theory.pretriangulated.rotate C ⋙ category_theory.pretriangulated.inv_rotate C).obj T) ((category_theory.shift_equiv C 1).unit_iso.app T.obj₁) (category_theory.iso.refl ((𝟭 (category_theory.pretriangulated.triangle C)).obj T).obj₂) (category_theory.iso.refl ((𝟭 (category_theory.pretriangulated.triangle C)).obj T).obj₃) _ _ _) category_theory.pretriangulated.rot_comp_inv_rot._proof_4
The counit isomorphism of the auto-equivalence of categories triangle_rotation C
of
triangle C
given by the rotation of triangles.
Equations
- category_theory.pretriangulated.inv_rot_comp_rot = category_theory.nat_iso.of_components (λ (T : category_theory.pretriangulated.triangle C), ((category_theory.pretriangulated.inv_rotate C ⋙ category_theory.pretriangulated.rotate C).obj T).iso_mk ((𝟭 (category_theory.pretriangulated.triangle C)).obj T) (category_theory.iso.refl ((category_theory.pretriangulated.inv_rotate C ⋙ category_theory.pretriangulated.rotate C).obj T).obj₁) (category_theory.iso.refl ((category_theory.pretriangulated.inv_rotate C ⋙ category_theory.pretriangulated.rotate C).obj T).obj₂) ((category_theory.shift_equiv C 1).counit_iso.app T.obj₃) _ _ _) category_theory.pretriangulated.inv_rot_comp_rot._proof_4
Rotating triangles gives an auto-equivalence on the category of triangles in C
.
Equations
- category_theory.pretriangulated.triangle_rotation C = {functor := category_theory.pretriangulated.rotate C _inst_3, inverse := category_theory.pretriangulated.inv_rotate C _inst_3, unit_iso := category_theory.pretriangulated.rot_comp_inv_rot _, counit_iso := category_theory.pretriangulated.inv_rot_comp_rot _, functor_unit_iso_comp' := _}