@@ -170,6 +170,14 @@ instance comp [F.CommShift A] [G.CommShift A] : (F ⋙ G).CommShift A where
170170
171171end CommShift
172172
173+ @[simp]
174+ lemma commShiftIso_id_hom_app (a : A) (X : C) :
175+ (commShiftIso (𝟭 C) a).hom.app X = 𝟙 _ := comp_id _
176+
177+ @[simp]
178+ lemma commShiftIso_id_inv_app (a : A) (X : C) :
179+ (commShiftIso (𝟭 C) a).inv.app X = 𝟙 _ := comp_id _
180+
173181lemma commShiftIso_comp_hom_app [F.CommShift A] [G.CommShift A] (a : A) (X : C) :
174182 (commShiftIso (F ⋙ G) a).hom.app X =
175183 G.map ((commShiftIso F a).hom.app X) ≫ (commShiftIso G a).hom.app (F.obj X) := by
@@ -228,12 +236,12 @@ end Functor
228236
229237namespace NatTrans
230238
231- variable {C D E : Type *} [Category C] [Category D] [Category E]
239+ variable {C D E J : Type *} [Category C] [Category D] [Category E] [Category J ]
232240 {F₁ F₂ F₃ : C ⥤ D} (τ : F₁ ⟶ F₂) (τ' : F₂ ⟶ F₃) (e : F₁ ≅ F₂)
233- (G G' : D ⥤ E) (τ'' : G ⟶ G')
234- (A : Type *) [AddMonoid A] [HasShift C A] [HasShift D A] [HasShift E A]
241+ (G G' : D ⥤ E) (τ'' : G ⟶ G') (H : E ⥤ J)
242+ (A : Type *) [AddMonoid A] [HasShift C A] [HasShift D A] [HasShift E A] [HasShift J A]
235243 [F₁.CommShift A] [F₂.CommShift A] [F₃.CommShift A]
236- [G.CommShift A] [G'.CommShift A]
244+ [G.CommShift A] [G'.CommShift A] [H.CommShift A]
237245
238246/-- If `τ : F₁ ⟶ F₂` is a natural transformation between two functors
239247which commute with a shift by an additive monoid `A`, this typeclass
@@ -315,6 +323,15 @@ instance whiskerLeft [NatTrans.CommShift τ'' A] :
315323 simp only [Functor.comp_obj, comp_app, whiskerRight_app, whiskerLeft_app, whiskerLeft_twice,
316324 Functor.commShiftIso_comp_hom_app, Category.assoc, ← NatTrans.naturality_assoc, comm_app]⟩
317325
326+ instance associator : CommShift (Functor.associator F₁ G H).hom A where
327+ comm' a := by ext X; simp [Functor.commShiftIso_comp_hom_app]
328+
329+ instance leftUnitor : CommShift F₁.leftUnitor.hom A where
330+ comm' a := by ext X; simp [Functor.commShiftIso_comp_hom_app]
331+
332+ instance rightUnitor : CommShift F₁.rightUnitor.hom A where
333+ comm' a := by ext X; simp [Functor.commShiftIso_comp_hom_app]
334+
318335end CommShift
319336
320337end NatTrans
@@ -360,4 +377,45 @@ end CommShift
360377
361378end Functor
362379
380+ /--
381+ Assume that we have a diagram of categories
382+ ```
383+ C₁ ⥤ D₁
384+ ‖ ‖
385+ v v
386+ C₂ ⥤ D₂
387+ ‖ ‖
388+ v v
389+ C₃ ⥤ D₃
390+ ```
391+ with functors `F₁₂ : C₁ ⥤ C₂`, `F₂₃ : C₂ ⥤ C₃` and `F₁₃ : C₁ ⥤ C₃` on the first
392+ column that are related by a natural transformation `α : F₁₃ ⟶ F₁₂ ⋙ F₂₃`
393+ and similarly `β : G₁₂ ⋙ G₂₃ ⟶ G₁₃` on the second column. Assume that we have
394+ natural transformations
395+ `e₁₂ : F₁₂ ⋙ L₂ ⟶ L₁ ⋙ G₁₂` (top square), `e₂₃ : F₂₃ ⋙ L₃ ⟶ L₂ ⋙ G₂₃` (bottom square),
396+ and `e₁₃ : F₁₃ ⋙ L₃ ⟶ L₁ ⋙ G₁₃` (outer square), where the horizontal functors
397+ are denoted `L₁`, `L₂` and `L₃`. Assume that `e₁₃` is determined by the other
398+ natural transformations `α`, `e₂₃`, `e₁₂` and `β`. Then, if all these categories
399+ are equipped with a shift by an additive monoid `A`, and all these functors commute with
400+ these shifts, then the natural transformation `e₁₃` of the outer square commutes with the
401+ shift if all `α`, `e₂₃`, `e₁₂` and `β` do. -/
402+ lemma NatTrans.CommShift.verticalComposition {C₁ C₂ C₃ D₁ D₂ D₃ : Type *}
403+ [Category C₁] [Category C₂] [Category C₃] [Category D₁] [Category D₂] [Category D₃]
404+ {F₁₂ : C₁ ⥤ C₂} {F₂₃ : C₂ ⥤ C₃} {F₁₃ : C₁ ⥤ C₃} (α : F₁₃ ⟶ F₁₂ ⋙ F₂₃)
405+ {G₁₂ : D₁ ⥤ D₂} {G₂₃ : D₂ ⥤ D₃} {G₁₃ : D₁ ⥤ D₃} (β : G₁₂ ⋙ G₂₃ ⟶ G₁₃)
406+ {L₁ : C₁ ⥤ D₁} {L₂ : C₂ ⥤ D₂} {L₃ : C₃ ⥤ D₃}
407+ (e₁₂ : F₁₂ ⋙ L₂ ⟶ L₁ ⋙ G₁₂) (e₂₃ : F₂₃ ⋙ L₃ ⟶ L₂ ⋙ G₂₃) (e₁₃ : F₁₃ ⋙ L₃ ⟶ L₁ ⋙ G₁₃)
408+ (A : Type *) [AddMonoid A] [HasShift C₁ A] [HasShift C₂ A] [HasShift C₃ A]
409+ [HasShift D₁ A] [HasShift D₂ A] [HasShift D₃ A]
410+ [F₁₂.CommShift A] [F₂₃.CommShift A] [F₁₃.CommShift A] [CommShift α A]
411+ [G₁₂.CommShift A] [G₂₃.CommShift A] [G₁₃.CommShift A] [CommShift β A]
412+ [L₁.CommShift A] [L₂.CommShift A] [L₃.CommShift A]
413+ [CommShift e₁₂ A] [CommShift e₂₃ A]
414+ (h₁₃ : e₁₃ = CategoryTheory.whiskerRight α L₃ ≫ (Functor.associator _ _ _).hom ≫
415+ CategoryTheory.whiskerLeft F₁₂ e₂₃ ≫ (Functor.associator _ _ _).inv ≫
416+ CategoryTheory.whiskerRight e₁₂ G₂₃ ≫ (Functor.associator _ _ _).hom ≫
417+ CategoryTheory.whiskerLeft L₁ β): CommShift e₁₃ A := by
418+ subst h₁₃
419+ infer_instance
420+
363421end CategoryTheory
0 commit comments