Cartesian products of categories #
We define the category instance on C × D when C and D are categories.
We define:
sectL C Z: the functorC ⥤ C × Dgiven byX ↦ ⟨X, Z⟩sectR Z D: the functorD ⥤ C × Dgiven byY ↦ ⟨Z, Y⟩fst: the functor⟨X, Y⟩ ↦ Xsnd: the functor⟨X, Y⟩ ↦ Yswap: the functorC × D ⥤ D × Cgiven by⟨X, Y⟩ ↦ ⟨Y, X⟩(and the fact this is an equivalence)
We further define evaluation : C ⥤ (C ⥤ D) ⥤ D and evaluationUncurried : C × (C ⥤ D) ⥤ D,
and products of functors and natural transformations, written F.prod G and α.prod β.
prod C D gives the cartesian product of two categories.
Equations
- One or more equations did not get rendered due to their size.
Two rfl lemmas that cannot be generated by @[simps].
The isomorphism between (X.1, X.2) and X.
Equations
- One or more equations did not get rendered due to their size.
Construct an isomorphism in C × D out of two isomorphisms in C and D.
Category.uniformProd C D is an additional instance specialised so both factors have the same
universe levels. This helps typeclass resolution.
Equations
sectL C Z is the functor C ⥤ C × D given by X ↦ (X, Z).
sectR Z D is the functor D ⥤ C × D given by Y ↦ (Z, Y) .
Alias of CategoryTheory.Prod.sectL.
sectL C Z is the functor C ⥤ C × D given by X ↦ (X, Z).
Alias of CategoryTheory.Prod.sectR.
sectR Z D is the functor D ⥤ C × D given by Y ↦ (Z, Y) .
Equations
Alias of CategoryTheory.Prod.sectL_obj.
Alias of CategoryTheory.Prod.sectR_obj.
Alias of CategoryTheory.Prod.sectL_map.
Alias of CategoryTheory.Prod.sectR_map.
fst is the functor (X, Y) ↦ X.
snd is the functor (X, Y) ↦ Y.
The functor swapping the factors of a cartesian product of categories, C × D ⥤ D × C.
Swapping the factors of a cartesian product of categories twice is naturally isomorphic to the identity functor.
Equations
- One or more equations did not get rendered due to their size.
The equivalence, given by swapping factors, between C × D and D × C.
Equations
- One or more equations did not get rendered due to their size.
Any morphism in a product factors as a morphsim whose left component is an identity followed by a morphism whose right component is an identity.
Any morphism in a product factors as a morphsim whose right component is an identity followed by a morphism whose left component is an identity.
The "evaluation at X" functor, such that
(evaluation.obj X).obj F = F.obj X,
which is functorial in both X and F.
Equations
- One or more equations did not get rendered due to their size.
The "evaluation of F at X" functor,
as a functor C × (C ⥤ D) ⥤ D.
Equations
- One or more equations did not get rendered due to their size.
The constant functor followed by the evaluation functor is just the identity.
Equations
- One or more equations did not get rendered due to their size.
The cartesian product of two functors.
Similar to prod, but both functors start from the same category A
The product F.prod' G followed by projection on the first component is isomorphic to F
Equations
- F.prod'CompFst G = CategoryTheory.NatIso.ofComponents (fun (x : A) => CategoryTheory.Iso.refl (((F.prod' G).comp (CategoryTheory.Prod.fst B C)).obj x)) ⋯
The product F.prod' G followed by projection on the second component is isomorphic to G
Equations
- F.prod'CompSnd G = CategoryTheory.NatIso.ofComponents (fun (x : A) => CategoryTheory.Iso.refl (((F.prod' G).comp (CategoryTheory.Prod.snd B C)).obj x)) ⋯
The diagonal functor.
Equations
The cartesian product of two natural transformations.
The cartesian product of two natural transformations where both functors have the same source.
The cartesian product functor between functor categories
Equations
- One or more equations did not get rendered due to their size.
The cartesian product of two natural isomorphisms.
Equations
- CategoryTheory.NatIso.prod e₁ e₂ = { hom := CategoryTheory.NatTrans.prod e₁.hom e₂.hom, inv := CategoryTheory.NatTrans.prod e₁.inv e₂.inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
The cartesian product of two equivalences of categories.
Equations
- One or more equations did not get rendered due to their size.
F.flip composed with evaluation is the same as evaluating F.
Equations
- CategoryTheory.flipCompEvaluation F a = CategoryTheory.NatIso.ofComponents (fun (b : B) => CategoryTheory.Iso.refl ((F.flip.comp ((CategoryTheory.evaluation A C).obj a)).obj b)) ⋯
F composed with evaluation is the same as evaluating F.flip.
Equations
- CategoryTheory.compEvaluation F b = CategoryTheory.NatIso.ofComponents (fun (a : A) => CategoryTheory.Iso.refl ((F.comp ((CategoryTheory.evaluation B C).obj b)).obj a)) ⋯
Whiskering by F and then evaluating at a is the same as evaluating at F.obj a.
Equations
- CategoryTheory.whiskeringLeftCompEvaluation F a = CategoryTheory.Iso.refl (((CategoryTheory.whiskeringLeft A B C).obj F).comp ((CategoryTheory.evaluation A C).obj a))
Whiskering by F and then evaluating at a is the same as evaluating at F.obj a.
Whiskering by F and then evaluating at a is the same as evaluating at F and then
applying F.
Equations
- CategoryTheory.whiskeringRightCompEvaluation F a = CategoryTheory.Iso.refl (((CategoryTheory.whiskeringRight A B C).obj F).comp ((CategoryTheory.evaluation A C).obj a))
Whiskering by F and then evaluating at a is the same as evaluating at F and then
applying F.
The forward direction for functorProdFunctorEquiv
Equations
- One or more equations did not get rendered due to their size.
The backward direction for functorProdFunctorEquiv
Equations
- One or more equations did not get rendered due to their size.
The unit isomorphism for functorProdFunctorEquiv
Equations
- One or more equations did not get rendered due to their size.
The counit isomorphism for functorProdFunctorEquiv
Equations
- One or more equations did not get rendered due to their size.
The equivalence of categories between (A ⥤ B) × (A ⥤ C) and A ⥤ (B × C)
Equations
- One or more equations did not get rendered due to their size.
The equivalence between the opposite of a product and the product of the opposites.
Equations
- One or more equations did not get rendered due to their size.