File: Mathlib/CategoryTheory/Shift/InducedShiftSequence.lean

full_name: CategoryTheory.Functor.ShiftSequence.induced.isoZero
code: /-- The `isoZero` field of the induced shift sequence. -/
noncomputable def isoZero : F' 0 ≅ F 
goal: F' 0 ≅ F

full_name: CategoryTheory.Functor.ShiftSequence.induced.isoZero_hom_app_obj
code: lemma isoZero_hom_app_obj (X : C) :
    (isoZero e M F' e').hom.app (L.obj X) =
      (e' 0).hom.app X ≫ (isoShiftZero G M).hom.app X ≫ e.inv.app X 
goal: (CategoryTheory.Functor.ShiftSequence.induced.isoZero e M F' e').hom.app (L.obj X) =
  (e' 0).hom.app X ≫ (G.isoShiftZero M).hom.app X ≫ e.inv.app X

full_name: CategoryTheory.Functor.ShiftSequence.induced.shiftIso
code: /-- The `shiftIso` field of the induced shift sequence. -/
noncomputable def shiftIso (n a a' : M) (ha' : n + a = a') :
    shiftFunctor D n ⋙ F' a ≅ F' a' 
goal: CategoryTheory.shiftFunctor D n ⋙ F' a ≅ F' a'

full_name: CategoryTheory.Functor.ShiftSequence.induced.shiftIso_hom_app_obj
code: lemma shiftIso_hom_app_obj (n a a' : M) (ha' : n + a = a') (X : C) :
    (shiftIso L G M F' e' n a a' ha').hom.app (L.obj X) =
      (F' a).map ((L.commShiftIso n).inv.app X) ≫
        (e' a).hom.app (X⟦n⟧) ≫ (G.shiftIso n a a' ha').hom.app X ≫ (e' a').inv.app X 
goal: (CategoryTheory.Functor.ShiftSequence.induced.shiftIso L G M F' e' n a a' ha').hom.app (L.obj X) =
  (F' a).map ((L.commShiftIso n).inv.app X) ≫
    (e' a).hom.app ((CategoryTheory.shiftFunctor C n).obj X) ≫ (G.shiftIso n a a' ha').hom.app X ≫ (e' a').inv.app X

full_name: CategoryTheory.Functor.ShiftSequence.induced
code: /-- Given an isomorphism of functors `e : L ⋙ F ≅ G` relating functors `L : C ⥤ D`,
`F : D ⥤ A` and `G : C ⥤ A`, an additive monoid `M`, a family of functors `F' : M → D ⥤ A`
equipped with isomorphisms `e' : ∀ m, L ⋙ F' m ≅ G.shift m`, this is the shift sequence
induced on `F` induced by a shift sequence for the functor `G`, provided that
the functor `(whiskeringLeft C D A).obj L` of precomposition by `L` is fully faithful. -/
noncomputable def induced : F.ShiftSequence M 
goal: F.ShiftSequence M

full_name: CategoryTheory.Functor.ShiftSequence.induced_isoShiftZero_hom_app_obj
code: @[simp, reassoc]
lemma induced_isoShiftZero_hom_app_obj (X : C) :
    letI := (induced e M F' e')
    (F.isoShiftZero M).hom.app (L.obj X) =
      (e' 0).hom.app X ≫ (isoShiftZero G M).hom.app X ≫ e.inv.app X 
goal: (F.isoShiftZero M).hom.app (L.obj X) = (e' 0).hom.app X ≫ (G.isoShiftZero M).hom.app X ≫ e.inv.app X

full_name: CategoryTheory.Functor.ShiftSequence.induced_shiftIso_hom_app_obj
code: @[simp, reassoc]
lemma induced_shiftIso_hom_app_obj (n a a' : M) (ha' : n + a = a') (X : C) :
    letI := (induced e M F' e')
    (F.shiftIso n a a' ha').hom.app (L.obj X) =
      (F.shift a).map ((L.commShiftIso n).inv.app X) ≫ (e' a).hom.app (X⟦n⟧) ≫
        (G.shiftIso n a a' ha').hom.app X ≫ (e' a').inv.app X 
goal: (F.shiftIso n a a' ha').hom.app (L.obj X) =
  (F.shift a).map ((L.commShiftIso n).inv.app X) ≫
    (e' a).hom.app ((CategoryTheory.shiftFunctor C n).obj X) ≫ (G.shiftIso n a a' ha').hom.app X ≫ (e' a').inv.app X

full_name: CategoryTheory.Functor.ShiftSequence.induced_shiftMap
code: @[reassoc]
lemma induced_shiftMap {n : M} {X Y : C} (f : X ⟶ Y⟦n⟧) (a a' : M) (h : n + a = a') :
    letI := induced e M F' e'
    F.shiftMap (L.map f ≫ (L.commShiftIso n).hom.app _) a a' h =
      (e' a).hom.app X ≫ G.shiftMap f a a' h ≫ (e' a').inv.app Y 
goal: F.shiftMap (L.map f ≫ (L.commShiftIso n).hom.app Y) a a' h = (e' a).hom.app X ≫ G.shiftMap f a a' h ≫ (e' a').inv.app Y