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 → CategoryTheory.Functor C D
a family of functors
C ⥤ D
indexed by the elements of the additive monoidA
- shiftIso : (n a a' : A) → 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
shiftIso 0
is the obvious isomorphism.
shiftIso (m + n)
is determined by shiftIso m
and shiftIso n
.
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 (a : A) => CategoryTheory.CategoryStruct.id (F.functor a), 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
Equations
- ⋯ = ⋯
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 (a : A) => (F.functor a).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) ⋯