R-linearity of the opposite shift #
The R-linear counterparts of the (shiftFunctor Cᵒᵖ n).Additive instance
(Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean) and of the scalar behaviour of
ShiftedHom.opEquiv (Mathlib/CategoryTheory/Shift/ShiftedHomOpposite.lean). The opposite
shift is defined with the opposite of a pretriangulated category, so this file lives at that
definition site; the bare Linear R Cᵒᵖ instance it builds on is in
CategoryTheory/Linear/Opposite.lean.
The shift functors on Cᵒᵖ are R-linear when those on C are.
The R-linear counterpart of Mathlib's (shiftFunctor Cᵒᵖ n).Additive
instance, and the piece that makes Linear R Cᵒᵖ more than a bare module
structure: without it the opposite category is linear but its shift is not
known to respect scalars, which is exactly what the k-linear Yoneda shift
sequence needs.
Shifting by n on Cᵒᵖ is shifting by -n on C, opposed --
shiftFunctorOpIso witnesses this as an eqToIso of a definitional equality --
so Functor.op_linear applied to shiftFunctor C (-n) is already the instance,
and inferInstanceAs is the whole proof.
The smul counterpart of ShiftedHom.opEquiv_symm_add.
The set_option mirrors Mathlib's on the additive twin, and is load-bearing for
the same reason: dsimp on an opposite-category shift leaves the goal not
type-correct at instances transparency, and the rewrite then cannot match.
The smul counterpart of ShiftedHom.opEquiv'_symm_add.