Functors from a category to a category with a shift #
Given a category C
, and a category D
equipped with a shift by a monoid A
,
we define a structure SingleFunctors C D A
which contains the data of
functors functor a : C ⥤ D
for all a : A
and isomorphisms
shiftIso n a a' h : functor a' ⋙ shiftFunctor D n ≅ functor a
whenever n + a = a'
. These isomorphisms should satisfy certain compatibilities
with respect to the shift on D
.
This notion is similar to Functor.ShiftSequence
which can be used in order to
attach shifted versions of a homological functor D ⥤ C
with D
a
triangulated category and C
an abelian category. However, the definition
SingleFunctors
is for functors in the other direction: it is meant to
ease the formalization of the compatibilities with shifts of the
functors C ⥤ CochainComplex C ℤ
(or C ⥤ DerivedCategory C
(TODO))
which sends an object X : C
to a complex where X
sits in a single degree.
The type of families of functors A → C ⥤ D
which are compatible with
the shift by A
on the category D
.
- functor (a : A) : CategoryTheory.Functor C D
a family of functors
C ⥤ D
indexed by the elements of the additive monoidA
- shiftIso (n a a' : A) (ha' : n + a = a') : (self.functor a').comp (CategoryTheory.shiftFunctor D n) ≅ self.functor a
- shiftIso_zero (a : A) : self.shiftIso 0 a a ⋯ = CategoryTheory.isoWhiskerLeft (self.functor a) (CategoryTheory.shiftFunctorZero D A)
shiftIso 0
is the obvious isomorphism. - shiftIso_add (n m a a' a'' : A) (ha' : n + a = a') (ha'' : m + a' = a'') : self.shiftIso (m + n) a a'' ⋯ = CategoryTheory.isoWhiskerLeft (self.functor a'') (CategoryTheory.shiftFunctorAdd D m n) ≪≫ ((self.functor a'').associator (CategoryTheory.shiftFunctor D m) (CategoryTheory.shiftFunctor D n)).symm ≪≫ CategoryTheory.isoWhiskerRight (self.shiftIso m a' a'' ha'') (CategoryTheory.shiftFunctor D n) ≪≫ self.shiftIso n a a' ha'
Instances For
The morphisms in the category SingleFunctors C D A
- hom (a : A) : F.functor a ⟶ G.functor a
- comm (n a a' : A) (ha' : n + a = a') : CategoryTheory.CategoryStruct.comp (F.shiftIso n a a' ha').hom (self.hom a) = CategoryTheory.CategoryStruct.comp (CategoryTheory.whiskerRight (self.hom a') (CategoryTheory.shiftFunctor D n)) (G.shiftIso n a a' ha').hom
Instances For
The identity morphism in SingleFunctors C D A
.
Equations
- CategoryTheory.SingleFunctors.Hom.id F = { hom := fun (x : A) => CategoryTheory.CategoryStruct.id (F.functor x), comm := ⋯ }
Instances For
The composition of morphisms in SingleFunctors C D A
.
Equations
- α.comp β = { hom := fun (a : A) => CategoryTheory.CategoryStruct.comp (α.hom a) (β.hom a), comm := ⋯ }
Instances For
Equations
- CategoryTheory.SingleFunctors.instCategory = CategoryTheory.Category.mk ⋯ ⋯ ⋯
Construct an isomorphism in SingleFunctors C D A
by giving
level-wise isomorphisms and checking compatibility only in the forward direction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The evaluation SingleFunctors C D A ⥤ C ⥤ D
for some a : A
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given F : SingleFunctors C D A
, and a functor G : D ⥤ E
which commutes
with the shift by A
, this is the "composition" of F
and G
in SingleFunctors C E A
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor SingleFunctors C D A ⥤ SingleFunctors C E A
given by the postcomposition
by a functor G : D ⥤ E
which commutes with the shift.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical isomorphism (F.postcomp G).postcomp G' ≅ F.postcomp (G ⋙ G')
.
Equations
- F.postcompPostcompIso G G' = CategoryTheory.SingleFunctors.isoMk (fun (x : A) => (F.functor x).associator G G') ⋯
Instances For
The isomorphism F.postcomp G ≅ F.postcomp G'
induced by an isomorphism e : G ≅ G'
which commutes with the shift.
Equations
- F.postcompIsoOfIso e = CategoryTheory.SingleFunctors.isoMk (fun (a : A) => CategoryTheory.isoWhiskerLeft (F.functor a) e) ⋯