Loogle!
Result
Found 415 declarations mentioning CategoryTheory.Limits.prod. Of these, only the first 200 are shown.
- CategoryTheory.Limits.prod ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : C - CategoryTheory.Limits.diag ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProduct X X] : X โถ X โจฏ X - CategoryTheory.Limits.instIsSplitMonoDiag ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X : C} [CategoryTheory.Limits.HasBinaryProduct X X] : CategoryTheory.IsSplitMono (CategoryTheory.Limits.diag X) - CategoryTheory.Limits.prod.fst ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] : X โจฏ Y โถ X - CategoryTheory.Limits.prod.snd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] : X โจฏ Y โถ Y - CategoryTheory.Limits.prod.leftUnitor ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] (P : C) [CategoryTheory.Limits.HasBinaryProduct (โค_ C) P] : (โค_ C) โจฏ P โ P - CategoryTheory.Limits.prod.rightUnitor ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] (P : C) [CategoryTheory.Limits.HasBinaryProduct P (โค_ C)] : P โจฏ โค_ C โ P - CategoryTheory.Limits.prod.braiding ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (P Q : C) [CategoryTheory.Limits.HasBinaryProduct P Q] [CategoryTheory.Limits.HasBinaryProduct Q P] : P โจฏ Q โ Q โจฏ P - CategoryTheory.Limits.prod.mapIso ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โ Y) (g : X โ Z) : W โจฏ X โ Y โจฏ Z - CategoryTheory.Limits.prod.lift ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) : W โถ X โจฏ Y - CategoryTheory.Limits.prodIsProd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.BinaryFan.mk CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd) - CategoryTheory.Limits.prod.functor_obj_obj ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y : C) : (CategoryTheory.Limits.prod.functor.obj X).obj Y = (X โจฏ Y) - CategoryTheory.Limits.prod.map ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โถ Y) (g : X โถ Z) : W โจฏ X โถ Y โจฏ Z - CategoryTheory.Limits.prod.mono_lift_of_mono_left ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) [CategoryTheory.Mono f] : CategoryTheory.Mono (CategoryTheory.Limits.prod.lift f g) - CategoryTheory.Limits.prod.mono_lift_of_mono_right ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) [CategoryTheory.Mono g] : CategoryTheory.Mono (CategoryTheory.Limits.prod.lift f g) - CategoryTheory.Limits.prod.leftUnitor_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] (P : C) [CategoryTheory.Limits.HasBinaryProduct (โค_ C) P] : (CategoryTheory.Limits.prod.leftUnitor P).hom = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.prod.rightUnitor_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] (P : C) [CategoryTheory.Limits.HasBinaryProduct P (โค_ C)] : (CategoryTheory.Limits.prod.rightUnitor P).hom = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.prod.comp_diag ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasBinaryProduct Y Y] (f : X โถ Y) : CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.diag Y) = CategoryTheory.Limits.prod.lift f f - CategoryTheory.Limits.prod.map_id_id ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id X) (CategoryTheory.CategoryStruct.id Y) = CategoryTheory.CategoryStruct.id (X โจฏ Y) - CategoryTheory.Limits.prod.lift_fst_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd = CategoryTheory.CategoryStruct.id (X โจฏ Y) - CategoryTheory.Limits.prod.lift_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift f g) CategoryTheory.Limits.prod.fst = f - CategoryTheory.Limits.prod.lift_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift f g) CategoryTheory.Limits.prod.snd = g - CategoryTheory.Limits.isIso_prod ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โถ Y) (g : X โถ Z) [CategoryTheory.IsIso f] [CategoryTheory.IsIso g] : CategoryTheory.IsIso (CategoryTheory.Limits.prod.map f g) - CategoryTheory.Limits.prod.leftUnitor_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] (P : C) [CategoryTheory.Limits.HasBinaryProduct (โค_ C) P] : (CategoryTheory.Limits.prod.leftUnitor P).inv = CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.terminal.from P) (CategoryTheory.CategoryStruct.id P) - CategoryTheory.Limits.prod.map_mono ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {W X Y Z : C} (f : W โถ Y) (g : X โถ Z) [CategoryTheory.Mono f] [CategoryTheory.Mono g] [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] : CategoryTheory.Mono (CategoryTheory.Limits.prod.map f g) - CategoryTheory.Limits.prod.rightUnitor_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] (P : C) [CategoryTheory.Limits.HasBinaryProduct P (โค_ C)] : (CategoryTheory.Limits.prod.rightUnitor P).inv = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.id P) (CategoryTheory.Limits.terminal.from P) - CategoryTheory.Limits.prod.braiding_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (P Q : C) [CategoryTheory.Limits.HasBinaryProduct P Q] [CategoryTheory.Limits.HasBinaryProduct Q P] : (CategoryTheory.Limits.prod.braiding P Q).hom = CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.prod.braiding_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (P Q : C) [CategoryTheory.Limits.HasBinaryProduct P Q] [CategoryTheory.Limits.HasBinaryProduct Q P] : (CategoryTheory.Limits.prod.braiding P Q).inv = CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.prod.diag_map ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) [CategoryTheory.Limits.HasBinaryProduct X X] [CategoryTheory.Limits.HasBinaryProduct Y Y] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diag X) (CategoryTheory.Limits.prod.map f f) = CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.diag Y) - CategoryTheory.Limits.prod.mapIso_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โ Y) (g : X โ Z) : (CategoryTheory.Limits.prod.mapIso f g).hom = CategoryTheory.Limits.prod.map f.hom g.hom - CategoryTheory.Limits.prod.mapIso_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โ Y) (g : X โ Z) : (CategoryTheory.Limits.prod.mapIso f g).inv = CategoryTheory.Limits.prod.map f.inv g.inv - CategoryTheory.Limits.prod.functorLeftComp ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y : C) : CategoryTheory.Limits.prod.functor.obj (X โจฏ Y) โ (CategoryTheory.Limits.prod.functor.obj Y).comp (CategoryTheory.Limits.prod.functor.obj X) - CategoryTheory.Limits.prod.functor_obj_map ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (X : C) {xโ xโยน : C} (g : xโ โถ xโยน) : (CategoryTheory.Limits.prod.functor.obj X).map g = CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id X) g - CategoryTheory.Limits.prod.lift_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) {Z : C} (h : X โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift f g) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp f h - CategoryTheory.Limits.prod.lift_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) {Z : C} (h : Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift f g) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp g h - CategoryTheory.Limits.prod.comp_lift ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {V W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : V โถ W) (g : W โถ X) (h : W โถ Y) : CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.prod.lift g h) = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.prod.map_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โถ Y) (g : X โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) CategoryTheory.Limits.prod.fst = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst f - CategoryTheory.Limits.prod.map_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โถ Y) (g : X โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) CategoryTheory.Limits.prod.snd = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd g - CategoryTheory.Limits.prod.symmetry ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (P Q : C) [CategoryTheory.Limits.HasBinaryProduct P Q] [CategoryTheory.Limits.HasBinaryProduct Q P] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.braiding P Q).hom (CategoryTheory.Limits.prod.braiding Q P).hom = CategoryTheory.CategoryStruct.id (P โจฏ Q) - CategoryTheory.Limits.prod.associator ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (P Q R : C) : (P โจฏ Q) โจฏ R โ P โจฏ Q โจฏ R - CategoryTheory.Limits.prod.symmetry' ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (P Q : C) [CategoryTheory.Limits.HasBinaryProduct P Q] [CategoryTheory.Limits.HasBinaryProduct Q P] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst) (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst) = CategoryTheory.CategoryStruct.id (P โจฏ Q) - CategoryTheory.Limits.prod.lift_fst_comp_snd_comp ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W Y] [CategoryTheory.Limits.HasBinaryProduct X Z] (g : W โถ X) (g' : Y โถ Z) : CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst g) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd g') = CategoryTheory.Limits.prod.map g g' - CategoryTheory.Limits.prod.lift' ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : W โถ X) (g : W โถ Y) : { l // CategoryTheory.CategoryStruct.comp l CategoryTheory.Limits.prod.fst = f โง CategoryTheory.CategoryStruct.comp l CategoryTheory.Limits.prod.snd = g } - CategoryTheory.Limits.prod.diag_map_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) [CategoryTheory.Limits.HasBinaryProduct X X] [CategoryTheory.Limits.HasBinaryProduct Y Y] {Z : C} (h : Y โจฏ Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diag X) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f f) h) = CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diag Y) h) - CategoryTheory.Limits.prod.symmetry_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (P Q : C) [CategoryTheory.Limits.HasBinaryProduct P Q] [CategoryTheory.Limits.HasBinaryProduct Q P] {Z : C} (h : P โจฏ Q โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.braiding P Q).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.braiding Q P).hom h) = h - CategoryTheory.Limits.prod.diag_map_fst_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (X โจฏ Y) (X โจฏ Y)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diag (X โจฏ Y)) (CategoryTheory.Limits.prod.map CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd) = CategoryTheory.CategoryStruct.id (X โจฏ Y) - CategoryTheory.Limits.prod.symmetry'_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] (P Q : C) [CategoryTheory.Limits.HasBinaryProduct P Q] [CategoryTheory.Limits.HasBinaryProduct Q P] {Z : C} (h : P โจฏ Q โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst) h) = h - CategoryTheory.Limits.prod.lift_map ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {V W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : V โถ W) (g : V โถ X) (h : W โถ Y) (k : X โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift f g) (CategoryTheory.Limits.prod.map h k) = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp f h) (CategoryTheory.CategoryStruct.comp g k) - CategoryTheory.Limits.prod.comp_lift_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {V W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] (f : V โถ W) (g : W โถ X) (h : W โถ Y) {Z : C} (hโ : X โจฏ Y โถ Z) : CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift g h) hโ) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.comp f h)) hโ - CategoryTheory.Limits.prod.map_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โถ Y) (g : X โถ Z) {Zโ : C} (h : Y โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.prod.map_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : W โถ Y) (g : X โถ Z) {Zโ : C} (h : Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp g h) - CategoryTheory.Limits.prod.map_comp_id ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z W : C} (f : X โถ Y) (g : Y โถ Z) [CategoryTheory.Limits.HasBinaryProduct X W] [CategoryTheory.Limits.HasBinaryProduct Z W] [CategoryTheory.Limits.HasBinaryProduct Y W] : CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.id W) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id W)) (CategoryTheory.Limits.prod.map g (CategoryTheory.CategoryStruct.id W)) - CategoryTheory.Limits.prod.map_id_comp ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z W : C} (f : X โถ Y) (g : Y โถ Z) [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct W Y] [CategoryTheory.Limits.HasBinaryProduct W Z] : CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) f) (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) g) - CategoryTheory.Limits.prod.diag_map_fst_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (X โจฏ Y) (X โจฏ Y)] {Z : C} (h : X โจฏ Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diag (X โจฏ Y)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd) h) = h - CategoryTheory.Limits.prod.map_map ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {Aโ Aโ Aโ Bโ Bโ Bโ : C} [CategoryTheory.Limits.HasBinaryProduct Aโ Bโ] [CategoryTheory.Limits.HasBinaryProduct Aโ Bโ] [CategoryTheory.Limits.HasBinaryProduct Aโ Bโ] (f : Aโ โถ Aโ) (g : Bโ โถ Bโ) (h : Aโ โถ Aโ) (k : Bโ โถ Bโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) (CategoryTheory.Limits.prod.map h k) = CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.comp f h) (CategoryTheory.CategoryStruct.comp g k) - CategoryTheory.Limits.prod.hom_ext ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] {f g : W โถ X โจฏ Y} (hโ : CategoryTheory.CategoryStruct.comp f CategoryTheory.Limits.prod.fst = CategoryTheory.CategoryStruct.comp g CategoryTheory.Limits.prod.fst) (hโ : CategoryTheory.CategoryStruct.comp f CategoryTheory.Limits.prod.snd = CategoryTheory.CategoryStruct.comp g CategoryTheory.Limits.prod.snd) : f = g - CategoryTheory.Limits.prod.hom_ext_iff ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {W X Y : C} [CategoryTheory.Limits.HasBinaryProduct X Y] {f g : W โถ X โจฏ Y} : f = g โ CategoryTheory.CategoryStruct.comp f CategoryTheory.Limits.prod.fst = CategoryTheory.CategoryStruct.comp g CategoryTheory.Limits.prod.fst โง CategoryTheory.CategoryStruct.comp f CategoryTheory.Limits.prod.snd = CategoryTheory.CategoryStruct.comp g CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.prod.lift_map_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {V W X Y Z : C} [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct Y Z] (f : V โถ W) (g : V โถ X) (h : W โถ Y) (k : X โถ Z) {Zโ : C} (hโ : Y โจฏ Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift f g) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map h k) hโ) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp f h) (CategoryTheory.CategoryStruct.comp g k)) hโ - CategoryTheory.Limits.prod.map_comp_id_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z W : C} (f : X โถ Y) (g : Y โถ Z) [CategoryTheory.Limits.HasBinaryProduct X W] [CategoryTheory.Limits.HasBinaryProduct Z W] [CategoryTheory.Limits.HasBinaryProduct Y W] {Zโ : C} (h : Z โจฏ W โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.comp f g) (CategoryTheory.CategoryStruct.id W)) h = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id W)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map g (CategoryTheory.CategoryStruct.id W)) h) - CategoryTheory.Limits.prod.map_id_comp_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z W : C} (f : X โถ Y) (g : Y โถ Z) [CategoryTheory.Limits.HasBinaryProduct W X] [CategoryTheory.Limits.HasBinaryProduct W Y] [CategoryTheory.Limits.HasBinaryProduct W Z] {Zโ : C} (h : W โจฏ Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) (CategoryTheory.CategoryStruct.comp f g)) h = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) g) h) - CategoryTheory.Limits.prod.map_map_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {Aโ Aโ Aโ Bโ Bโ Bโ : C} [CategoryTheory.Limits.HasBinaryProduct Aโ Bโ] [CategoryTheory.Limits.HasBinaryProduct Aโ Bโ] [CategoryTheory.Limits.HasBinaryProduct Aโ Bโ] (f : Aโ โถ Aโ) (g : Bโ โถ Bโ) (h : Aโ โถ Aโ) (k : Bโ โถ Bโ) {Z : C} (hโ : Aโ โจฏ Bโ โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map h k) hโ) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.comp f h) (CategoryTheory.CategoryStruct.comp g k)) hโ - CategoryTheory.Limits.prod.functor_map_app ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] {Xโ Yโ : C} (f : Xโ โถ Yโ) (T : C) : (CategoryTheory.Limits.prod.functor.map f).app T = CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id T) - CategoryTheory.Limits.prod_rightUnitor_inv_naturality ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.rightUnitor X).inv (CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id (โค_ C))) = CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.prod.rightUnitor Y).inv - CategoryTheory.Limits.prod.leftUnitor_hom_naturality ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id (โค_ C)) f) (CategoryTheory.Limits.prod.leftUnitor Y).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.leftUnitor X).hom f - CategoryTheory.Limits.prod.leftUnitor_inv_naturality ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.leftUnitor X).inv (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id (โค_ C)) f) = CategoryTheory.CategoryStruct.comp f (CategoryTheory.Limits.prod.leftUnitor Y).inv - CategoryTheory.Limits.prod.rightUnitor_hom_naturality ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id (โค_ C))) (CategoryTheory.Limits.prod.rightUnitor Y).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.rightUnitor X).hom f - CategoryTheory.Limits.prod_rightUnitor_inv_naturality_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) {Z : C} (h : Y โจฏ โค_ C โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.rightUnitor X).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id (โค_ C))) h) = CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.rightUnitor Y).inv h) - CategoryTheory.Limits.prod.leftUnitor_hom_naturality_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) {Z : C} (h : Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id (โค_ C)) f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.leftUnitor Y).hom h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.leftUnitor X).hom (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.prod.leftUnitor_inv_naturality_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) {Z : C} (h : (โค_ C) โจฏ Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.leftUnitor X).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id (โค_ C)) f) h) = CategoryTheory.CategoryStruct.comp f (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.leftUnitor Y).inv h) - CategoryTheory.Limits.prod.rightUnitor_hom_naturality_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (f : X โถ Y) {Z : C} (h : Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id (โค_ C))) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.rightUnitor Y).hom h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.rightUnitor X).hom (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.prod.map_swap ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {A B X Y : C} (f : A โถ B) (g : X โถ Y) [CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) C] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id X) f) (CategoryTheory.Limits.prod.map g (CategoryTheory.CategoryStruct.id B)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map g (CategoryTheory.CategoryStruct.id A)) (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id Y) f) - CategoryTheory.Limits.braid_natural ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] {W X Y Z : C} (f : X โถ Y) (g : Z โถ W) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) (CategoryTheory.Limits.prod.braiding Y W).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.braiding X Z).hom (CategoryTheory.Limits.prod.map g f) - CategoryTheory.Limits.prod.map_swap_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] {A B X Y : C} (f : A โถ B) (g : X โถ Y) [CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) C] {Z : C} (h : Y โจฏ B โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id X) f) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map g (CategoryTheory.CategoryStruct.id B)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map g (CategoryTheory.CategoryStruct.id A)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id Y) f) h) - CategoryTheory.Limits.prod.associator_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (P Q R : C) : (CategoryTheory.Limits.prod.associator P Q R).hom = CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.fst) (CategoryTheory.Limits.prod.lift (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd) CategoryTheory.Limits.prod.snd) - CategoryTheory.Limits.prod.associator_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (P Q R : C) : (CategoryTheory.Limits.prod.associator P Q R).inv = CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.fst)) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd CategoryTheory.Limits.prod.snd) - CategoryTheory.Limits.braid_natural_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] {W X Y Z : C} (f : X โถ Y) (g : Z โถ W) {Zโ : C} (h : W โจฏ Y โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map f g) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.braiding Y W).hom h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.braiding X Z).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map g f) h) - CategoryTheory.Limits.prod.diag_map_fst_snd_comp ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) C] {X X' Y Y' : C} (g : X โถ Y) (g' : X' โถ Y') : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diag (X โจฏ X')) (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst g) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd g')) = CategoryTheory.Limits.prod.map g g' - CategoryTheory.Limits.prod.diag_map_fst_snd_comp_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) C] {X X' Y Y' : C} (g : X โถ Y) (g' : X' โถ Y') {Z : C} (h : Y โจฏ Y' โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.diag (X โจฏ X')) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst g) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd g')) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map g g') h - CategoryTheory.Limits.prod.triangle ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasBinaryProducts C] (X Y : C) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator X (โค_ C) Y).hom (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id X) (CategoryTheory.Limits.prod.leftUnitor Y).hom) = CategoryTheory.Limits.prod.map (CategoryTheory.Limits.prod.rightUnitor X).hom (CategoryTheory.CategoryStruct.id Y) - CategoryTheory.Limits.prod.associator_naturality ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] {Xโ Xโ Xโ Yโ Yโ Yโ : C} (fโ : Xโ โถ Yโ) (fโ : Xโ โถ Yโ) (fโ : Xโ โถ Yโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.Limits.prod.map fโ fโ) fโ) (CategoryTheory.Limits.prod.associator Yโ Yโ Yโ).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator Xโ Xโ Xโ).hom (CategoryTheory.Limits.prod.map fโ (CategoryTheory.Limits.prod.map fโ fโ)) - CategoryTheory.Limits.prod.associator_naturality_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] {Xโ Xโ Xโ Yโ Yโ Yโ : C} (fโ : Xโ โถ Yโ) (fโ : Xโ โถ Yโ) (fโ : Xโ โถ Yโ) {Z : C} (h : Yโ โจฏ Yโ โจฏ Yโ โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.Limits.prod.map fโ fโ) fโ) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator Yโ Yโ Yโ).hom h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator Xโ Xโ Xโ).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map fโ (CategoryTheory.Limits.prod.map fโ fโ)) h) - CategoryTheory.Limits.prod.pentagon ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (W X Y Z : C) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.Limits.prod.associator W X Y).hom (CategoryTheory.CategoryStruct.id Z)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator W (X โจฏ Y) Z).hom (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) (CategoryTheory.Limits.prod.associator X Y Z).hom)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator (W โจฏ X) Y Z).hom (CategoryTheory.Limits.prod.associator W X (Y โจฏ Z)).hom - CategoryTheory.Limits.prod.pentagon_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] (W X Y Z : C) {Zโ : C} (h : W โจฏ X โจฏ Y โจฏ Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.Limits.prod.associator W X Y).hom (CategoryTheory.CategoryStruct.id Z)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator W (X โจฏ Y) Z).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id W) (CategoryTheory.Limits.prod.associator X Y Z).hom) h)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator (W โจฏ X) Y Z).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.associator W X (Y โจฏ Z)).hom h) - CategoryTheory.Limits.prodComparison ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) (A B : C) [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] : F.obj (A โจฏ B) โถ F.obj A โจฏ F.obj B - CategoryTheory.Limits.prodComparison_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) (A B : C) [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) CategoryTheory.Limits.prod.fst = F.map CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.prodComparison_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) (A B : C) [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) CategoryTheory.Limits.prod.snd = F.map CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.prodComparisonNatTrans_app ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasBinaryProducts D] (F : CategoryTheory.Functor C D) (A B : C) : (CategoryTheory.Limits.prodComparisonNatTrans F A).app B = CategoryTheory.Limits.prodComparison F A B - CategoryTheory.Limits.prodComparisonNatIso ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasBinaryProducts D] (A : C) [โ (B : C), CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] : (CategoryTheory.Limits.prod.functor.obj A).comp F โ F.comp (CategoryTheory.Limits.prod.functor.obj (F.obj A)) - CategoryTheory.Limits.prodComparison_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) (A B : C) [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] {Z : D} (h : F.obj A โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp (F.map CategoryTheory.Limits.prod.fst) h - CategoryTheory.Limits.prodComparison_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) (A B : C) [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] {Z : D} (h : F.obj B โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp (F.map CategoryTheory.Limits.prod.snd) h - CategoryTheory.Limits.inv_prodComparison_map_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A B)) (F.map CategoryTheory.Limits.prod.fst) = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.inv_prodComparison_map_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] : CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A B)) (F.map CategoryTheory.Limits.prod.snd) = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.inv_prodComparison_map_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] {Z : D} (h : F.obj A โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A B)) (CategoryTheory.CategoryStruct.comp (F.map CategoryTheory.Limits.prod.fst) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h - CategoryTheory.Limits.inv_prodComparison_map_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] {Z : D} (h : F.obj B โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A B)) (CategoryTheory.CategoryStruct.comp (F.map CategoryTheory.Limits.prod.snd) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h - CategoryTheory.Limits.prodComparisonNatIso_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasBinaryProducts D] (A : C) [โ (B : C), CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] : (CategoryTheory.Limits.prodComparisonNatIso F A).hom = CategoryTheory.Limits.prodComparisonNatTrans F A - CategoryTheory.Limits.prodComparison_natural_of_natTrans ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] {F : CategoryTheory.Functor C D} {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] {H : CategoryTheory.Functor C D} [CategoryTheory.Limits.HasBinaryProduct (H.obj A) (H.obj B)] (ฮฑ : F โถ H) : CategoryTheory.CategoryStruct.comp (ฮฑ.app (A โจฏ B)) (CategoryTheory.Limits.prodComparison H A B) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) (CategoryTheory.Limits.prod.map (ฮฑ.app A) (ฮฑ.app B)) - CategoryTheory.Limits.map_braiding_hom_comp_prodComparison ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.Limits.HasBinaryProduct B A] [CategoryTheory.Limits.HasBinaryProduct (F.obj B) (F.obj A)] : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Limits.prod.braiding B A).hom) (CategoryTheory.Limits.prodComparison F A B) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F B A) (CategoryTheory.Limits.prod.braiding (F.obj B) (F.obj A)).hom - CategoryTheory.Limits.prodComparison_natural ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A A' B B' : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct A' B'] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.Limits.HasBinaryProduct (F.obj A') (F.obj B')] (f : A โถ A') (g : B โถ B') : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Limits.prod.map f g)) (CategoryTheory.Limits.prodComparison F A' B') = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) (CategoryTheory.Limits.prod.map (F.map f) (F.map g)) - CategoryTheory.Limits.prodComparison_comp ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] {E : Type uโ} [CategoryTheory.Category.{w', uโ} E] (F : CategoryTheory.Functor C D) (G : CategoryTheory.Functor D E) {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.Limits.HasBinaryProduct (G.obj (F.obj A)) (G.obj (F.obj B))] [CategoryTheory.Limits.HasBinaryProduct ((F.comp G).obj A) ((F.comp G).obj B)] : CategoryTheory.Limits.prodComparison (F.comp G) A B = CategoryTheory.CategoryStruct.comp (G.map (CategoryTheory.Limits.prodComparison F A B)) (CategoryTheory.Limits.prodComparison G (F.obj A) (F.obj B)) - CategoryTheory.Limits.prodComparison_natural_of_natTrans_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] {F : CategoryTheory.Functor C D} {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] {H : CategoryTheory.Functor C D} [CategoryTheory.Limits.HasBinaryProduct (H.obj A) (H.obj B)] (ฮฑ : F โถ H) {Z : D} (h : H.obj A โจฏ H.obj B โถ Z) : CategoryTheory.CategoryStruct.comp (ฮฑ.app (A โจฏ B)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison H A B) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (ฮฑ.app A) (ฮฑ.app B)) h) - CategoryTheory.Limits.map_braiding_hom_comp_prodComparison_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A B : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.Limits.HasBinaryProduct B A] [CategoryTheory.Limits.HasBinaryProduct (F.obj B) (F.obj A)] {Z : D} (h : F.obj A โจฏ F.obj B โถ Z) : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Limits.prod.braiding B A).hom) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F B A) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.braiding (F.obj B) (F.obj A)).hom h) - CategoryTheory.Limits.prodComparison_natural_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A A' B B' : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct A' B'] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.Limits.HasBinaryProduct (F.obj A') (F.obj B')] (f : A โถ A') (g : B โถ B') {Z : D} (h : F.obj A' โจฏ F.obj B' โถ Z) : CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Limits.prod.map f g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A' B') h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prodComparison F A B) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (F.map f) (F.map g)) h) - CategoryTheory.Limits.prodComparison_inv_natural ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A A' B B' : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct A' B'] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.Limits.HasBinaryProduct (F.obj A') (F.obj B')] (f : A โถ A') (g : B โถ B') [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A' B')] : CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A B)) (F.map (CategoryTheory.Limits.prod.map f g)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (F.map f) (F.map g)) (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A' B')) - CategoryTheory.Limits.prodComparison_inv_natural_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) {A A' B B' : C} [CategoryTheory.Limits.HasBinaryProduct A B] [CategoryTheory.Limits.HasBinaryProduct A' B'] [CategoryTheory.Limits.HasBinaryProduct (F.obj A) (F.obj B)] [CategoryTheory.Limits.HasBinaryProduct (F.obj A') (F.obj B')] (f : A โถ A') (g : B โถ B') [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] [CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A' B')] {Z : D} (h : F.obj (A' โจฏ B') โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A B)) (CategoryTheory.CategoryStruct.comp (F.map (CategoryTheory.Limits.prod.map f g)) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.map (F.map f) (F.map g)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.inv (CategoryTheory.Limits.prodComparison F A' B')) h) - CategoryTheory.Limits.prodComparisonNatIso_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type uโ} [CategoryTheory.Category.{w, uโ} D] (F : CategoryTheory.Functor C D) [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasBinaryProducts D] (A : C) [โ (B : C), CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison F A B)] : (CategoryTheory.Limits.prodComparisonNatIso F A).inv = (CategoryTheory.asIso { app := fun B => CategoryTheory.Limits.prodComparison F A B, naturality := โฏ }).inv - CategoryTheory.Limits.pullbackProdFstIsoProd ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.Limits.pullback f CategoryTheory.Limits.prod.fst โ X โจฏ Z - CategoryTheory.Limits.pullbackProdSndIsoProd ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.Limits.pullback CategoryTheory.Limits.prod.snd f โ Z โจฏ X - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst) = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f) = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom CategoryTheory.Limits.prod.fst = CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom CategoryTheory.Limits.prod.snd = CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) CategoryTheory.Limits.prod.snd) = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) CategoryTheory.Limits.prod.fst) = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom CategoryTheory.Limits.prod.snd = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom CategoryTheory.Limits.prod.fst = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Zโ : C} (h : X โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) CategoryTheory.Limits.prod.fst) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst f - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) CategoryTheory.Limits.prod.snd) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd f - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Zโ : C} (h : X โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Zโ : C} (h : X โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst f CategoryTheory.Limits.prod.fst) h - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Zโ : C} (h : X โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd CategoryTheory.Limits.prod.snd f) h - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Zโ : C} (h : Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Zโ : C} (h : Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h - CategoryTheory.Limits.pullbackProdFstIsoProd_inv_snd_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Zโ : C} (h : Y โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.pullbackProdSndIsoProd_inv_fst_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Zโ : C} (h : Y โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h)) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd (CategoryTheory.CategoryStruct.comp f h) - CategoryTheory.Limits.pullbackProdFstIsoProd_hom_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Y Z] [CategoryTheory.Limits.HasBinaryProduct X Z] [CategoryTheory.Limits.HasPullback f CategoryTheory.Limits.prod.fst] {Zโ : C} (h : Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd f CategoryTheory.Limits.prod.fst) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) - CategoryTheory.Limits.pullbackProdSndIsoProd_hom_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (f : X โถ Y) (Z : C) [CategoryTheory.Limits.HasBinaryProduct Z Y] [CategoryTheory.Limits.HasBinaryProduct Z X] [CategoryTheory.Limits.HasPullback CategoryTheory.Limits.prod.snd f] {Zโ : C} (h : Z โถ Zโ) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdSndIsoProd f Z).hom (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst CategoryTheory.Limits.prod.snd f) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) - CategoryTheory.Limits.mono_pullback_to_prod ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y Z : C} (f : X โถ Z) (g : Y โถ Z) [CategoryTheory.Limits.HasPullback f g] [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.Mono (CategoryTheory.Limits.prod.lift (CategoryTheory.Limits.pullback.fst f g) (CategoryTheory.Limits.pullback.snd f g)) - CategoryTheory.Limits.prod.inl ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : X โถ X โจฏ Y - CategoryTheory.Limits.prod.inr ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : Y โถ X โจฏ Y - CategoryTheory.Limits.instMonoInl ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.Mono (CategoryTheory.Limits.prod.inl X Y) - CategoryTheory.Limits.instMonoInr ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.Mono (CategoryTheory.Limits.prod.inr X Y) - CategoryTheory.Limits.isSplitEpi_prod_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} [CategoryTheory.Limits.HasLimit (CategoryTheory.Limits.pair X Y)] : CategoryTheory.IsSplitEpi CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.isSplitEpi_prod_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} [CategoryTheory.Limits.HasLimit (CategoryTheory.Limits.pair X Y)] : CategoryTheory.IsSplitEpi CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.prod.inl_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inl X Y) CategoryTheory.Limits.prod.fst = CategoryTheory.CategoryStruct.id X - CategoryTheory.Limits.prod.inr_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inr X Y) CategoryTheory.Limits.prod.snd = CategoryTheory.CategoryStruct.id Y - CategoryTheory.Limits.prod.inl_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : X โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inl X Y) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = h - CategoryTheory.Limits.prod.inr_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inr X Y) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = h - CategoryTheory.Limits.prod.inl_snd ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inl X Y) CategoryTheory.Limits.prod.snd = 0 - CategoryTheory.Limits.prod.inr_fst ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inr X Y) CategoryTheory.Limits.prod.fst = 0 - CategoryTheory.Limits.prod.inl_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inl X Y) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.Limits.prod.inr_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : X โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.inr X Y) (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp 0 h - CategoryTheory.Limits.PreservesLimitPair.iso ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] : G.obj (X โจฏ Y) โ G.obj X โจฏ G.obj Y - CategoryTheory.Limits.instIsIsoProdComparison ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] : CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison G X Y) - CategoryTheory.Limits.PreservesLimitPair.of_iso_prod_comparison ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [i : CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison G X Y)] : CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G - CategoryTheory.Limits.isLimitOfHasBinaryProductOfPreservesLimit ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] : CategoryTheory.Limits.IsLimit (CategoryTheory.Limits.BinaryFan.mk (G.map CategoryTheory.Limits.prod.fst) (G.map CategoryTheory.Limits.prod.snd)) - CategoryTheory.Limits.PreservesLimitPair.iso_hom ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] : (CategoryTheory.Limits.PreservesLimitPair.iso G X Y).hom = CategoryTheory.Limits.prodComparison G X Y - CategoryTheory.Limits.preservesBinaryProducts_of_isIso_prodComparison ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasBinaryProducts D] [i : โ {X Y : C}, CategoryTheory.IsIso (CategoryTheory.Limits.prodComparison G X Y)] : CategoryTheory.Limits.PreservesLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) G - CategoryTheory.Limits.PreservesLimitPair.iso_inv_fst ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesLimitPair.iso G X Y).inv (G.map CategoryTheory.Limits.prod.fst) = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.PreservesLimitPair.iso_inv_snd ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesLimitPair.iso G X Y).inv (G.map CategoryTheory.Limits.prod.snd) = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.PreservesLimitPair.iso_inv_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] {Z : D} (h : G.obj X โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesLimitPair.iso G X Y).inv (CategoryTheory.CategoryStruct.comp (G.map CategoryTheory.Limits.prod.fst) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h - CategoryTheory.Limits.PreservesLimitPair.iso_inv_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {D : Type uโ} [CategoryTheory.Category.{vโ, uโ} D] (G : CategoryTheory.Functor C D) (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasBinaryProduct (G.obj X) (G.obj Y)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair X Y) G] {Z : D} (h : G.obj Y โถ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.PreservesLimitPair.iso G X Y).inv (CategoryTheory.CategoryStruct.comp (G.map CategoryTheory.Limits.prod.snd) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h - CategoryTheory.Limits.biprod.isoProd ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts
{C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryBiproduct X Y] : X โ Y โ X โจฏ Y - CategoryTheory.Limits.biprodIso ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts
{C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] (X Y : C) [CategoryTheory.Limits.HasBinaryBiproduct X Y] : X โจฏ Y โ X โจฟ Y - CategoryTheory.Limits.prod.map_epi ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts
{C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {W X Y Z : C} (f : W โถ Y) (g : X โถ Z) [CategoryTheory.Epi f] [CategoryTheory.Epi g] [CategoryTheory.Limits.HasBinaryBiproduct W X] [CategoryTheory.Limits.HasBinaryBiproduct Y Z] : CategoryTheory.Epi (CategoryTheory.Limits.prod.map f g) - CategoryTheory.Limits.biprod.isoProd_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts
{C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} [CategoryTheory.Limits.HasBinaryBiproduct X Y] : (CategoryTheory.Limits.biprod.isoProd X Y).hom = CategoryTheory.Limits.prod.lift CategoryTheory.Limits.biprod.fst CategoryTheory.Limits.biprod.snd - CategoryTheory.Limits.biprod.isoProd_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts
{C : Type uC} [CategoryTheory.Category.{uC', uC} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} [CategoryTheory.Limits.HasBinaryBiproduct X Y] : (CategoryTheory.Limits.biprod.isoProd X Y).inv = CategoryTheory.Limits.biprod.lift CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.isInitialMul ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] {I : C} (X : C) [CategoryTheory.Limits.HasBinaryProduct I X] (hI : CategoryTheory.Limits.IsInitial I) : I โจฏ X โ I - CategoryTheory.Limits.mulIsInitial ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] {I : C} (X : C) [CategoryTheory.Limits.HasBinaryProduct X I] (hI : CategoryTheory.Limits.IsInitial I) : X โจฏ I โ I - CategoryTheory.Limits.initialMul ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] [CategoryTheory.Limits.HasInitial C] (X : C) [CategoryTheory.Limits.HasBinaryProduct (โฅ_ C) X] : (โฅ_ C) โจฏ X โ โฅ_ C - CategoryTheory.Limits.mulInitial ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] [CategoryTheory.Limits.HasInitial C] (X : C) [CategoryTheory.Limits.HasBinaryProduct X (โฅ_ C)] : X โจฏ โฅ_ C โ โฅ_ C - CategoryTheory.Limits.isInitialMul_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] {I : C} (X : C) [CategoryTheory.Limits.HasBinaryProduct I X] (hI : CategoryTheory.Limits.IsInitial I) : (CategoryTheory.Limits.isInitialMul X hI).hom = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.mulIsInitial_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] {I : C} (X : C) [CategoryTheory.Limits.HasBinaryProduct X I] (hI : CategoryTheory.Limits.IsInitial I) : (CategoryTheory.Limits.mulIsInitial X hI).hom = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.isInitialMul_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] {I : C} (X : C) [CategoryTheory.Limits.HasBinaryProduct I X] (hI : CategoryTheory.Limits.IsInitial I) : (CategoryTheory.Limits.isInitialMul X hI).inv = hI.to (I โจฏ X) - CategoryTheory.Limits.mulIsInitial_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] {I : C} (X : C) [CategoryTheory.Limits.HasBinaryProduct X I] (hI : CategoryTheory.Limits.IsInitial I) : (CategoryTheory.Limits.mulIsInitial X hI).inv = hI.to (X โจฏ I) - CategoryTheory.Limits.initialMul_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] [CategoryTheory.Limits.HasInitial C] (X : C) [CategoryTheory.Limits.HasBinaryProduct (โฅ_ C) X] : (CategoryTheory.Limits.initialMul X).hom = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.mulInitial_hom ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] [CategoryTheory.Limits.HasInitial C] (X : C) [CategoryTheory.Limits.HasBinaryProduct X (โฅ_ C)] : (CategoryTheory.Limits.mulInitial X).hom = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.initialMul_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] [CategoryTheory.Limits.HasInitial C] (X : C) [CategoryTheory.Limits.HasBinaryProduct (โฅ_ C) X] : (CategoryTheory.Limits.initialMul X).inv = CategoryTheory.Limits.initial.to ((โฅ_ C) โจฏ X) - CategoryTheory.Limits.mulInitial_inv ๐ Mathlib.CategoryTheory.Limits.Shapes.StrictInitial
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasStrictInitialObjects C] [CategoryTheory.Limits.HasInitial C] (X : C) [CategoryTheory.Limits.HasBinaryProduct X (โฅ_ C)] : (CategoryTheory.Limits.mulInitial X).inv = CategoryTheory.Limits.initial.to (X โจฏ โฅ_ C) - prodIsoPullback ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : X โจฏ Y โ CategoryTheory.Limits.pullback (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y) - prodIsoPullback_hom_fst ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).hom (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y)) = CategoryTheory.Limits.prod.fst - prodIsoPullback_hom_snd ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).hom (CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y)) = CategoryTheory.Limits.prod.snd - prodIsoPullback_inv_fst ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).inv CategoryTheory.Limits.prod.fst = CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y) - prodIsoPullback_inv_snd ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).inv CategoryTheory.Limits.prod.snd = CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y) - prodIsoPullback_hom_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : X โถ Z) : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y)) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h - prodIsoPullback_hom_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : Y โถ Z) : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y)) h) = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h - prodIsoPullback_inv_fst_assoc ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : X โถ Z) : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).inv (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.fst h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y)) h - prodIsoPullback_inv_snd_assoc ๐ Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasTerminal C] [CategoryTheory.Limits.HasPullbacks C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] {Z : C} (h : Y โถ Z) : CategoryTheory.CategoryStruct.comp (prodIsoPullback X Y).inv (CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.prod.snd h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.snd (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y)) h - CategoryTheory.IsPullback.of_hasBinaryProduct' ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] (X Y : C) [CategoryTheory.Limits.HasBinaryProduct X Y] [CategoryTheory.Limits.HasTerminal C] : CategoryTheory.IsPullback CategoryTheory.Limits.prod.fst CategoryTheory.Limits.prod.snd (CategoryTheory.Limits.terminal.from X) (CategoryTheory.Limits.terminal.from Y) - CategoryTheory.IsPullback.of_prod_fst_with_id ๐ Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] {A B : C} (f : A โถ B) (X : C) [CategoryTheory.Limits.HasBinaryProduct A X] [CategoryTheory.Limits.HasBinaryProduct B X] : CategoryTheory.IsPullback CategoryTheory.Limits.prod.fst (CategoryTheory.Limits.prod.map f (CategoryTheory.CategoryStruct.id X)) f CategoryTheory.Limits.prod.fst - CategoryTheory.prodComonad_obj ๐ Mathlib.CategoryTheory.Monad.Products
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProducts C] (Y : C) : (CategoryTheory.prodComonad X).obj Y = (X โจฏ Y) - CategoryTheory.prodComonad_ฮต_app ๐ Mathlib.CategoryTheory.Monad.Products
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProducts C] (xโ : C) : (CategoryTheory.prodComonad X).ฮต.app xโ = CategoryTheory.Limits.prod.snd - CategoryTheory.prodComonad_map ๐ Mathlib.CategoryTheory.Monad.Products
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProducts C] {xโ xโยน : C} (g : xโ โถ xโยน) : (CategoryTheory.prodComonad X).map g = CategoryTheory.Limits.prod.map (CategoryTheory.CategoryStruct.id X) g - CategoryTheory.overToCoalgebra_obj_a ๐ Mathlib.CategoryTheory.Monad.Products
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProducts C] (f : CategoryTheory.Over X) : ((CategoryTheory.overToCoalgebra X).obj f).a = CategoryTheory.Limits.prod.lift f.hom (CategoryTheory.CategoryStruct.id f.left) - CategoryTheory.prodComonad_ฮด_app ๐ Mathlib.CategoryTheory.Monad.Products
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProducts C] (xโ : C) : (CategoryTheory.prodComonad X).ฮด.app xโ = CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.id (X โจฏ xโ)) - CategoryTheory.Over.star_obj_left ๐ Mathlib.CategoryTheory.Comma.Over.Pullback
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProducts C] (Xโ : C) : ((CategoryTheory.Over.star X).obj Xโ).left = (X โจฏ Xโ) - CategoryTheory.Over.star_obj_hom ๐ Mathlib.CategoryTheory.Comma.Over.Pullback
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) [CategoryTheory.Limits.HasBinaryProducts C] (Xโ : C) : ((CategoryTheory.Over.star X).obj Xโ).hom = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.id (X โจฏ Xโ))) CategoryTheory.Limits.prod.fst - CategoryTheory.Over.starPullbackIsoStar_hom_app_left ๐ Mathlib.CategoryTheory.Comma.Over.Pullback
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasPullbacks C] {X Y : C} (f : X โถ Y) (Xโ : C) : ((CategoryTheory.Over.starPullbackIsoStar f).hom.app Xโ).left = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.map (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.id (Y โจฏ Xโ))) CategoryTheory.Limits.prod.fst) f CategoryTheory.Limits.prod.fst f (CategoryTheory.CategoryStruct.id (Y โจฏ Xโ)) (CategoryTheory.CategoryStruct.id X) (CategoryTheory.CategoryStruct.id Y) โฏ โฏ) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry CategoryTheory.Limits.prod.fst f).hom (CategoryTheory.Limits.pullbackProdFstIsoProd f Xโ).hom) - CategoryTheory.Over.starPullbackIsoStar_inv_app_left ๐ Mathlib.CategoryTheory.Comma.Over.Pullback
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasBinaryProducts C] [CategoryTheory.Limits.HasPullbacks C] {X Y : C} (f : X โถ Y) (Xโ : C) : ((CategoryTheory.Over.starPullbackIsoStar f).inv.app Xโ).left = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackProdFstIsoProd f Xโ).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullbackSymmetry CategoryTheory.Limits.prod.fst f).inv (CategoryTheory.Limits.pullback.map CategoryTheory.Limits.prod.fst f (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.prod.lift CategoryTheory.Limits.prod.fst (CategoryTheory.CategoryStruct.id (Y โจฏ Xโ))) CategoryTheory.Limits.prod.fst) f (CategoryTheory.CategoryStruct.id (Y โจฏ Xโ)) (CategoryTheory.CategoryStruct.id X) (CategoryTheory.CategoryStruct.id Y) โฏ โฏ)) - CategoryTheory.Limits.Types.binaryProductIso ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) : X โจฏ Y โ X ร Y - CategoryTheory.Limits.Types.binaryProductIso_inv_comp_fst ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Types.binaryProductIso X Y).inv CategoryTheory.Limits.prod.fst = TypeCat.ofHom Prod.fst - CategoryTheory.Limits.Types.binaryProductIso_inv_comp_snd ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Types.binaryProductIso X Y).inv CategoryTheory.Limits.prod.snd = TypeCat.ofHom Prod.snd - CategoryTheory.Limits.Types.binaryProductIso_hom_comp_fst ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Types.binaryProductIso X Y).hom (TypeCat.ofHom Prod.fst) = CategoryTheory.Limits.prod.fst - CategoryTheory.Limits.Types.binaryProductIso_hom_comp_snd ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.Types.binaryProductIso X Y).hom (TypeCat.ofHom Prod.snd) = CategoryTheory.Limits.prod.snd - CategoryTheory.Limits.Types.binaryProductIso_inv_comp_fst_apply ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) (x : X ร Y) : (CategoryTheory.ConcreteCategory.hom CategoryTheory.Limits.prod.fst) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.Types.binaryProductIso X Y).inv) x) = x.1 - CategoryTheory.Limits.Types.binaryProductIso_inv_comp_snd_apply ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) (x : X ร Y) : (CategoryTheory.ConcreteCategory.hom CategoryTheory.Limits.prod.snd) ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.Types.binaryProductIso X Y).inv) x) = x.2 - CategoryTheory.Limits.Types.binaryProductIso_hom_comp_fst_apply ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) (x : X โจฏ Y) : ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.Types.binaryProductIso X Y).hom) x).1 = (CategoryTheory.ConcreteCategory.hom CategoryTheory.Limits.prod.fst) x - CategoryTheory.Limits.Types.binaryProductIso_hom_comp_snd_apply ๐ Mathlib.CategoryTheory.Limits.Types.Products
(X Y : Type u) (x : X โจฏ Y) : ((CategoryTheory.ConcreteCategory.hom (CategoryTheory.Limits.Types.binaryProductIso X Y).hom) x).2 = (CategoryTheory.ConcreteCategory.hom CategoryTheory.Limits.prod.snd) x - CategoryTheory.ProdPreservesConnectedLimits.ฮณโ_app ๐ Mathlib.CategoryTheory.Limits.Connected
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] [CategoryTheory.Limits.HasBinaryProducts C] {J : Type vโ} [CategoryTheory.SmallCategory J] {K : CategoryTheory.Functor J C} (X : C) (xโ : J) : (CategoryTheory.ProdPreservesConnectedLimits.ฮณโ X).app xโ = CategoryTheory.Limits.prod.snd - CategoryTheory.ProdPreservesConnectedLimits.ฮณโ_app ๐ Mathlib.CategoryTheory.Limits.Connected
{C : Type uโ} [CategoryTheory.Category.{vโ, uโ} C] [CategoryTheory.Limits.HasBinaryProducts C] {J : Type vโ} [CategoryTheory.SmallCategory J] {K : CategoryTheory.Functor J C} (X : C) (xโ : J) : (CategoryTheory.ProdPreservesConnectedLimits.ฮณโ X).app xโ = CategoryTheory.Limits.prod.fst
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
๐Real.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
๐"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
๐_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
๐Real.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
๐(?a -> ?b) -> List ?a -> List ?b
๐List ?a -> (?a -> ?b) -> List ?bBy main conclusion:
๐|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of allโandโ) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
๐|- _ < _ โ tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
โข (_ : Type _)finds all definitions which provide data whileโข (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
๐ Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ โ _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c