Disjoint union of categories #
We define the category structure on a sigma-type (disjoint union) of categories.
The type of morphisms of a disjoint union of categories: for X : C i
and Y : C j
, a morphism
(i, X) ⟶ (j, Y)
if i = j
is just a morphism X ⟶ Y
, and if i ≠ j
there are no such morphisms.
- mk: {I : Type w₁} → {C : I → Type u₁} → [inst : (i : I) → CategoryTheory.Category.{v₁, u₁} (C i)] → {i : I} → {X Y : C i} → (X ⟶ Y) → CategoryTheory.Sigma.SigmaHom ⟨i, X⟩ ⟨i, Y⟩
Instances For
The identity morphism on an object.
Equations
- CategoryTheory.Sigma.SigmaHom.id x = match x with | ⟨fst, snd⟩ => CategoryTheory.Sigma.SigmaHom.mk (CategoryTheory.CategoryStruct.id snd)
Instances For
Equations
- CategoryTheory.Sigma.SigmaHom.instInhabited X = { default := CategoryTheory.Sigma.SigmaHom.id X }
Composition of sigma homomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Sigma.sigma = CategoryTheory.Category.mk ⋯ ⋯ ⋯
The inclusion functor into the disjoint union of categories.
Equations
- CategoryTheory.Sigma.incl i = { obj := fun (X : C i) => ⟨i, X⟩, map := fun {X Y : C i} => CategoryTheory.Sigma.SigmaHom.mk, map_id := ⋯, map_comp := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
To build a natural transformation over the sigma category, it suffices to specify it restricted to each subcategory.
Equations
- CategoryTheory.Sigma.natTrans h = { app := fun (x : (i : I) × C i) => match x with | ⟨j, X⟩ => (h j).app X, naturality := ⋯ }
Instances For
(Implementation). An auxiliary definition to build the functor desc
.
Equations
- CategoryTheory.Sigma.descMap F x✝¹ x✝ x = match x✝¹, x✝, x with | .(⟨i, X⟩), .(⟨i, Y⟩), CategoryTheory.Sigma.SigmaHom.mk g => (F ⟨i, X⟩.fst).map g
Instances For
Given a collection of functors F i : C i ⥤ D
, we can produce a functor (Σ i, C i) ⥤ D
.
The produced functor desc F
satisfies: incl i ⋙ desc F ≅ F i
, i.e. restricted to just the
subcategory C i
, desc F
agrees with F i
, and it is unique (up to natural isomorphism) with
this property.
This witnesses that the sigma-type is the coproduct in Cat.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This shows that when desc F
is restricted to just the subcategory C i
, desc F
agrees with
F i
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If q
when restricted to each subcategory C i
agrees with F i
, then q
is isomorphic to
desc F
.
Equations
- CategoryTheory.Sigma.descUniq F q h = CategoryTheory.NatIso.ofComponents (fun (x : (i : I) × C i) => match x with | ⟨i, X⟩ => (h i).app X) ⋯
Instances For
If q₁
and q₂
when restricted to each subcategory C i
agree, then q₁
and q₂
are isomorphic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A function J → I
induces a functor Σ j, C (g j) ⥤ Σ i, C i
.
Equations
- CategoryTheory.Sigma.map C g = CategoryTheory.Sigma.desc fun (j : J) => CategoryTheory.Sigma.incl (g j)
Instances For
The functor Sigma.map C g
restricted to the subcategory C j
acts as the inclusion of g j
.
Equations
- CategoryTheory.Sigma.inclCompMap C g j = CategoryTheory.Iso.refl ((CategoryTheory.Sigma.incl j).comp (CategoryTheory.Sigma.map C g))
Instances For
The functor Sigma.map
applied to the identity function is just the identity functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor Sigma.map
applied to a composition is a composition of functors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Assemble an I
-indexed family of functors into a functor between the sigma types.
Equations
- CategoryTheory.Sigma.Functor.sigma F = CategoryTheory.Sigma.desc fun (i : I) => (F i).comp (CategoryTheory.Sigma.incl i)
Instances For
Assemble an I
-indexed family of natural transformations into a single natural transformation.
Equations
- CategoryTheory.Sigma.natTrans.sigma α = { app := fun (f : (i : I) × C i) => CategoryTheory.Sigma.SigmaHom.mk ((α f.fst).app f.snd), naturality := ⋯ }