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.
See https://stacks.math.columbia.edu/tag/001K.
Equations
- CategoryTheory.prod C D = CategoryTheory.Category.mk
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.
Instances For
Construct an isomorphism in C × D out of two isomorphisms in C and D.
Equations
- CategoryTheory.Iso.prod f g = CategoryTheory.Iso.mk (f.hom, g.hom) (f.inv, g.inv)
Instances For
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).
Equations
- CategoryTheory.Prod.sectl C Z = CategoryTheory.Functor.mk { obj := fun X => (X, Z), map := fun {X Y} f => (f, CategoryTheory.CategoryStruct.id Z) }
Instances For
sectr Z D is the functor D ⥤ C × D given by Y ↦ (Z, Y) .
Equations
- CategoryTheory.Prod.sectr Z D = CategoryTheory.Functor.mk { obj := fun X => (Z, X), map := fun {X Y} f => (CategoryTheory.CategoryStruct.id Z, f) }
Instances For
fst is the functor (X, Y) ↦ X.
Equations
- CategoryTheory.Prod.fst C D = CategoryTheory.Functor.mk { obj := fun X => X.fst, map := fun {X Y} f => f.fst }
Instances For
snd is the functor (X, Y) ↦ Y.
Equations
- CategoryTheory.Prod.snd C D = CategoryTheory.Functor.mk { obj := fun X => X.snd, map := fun {X Y} f => f.snd }
Instances For
The functor swapping the factors of a cartesian product of categories, C × D ⥤ D × C.
Equations
- CategoryTheory.Prod.swap C D = CategoryTheory.Functor.mk { obj := fun X => (X.snd, X.fst), map := fun {X Y} f => (f.snd, f.fst) }
Instances For
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.
Instances For
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.
Instances For
Equations
- CategoryTheory.Prod.swapIsEquivalence C D = inferInstance
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.
Instances For
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.
Instances For
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.
Instances For
The cartesian product of two functors.
Equations
- CategoryTheory.Functor.prod F G = CategoryTheory.Functor.mk { obj := fun X => (F.obj X.fst, G.obj X.snd), map := fun {X Y} f => (F.map f.fst, G.map f.snd) }
Instances For
Similar to prod, but both functors start from the same category A
Equations
- CategoryTheory.Functor.prod' F G = CategoryTheory.Functor.mk { obj := fun a => (F.obj a, G.obj a), map := fun {X Y} f => (F.map f, G.map f) }
Instances For
The product F.prod' G followed by projection on the first component is isomorphic to F
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product F.prod' G followed by projection on the second component is isomorphic to G
Equations
- One or more equations did not get rendered due to their size.
Instances For
The diagonal functor.
Equations
Instances For
The cartesian product of two natural transformations.
Equations
- CategoryTheory.NatTrans.prod α β = CategoryTheory.NatTrans.mk fun X => (α.app X.fst, β.app X.snd)
Instances For
F.flip composed with evaluation is the same as evaluating F.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The forward direction for functorProdFunctorEquiv
Equations
- One or more equations did not get rendered due to their size.
Instances For
The backward direction for functorProdFunctorEquiv
Equations
- One or more equations did not get rendered due to their size.
Instances For
The unit isomorphism for functorProdFunctorEquiv
Equations
- One or more equations did not get rendered due to their size.
Instances For
The counit isomorphism for functorProdFunctorEquiv
Equations
- CategoryTheory.functorProdFunctorEquivCounitIso A B C = CategoryTheory.NatIso.ofComponents fun F => CategoryTheory.NatIso.ofComponents fun X => CategoryTheory.prod.etaIso (F.obj X)
Instances For
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.