Categories of indexed families of objects. #
We define the pointwise category structure on indexed families of objects in a category (and also the dependent generalization).
pi C
gives the cartesian product of an indexed family of categories.
Equations
This provides some assistance to typeclass search in a common situation,
which otherwise fails. (Without this CategoryTheory.Pi.has_limit_of_has_limit_comp_eval
fails.)
Equations
The evaluation functor at i : I
, sending an I
-indexed family of objects to the object over i
.
Equations
- CategoryTheory.Pi.eval C i = { obj := fun (f : (i : I) → C i) => f i, map := fun {X Y : (i : I) → C i} (α : X ⟶ Y) => α i, map_id := ⋯, map_comp := ⋯ }
Equations
- CategoryTheory.Pi.instCategoryComp C f = id inferInstance
Pull back an I
-indexed family of objects to a J
-indexed family, along a function J → I
.
Equations
- CategoryTheory.Pi.comap C h = { obj := fun (f : (i : I) → C i) (i : J) => f (h i), map := fun {X Y : (i : I) → C i} (α : X ⟶ Y) (i : J) => α (h i), map_id := ⋯, map_comp := ⋯ }
The natural isomorphism between pulling back a grading along the identity function, and the identity functor.
Equations
- One or more equations did not get rendered due to their size.
The natural isomorphism comparing between pulling back along two successive functions, and pulling back along their composition
Equations
- One or more equations did not get rendered due to their size.
The natural isomorphism between pulling back then evaluating, and just evaluating.
Equations
- One or more equations did not get rendered due to their size.
Equations
- CategoryTheory.Pi.sumElimCategory C (Sum.inl i) = id inferInstance
- CategoryTheory.Pi.sumElimCategory C (Sum.inr j) = id inferInstance
The bifunctor combining an I
-indexed family of objects with a J
-indexed family of objects
to obtain an I ⊕ J
-indexed family of objects.
Equations
- One or more equations did not get rendered due to their size.
An isomorphism between I
-indexed objects gives an isomorphism between each
pair of corresponding components.
Equations
- CategoryTheory.Pi.isoApp f i = { hom := f.hom i, inv := f.inv i, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Assemble an I
-indexed family of functors into a functor between the pi types.
Equations
- CategoryTheory.Functor.pi F = { obj := fun (f : (i : I) → C i) (i : I) => (F i).obj (f i), map := fun {X Y : (i : I) → C i} (α : X ⟶ Y) (i : I) => (F i).map (α i), map_id := ⋯, map_comp := ⋯ }
Instances For
Similar to pi
, but all functors come from the same category A
Equations
- CategoryTheory.Functor.pi' f = { obj := fun (a : A) (i : I) => (f i).obj a, map := fun {X Y : A} (h : X ⟶ Y) (i : I) => (f i).map h, map_id := ⋯, map_comp := ⋯ }
The projections of Functor.pi' F
are isomorphic to the functors of the family F
Equations
Two functors to a product category are equal iff they agree on every coordinate.
Assemble an I
-indexed family of natural transformations into a single natural transformation.
Equations
- CategoryTheory.NatTrans.pi α = { app := fun (f : (i : I) → C i) (i : I) => (α i).app (f i), naturality := ⋯ }
Assemble an I
-indexed family of natural transformations into a single natural transformation.
Equations
- CategoryTheory.NatTrans.pi' τ = { app := fun (X : E) (i : I) => (τ i).app X, naturality := ⋯ }
Assemble an I
-indexed family of natural isomorphisms into a single natural isomorphism.
Equations
- CategoryTheory.NatIso.pi e = { hom := CategoryTheory.NatTrans.pi fun (i : I) => (e i).hom, inv := CategoryTheory.NatTrans.pi fun (i : I) => (e i).inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Assemble an I
-indexed family of natural isomorphisms into a single natural isomorphism.
Equations
- CategoryTheory.NatIso.pi' e = { hom := CategoryTheory.NatTrans.pi' fun (i : I) => (e i).hom, inv := CategoryTheory.NatTrans.pi' fun (i : I) => (e i).inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
For a family of categories C i
indexed by I
, an equality i = j
in I
induces
an equivalence C i ≌ C j
.
Equations
- CategoryTheory.Pi.eqToEquivalence C h = h ▸ CategoryTheory.Equivalence.refl
When i = j
, projections Pi.eval C i
and Pi.eval C j
are related by the equivalence
Pi.eqToEquivalence C h : C i ≌ C j
.
The equivalences given by Pi.eqToEquivalence
are compatible with reindexing.
Equations
Reindexing a family of categories gives equivalent Pi
categories.
Equations
- One or more equations did not get rendered due to their size.
A product of categories indexed by Option J
identifies to a binary product.
Equations
- One or more equations did not get rendered due to their size.
Assemble an I
-indexed family of equivalences of categories
into a single equivalence.
Equations
- One or more equations did not get rendered due to their size.
Equations
- ⋯ = ⋯