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 { fst := i, snd := X } { fst := i, snd := Y }
Instances For
The identity morphism on an object.
Equations
- CategoryTheory.Sigma.SigmaHom.id x = match x with | { fst := fst, snd := snd } => CategoryTheory.Sigma.SigmaHom.mk (CategoryTheory.CategoryStruct.id snd)
Instances For
Equations
- CategoryTheory.Sigma.SigmaHom.instInhabitedSigmaHom 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
- 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
- ⋯ = ⋯
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 | { fst := j, snd := X } => (h j).app X, naturality := ⋯ }
Instances For
(Implementation). An auxiliary definition to build the functor desc.
Equations
- One or more equations did not get rendered due to their size.
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 | { fst := i, snd := 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
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) => CategoryTheory.Functor.comp (F i) (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 := ⋯ }