Categories of indexed families of objects. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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.
This provides some assistance to typeclass search in a common situation,
which otherwise fails. (Without this category_theory.pi.has_limit_of_has_limit_comp_eval
fails.)
The evaluation functor at i : I
, sending an I
-indexed family of objects to the object over i
.
Pull back an I
-indexed family of objects to an J
-indexed family, along a function J → I
.
The natural isomorphism between pulling back a grading along the identity function, and the identity functor.
Equations
- category_theory.pi.comap_id I C = {hom := {app := λ (X : Π (i : I), C i), 𝟙 X, naturality' := _}, inv := {app := λ (X : Π (i : I), C i), 𝟙 X, naturality' := _}, hom_inv_id' := _, inv_hom_id' := _}
The natural isomorphism comparing between pulling back along two successive functions, and pulling back along their composition
Equations
- category_theory.pi.comap_comp C f g = {hom := {app := λ (X : Π (i : I), C i) (b : K), 𝟙 (X (g (f b))), naturality' := _}, inv := {app := λ (X : Π (i : I), C i) (b : K), 𝟙 (X (g (f b))), naturality' := _}, hom_inv_id' := _, inv_hom_id' := _}
The natural isomorphism between pulling back then evaluating, and just evaluating.
Equations
- category_theory.pi.comap_eval_iso_eval C h j = category_theory.nat_iso.of_components (λ (f : Π (i : I), C i), category_theory.iso.refl ((category_theory.pi.comap C h ⋙ category_theory.pi.eval (C ∘ h) j).obj f)) _
Equations
- category_theory.pi.sum_elim_category C (sum.inr j) = id (_inst_2 j)
- category_theory.pi.sum_elim_category C (sum.inl i) = id (_inst_1 i)
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
- category_theory.pi.sum C = {obj := λ (f : Π (i : I), C i), {obj := λ (g : Π (j : J), D j) (s : I ⊕ J), sum.rec f g s, map := λ (g g' : Π (j : J), D j) (α : g ⟶ g') (s : I ⊕ J), sum.rec (λ (i : I), 𝟙 (f i)) α s, map_id' := _, map_comp' := _}, map := λ (f f' : Π (i : I), C i) (α : f ⟶ f'), {app := λ (g : Π (j : J), D j) (s : I ⊕ J), sum.rec α (λ (j : J), 𝟙 (g j)) s, naturality' := _}, map_id' := _, map_comp' := _}
An isomorphism between I
-indexed objects gives an isomorphism between each
pair of corresponding components.
Equations
- category_theory.pi.iso_app 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.
Similar to pi
, but all functors come from the same category A
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
- category_theory.nat_trans.pi α = {app := λ (f : Π (i : I), C i) (i : I), (α i).app (f i), naturality' := _}