The k-linear coyoneda functor is homological, and its shift sequence #
The companion of Triangulated/LinearYoneda.lean in the other variable.
(linearCoyoneda k C).obj A : C ⥤ ModuleCat k is Hom(A, −), and this file
gives it IsHomological and ShiftSequence ℤ, so a distinguished triangle in
the second argument of Hom also produces a long exact sequence of
k-modules.
Why both variables are needed, and why only this one is cheap #
A Hom-built Euler form χ(X, Y) = Σᵢ (-1)ⁱ dimₖ Hom(X, Y⟦i⟧) has to be
additive in each argument separately before it descends to K₀ C ⊗ K₀ C.
LinearYoneda.lean gives the long exact sequence when the triangle is in the
first argument; nothing there says anything about the second. This file is
that missing half.
The two halves are not symmetric, and the asymmetry is worth stating because it shows up as a hypothesis difference downstream:
linearYonedais contravariant, so its source isCᵒᵖ. Its shift sequence has to move the shift acrossop, which is what drags inTriangulated/LinearOpposite.leanand, with it, the hypothesis[∀ n, (shiftFunctor C n).Linear k].linearCoyonedais covariant, with sourceC. Its shift sequence isFunctor.ShiftSequence.tautological— literallyshiftFunctor C n ⋙ F— so no opposite-category linearity and no shift-linearity hypothesis is required on this side at all.
Mathlib has the preadditiveCoyoneda counterparts of both instances
(Triangulated/Yoneda.lean); as with linearYoneda, they cannot serve a
k-dimension count because AddCommGrpCat carries no k. The proof here is
Mathlib's with ShortComplex.ab_exact_iff replaced by
ShortComplex.moduleCat_exact_iff, the same substitution LinearYoneda.lean
makes.
What this file does not provide #
No Euler form, and no finiteness. Having the long exact sequence in both
variables is not having Σᵢ (-1)ⁱ dimₖ Hom(X, Y⟦i⟧): that needs each term
finite-dimensional and the sum finitely supported, both of which are supplied
data assembled elsewhere.
The k-linear coyoneda functor is homological.
The ModuleCat k counterpart of Mathlib's instance for preadditiveCoyoneda.
As on the Yoneda side the k-action plays no part in the proof, because
Triangle.coyoneda_exact₂ is a statement about morphisms in C.
The shifted Hom-groups in the second variable, assembled.
Tautological, and that is the point: (linearCoyoneda k C).obj A is covariant
with source C, so shifting the argument is just precomposition with
shiftFunctor C n. Contrast LinearYoneda.lean's instance, which has to move a
shift across op and needs (shiftFunctor C n).Linear k to do it.
The long exact sequence #
Named specializations of Mathlib's homology-sequence API, matching
LinearYoneda.lean's. Unlike those, these are stated for a triangle in C
directly — the coyoneda functor's source is C, so no op-triangle is
involved.
Exactness in the middle.
Exactness at the connecting map's source.
Exactness at the connecting map's target.