English
There is a procedure invRotate producing a triangle from a given triangle by rotating in the opposite direction, up to a canonical isomorphism. This inverse operation restores the original arrangement up to shift isomorphisms.
Русский
Существует процедура invRotate, которая строит треугольник из заданного симметрично обратно, восстанавливая исходное расположение треугольника с учётом сдвигов и изоморфизмов.
LaTeX
$$$\\text{invRotate}_C : \\mathbf{TriangulatedTriangle}(C) \\to \\mathbf{TriangulatedTriangle}(C)$ является обратным функтором к rotate, причем существует естественная изоморфность между \\(\\text{Id} \\) и \\(\\text{rotate} \\circ \\text{invRotate} \\).$$
Lean4
/-- Given a triangle of the form:
```
f g h
X ───> Y ───> Z ───> X⟦1⟧
```
applying `invRotate` 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 `counitIso` of `shiftEquiv C 1`)
-/
@[simps!]
def invRotate (T : Triangle C) : Triangle C :=
Triangle.mk (-T.mor₃⟦(-1 : ℤ)⟧' ≫ (shiftEquiv C (1 : ℤ)).unitIso.inv.app _) (T.mor₁)
(T.mor₂ ≫ (shiftEquiv C (1 : ℤ)).counitIso.inv.app _)