Transfinite iterations of a functor #
In this file, given a functor Φ : C ⥤ C
and a natural transformation
ε : 𝟭 C ⟶ Φ
, we shall define the transfinite iterations of Φ
(TODO).
Given j : J
where J
is a well ordered set, we first introduce
a category Iteration ε j
. An object in this category consists of
a functor F : { i // i ≤ j } ⥤ C ⥤ C
equipped with the data
which makes it the i
th-iteration of Φ
for all i
such that i ≤ j
.
Under suitable assumptions on C
, we shall show that this category
Iteration ε j
is equivalent to the punctual category (TODO).
We shall study morphisms in this category, showing first that
there is at most one morphism between two morphisms (done), and secondly,
that there does always exist a unique morphism between
two objects (TODO). Then, we shall show the existence of
an object (TODO). In these proofs, which are all done using
transfinite induction, we have to treat three cases separately:
- the case
j = ⊥
; - the case
j
is a successor; - the case
j
is a limit element.
The map F.obj ⟨i, _⟩ ⟶ F.obj ⟨wellOrderSucc i, _⟩
when F : { i // i ≤ j } ⥤ C
and i : J
is such that i < j
.
Equations
- CategoryTheory.Functor.Iteration.mapSucc' F i hi = F.map (CategoryTheory.homOfLE ⋯)
Instances For
The functor { k // k < i } ⥤ C
obtained by "restriction" of F : { i // i ≤ j } ⥤ C
when i ≤ j
.
Equations
- CategoryTheory.Functor.Iteration.restrictionLT F hi = ⋯.functor.comp F
Instances For
Given F : { i // i ≤ j } ⥤ C
, i : J
such that hi : i ≤ j
, this is the
cocone consisting of all maps F.obj ⟨k, hk⟩ ⟶ F.obj ⟨i, hi⟩
for k : J
such that k < i
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The category of j
th iterations of a functor Φ
equipped with a natural
transformation ε : 𝟭 C ⟶ Φ
. An object consists of the data of all iterations
of Φ
for i : J
such that i ≤ j
(this is the field F
). Such objects are
equipped with data and properties which characterizes the iterations up to a unique
isomorphism for the three types of elements: ⊥
, successors, limit elements.
- F : CategoryTheory.Functor { i : J // i ≤ j } (CategoryTheory.Functor C C)
The data of all
i
th iterations fori : J
such thati ≤ j
. - isoZero : self.F.obj ⟨⊥, ⋯⟩ ≅ CategoryTheory.Functor.id C
The zeroth iteration is the identity functor.
- isoSucc : (i : J) → (hi : i < j) → self.F.obj ⟨wellOrderSucc i, ⋯⟩ ≅ (self.F.obj ⟨i, ⋯⟩).comp Φ
The iteration on a successor element is obtained by composition of the previous iteration with
Φ
. - mapSucc'_eq : ∀ (i : J) (hi : i < j), CategoryTheory.Functor.Iteration.mapSucc' self.F i hi = CategoryTheory.CategoryStruct.comp (CategoryTheory.whiskerLeft (self.F.obj ⟨i, ⋯⟩) ε) (self.isoSucc i hi).inv
The natural map from an iteration to its successor is induced by
ε
. - isColimit : (i : J) → [inst : IsWellOrderLimitElement i] → (hi : i ≤ j) → CategoryTheory.Limits.IsColimit (CategoryTheory.Functor.Iteration.coconeOfLE self.F hi)
If
i
is a limit element, thei
th iteration is the colimit ofk
th iterations fork < i
.
Instances For
The natural map from an iteration to its successor is induced by ε
.
For iter : Φ.Iteration.ε j
, this is the map
iter.F.obj ⟨i, _⟩ ⟶ iter.F.obj ⟨wellOrderSucc i, _⟩
if i : J
is such that i < j
.
Equations
- iter.mapSucc i hi = CategoryTheory.Functor.Iteration.mapSucc' iter.F i hi
Instances For
A morphism between two objects iter₁
and iter₂
in the
category Φ.Iteration ε j
of j
th iterations of a functor Φ
equipped with a natural transformation ε : 𝟭 C ⟶ Φ
consists of a natural
transformation natTrans : iter₁.F ⟶ iter₂.F
which is compatible with the
isomorphisms isoZero
and isoSucc
.
- natTrans : iter₁.F ⟶ iter₂.F
- natTrans_app_zero : self.natTrans.app ⟨⊥, ⋯⟩ = CategoryTheory.CategoryStruct.comp iter₁.isoZero.hom iter₂.isoZero.inv
- natTrans_app_succ : ∀ (i : J) (hi : i < j), self.natTrans.app ⟨wellOrderSucc i, ⋯⟩ = CategoryTheory.CategoryStruct.comp (iter₁.isoSucc i hi).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.whiskerRight (self.natTrans.app ⟨i, ⋯⟩) Φ) (iter₂.isoSucc i hi).inv)
Instances For
The identity morphism in the category Φ.Iteration ε j
.
Equations
- CategoryTheory.Functor.Iteration.Hom.id iter₁ = { natTrans := CategoryTheory.CategoryStruct.id iter₁.F, natTrans_app_zero := ⋯, natTrans_app_succ := ⋯ }
Instances For
The composition of morphisms in the category Φ.Iteration ε j
.
Equations
- f.comp g = { natTrans := CategoryTheory.CategoryStruct.comp f.natTrans g.natTrans, natTrans_app_zero := ⋯, natTrans_app_succ := ⋯ }
Instances For
Equations
- CategoryTheory.Functor.Iteration.Hom.instCategory = CategoryTheory.Category.mk ⋯ ⋯ ⋯
Equations
- ⋯ = ⋯