|
| 1 | +/- |
| 2 | +Copyright (c) 2024 Joël Riou. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Joël Riou |
| 5 | +-/ |
| 6 | +import Mathlib.Algebra.Homology.ShortComplex.Ab |
| 7 | +import Mathlib.CategoryTheory.Preadditive.Yoneda.Basic |
| 8 | +import Mathlib.CategoryTheory.Triangulated.HomologicalFunctor |
| 9 | +import Mathlib.CategoryTheory.Triangulated.Opposite |
| 10 | + |
| 11 | +/-! |
| 12 | +# The Yoneda functors are homological |
| 13 | +
|
| 14 | +Let `C` be a pretriangulated category. In this file, we show that the |
| 15 | +functors `preadditiveCoyoneda.obj A : C ⥤ AddCommGrp` for `A : Cᵒᵖ` and |
| 16 | +`preadditiveYoneda.obj B : Cᵒᵖ ⥤ AddCommGrp` for `B : C` are homological functors. |
| 17 | +
|
| 18 | +-/ |
| 19 | + |
| 20 | +namespace CategoryTheory |
| 21 | + |
| 22 | +open Limits Pretriangulated.Opposite |
| 23 | + |
| 24 | +namespace Pretriangulated |
| 25 | + |
| 26 | +variable {C : Type*} [Category C] [Preadditive C] [HasZeroObject C] [HasShift C ℤ] |
| 27 | + [∀ (n : ℤ), (shiftFunctor C n).Additive] [Pretriangulated C] |
| 28 | + |
| 29 | +instance (A : Cᵒᵖ) : (preadditiveCoyoneda.obj A).IsHomological where |
| 30 | + exact T hT := by |
| 31 | + rw [ShortComplex.ab_exact_iff] |
| 32 | + intro (x₂ : A.unop ⟶ T.obj₂) (hx₂ : x₂ ≫ T.mor₂ = 0) |
| 33 | + obtain ⟨x₁, hx₁⟩ := T.coyoneda_exact₂ hT x₂ hx₂ |
| 34 | + exact ⟨x₁, hx₁.symm⟩ |
| 35 | + |
| 36 | +instance (B : C) : (preadditiveYoneda.obj B).IsHomological where |
| 37 | + exact T hT := by |
| 38 | + rw [ShortComplex.ab_exact_iff] |
| 39 | + intro (x₂ : T.obj₂.unop ⟶ B) (hx₂ : T.mor₂.unop ≫ x₂ = 0) |
| 40 | + obtain ⟨x₃, hx₃⟩ := Triangle.yoneda_exact₂ _ (unop_distinguished T hT) x₂ hx₂ |
| 41 | + exact ⟨x₃, hx₃.symm⟩ |
| 42 | + |
| 43 | +lemma preadditiveYoneda_map_distinguished |
| 44 | + (T : Triangle C) (hT : T ∈ distTriang C) (B : C) : |
| 45 | + ((shortComplexOfDistTriangle T hT).op.map (preadditiveYoneda.obj B)).Exact := |
| 46 | + (preadditiveYoneda.obj B).map_distinguished_op_exact T hT |
| 47 | + |
| 48 | +noncomputable instance (A : Cᵒᵖ) : (preadditiveCoyoneda.obj A).ShiftSequence ℤ := |
| 49 | + Functor.ShiftSequence.tautological _ _ |
| 50 | + |
| 51 | +lemma preadditiveCoyoneda_homologySequenceδ_apply |
| 52 | + (A : Cᵒᵖ) (T : Triangle C) (n₀ n₁ : ℤ) (h : n₀ + 1 = n₁) (x : A.unop ⟶ T.obj₃⟦n₀⟧) : |
| 53 | + (preadditiveCoyoneda.obj A).homologySequenceδ T n₀ n₁ h x = |
| 54 | + x ≫ T.mor₃⟦n₀⟧' ≫ (shiftFunctorAdd' C 1 n₀ n₁ (by omega)).inv.app _ := by |
| 55 | + apply Category.assoc |
| 56 | + |
| 57 | +end Pretriangulated |
| 58 | + |
| 59 | +end CategoryTheory |
0 commit comments