Binary (co)products #
We define a category WalkingPair
, which is the index category
for a binary (co)product diagram. A convenience method pair X Y
constructs the functor from the walking pair, hitting the given objects.
We define prod X Y
and coprod X Y
as limits and colimits of such functors.
Typeclasses HasBinaryProducts
and HasBinaryCoproducts
assert the existence
of (co)limits shaped as walking pairs.
We include lemmas for simplifying equations involving projections and coprojections, and define braiding and associating isomorphisms, and the product comparison morphism.
References #
The type of objects for the diagram indexing a binary (co)product.
Instances For
Equations
- CategoryTheory.Limits.instDecidableEqWalkingPair x y = if h : x.toCtorIdx = y.toCtorIdx then isTrue ⋯ else isFalse ⋯
The equivalence swapping left and right.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An equivalence from WalkingPair
to Bool
, sometimes useful when reindexing limits.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The function on the walking pair, sending the two points to X
and Y
.
Equations
Instances For
The diagram on the walking pair, sending the two points to X
and Y
.
Equations
Instances For
The natural transformation between two functors out of the walking pair, specified by its components.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The natural isomorphism between two functors out of the walking pair, specified by its components.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every functor out of the walking pair is naturally isomorphic (actually, equal) to a pair
Equations
- One or more equations did not get rendered due to their size.
Instances For
The natural isomorphism between pair X Y ⋙ F
and pair (F.obj X) (F.obj Y)
.
Equations
- CategoryTheory.Limits.pairComp X Y F = CategoryTheory.Limits.diagramIsoPair ((CategoryTheory.Limits.pair X Y).comp F)
Instances For
A binary fan is just a cone on a diagram indexing a product.
Equations
Instances For
The first projection of a binary fan.
Equations
- s.fst = s.π.app { as := CategoryTheory.Limits.WalkingPair.left }
Instances For
The second projection of a binary fan.
Equations
- s.snd = s.π.app { as := CategoryTheory.Limits.WalkingPair.right }
Instances For
Constructs an isomorphism of BinaryFan
s out of an isomorphism of the tips that commutes with
the projections.
Equations
Instances For
A convenient way to show that a binary fan is a limit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A binary cofan is just a cocone on a diagram indexing a coproduct.
Equations
Instances For
The first inclusion of a binary cofan.
Equations
- s.inl = s.ι.app { as := CategoryTheory.Limits.WalkingPair.left }
Instances For
The second inclusion of a binary cofan.
Equations
- s.inr = s.ι.app { as := CategoryTheory.Limits.WalkingPair.right }
Instances For
Constructs an isomorphism of BinaryCofan
s out of an isomorphism of the tips that commutes with
the injections.
Equations
Instances For
A convenient way to show that a binary cofan is a colimit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A binary fan with vertex P
consists of the two projections π₁ : P ⟶ X
and π₂ : P ⟶ Y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A binary cofan with vertex P
consists of the two inclusions ι₁ : X ⟶ P
and ι₂ : Y ⟶ P
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every BinaryFan
is isomorphic to an application of BinaryFan.mk
.
Equations
Instances For
Every BinaryFan
is isomorphic to an application of BinaryFan.mk
.
Equations
Instances For
This is a more convenient formulation to show that a BinaryFan
constructed using
BinaryFan.mk
is a limit cone.
Equations
- CategoryTheory.Limits.BinaryFan.isLimitMk lift fac_left fac_right uniq = { lift := lift, fac := ⋯, uniq := ⋯ }
Instances For
This is a more convenient formulation to show that a BinaryCofan
constructed using
BinaryCofan.mk
is a colimit cocone.
Equations
- CategoryTheory.Limits.BinaryCofan.isColimitMk desc fac_left fac_right uniq = { desc := desc, fac := ⋯, uniq := ⋯ }
Instances For
If s
is a limit binary fan over X
and Y
, then every pair of morphisms f : W ⟶ X
and
g : W ⟶ Y
induces a morphism l : W ⟶ s.pt
satisfying l ≫ s.fst = f
and l ≫ s.snd = g
.
Equations
- CategoryTheory.Limits.BinaryFan.IsLimit.lift' h f g = ⟨h.lift (CategoryTheory.Limits.BinaryFan.mk f g), ⋯⟩
Instances For
If s
is a colimit binary cofan over X
and Y
,, then every pair of morphisms f : X ⟶ W
and
g : Y ⟶ W
induces a morphism l : s.pt ⟶ W
satisfying s.inl ≫ l = f
and s.inr ≫ l = g
.
Equations
- CategoryTheory.Limits.BinaryCofan.IsColimit.desc' h f g = ⟨h.desc (CategoryTheory.Limits.BinaryCofan.mk f g), ⋯⟩
Instances For
Binary products are symmetric.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If X' ≅ X
, then X × Y
also is the product of X'
and Y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If Y' ≅ Y
, then X x Y
also is the product of X
and Y'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Binary coproducts are symmetric.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If X' ≅ X
, then X ⨿ Y
also is the coproduct of X'
and Y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If Y' ≅ Y
, then X ⨿ Y
also is the coproduct of X
and Y'
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An abbreviation for HasLimit (pair X Y)
.
Equations
Instances For
An abbreviation for HasColimit (pair X Y)
.
Equations
Instances For
If we have a product of X
and Y
, we can access it using prod X Y
or
X ⨯ Y
.
Equations
- (X ⨯ Y) = CategoryTheory.Limits.limit (CategoryTheory.Limits.pair X Y)
Instances For
If we have a coproduct of X
and Y
, we can access it using coprod X Y
or
X ⨿ Y
.
Equations
- (X ⨿ Y) = CategoryTheory.Limits.colimit (CategoryTheory.Limits.pair X Y)
Instances For
Notation for the product
Equations
- One or more equations did not get rendered due to their size.
Instances For
Notation for the coproduct
Equations
- One or more equations did not get rendered due to their size.
Instances For
The projection map to the first component of the product.
Equations
- CategoryTheory.Limits.prod.fst = CategoryTheory.Limits.limit.π (CategoryTheory.Limits.pair X Y) { as := CategoryTheory.Limits.WalkingPair.left }
Instances For
The projection map to the second component of the product.
Equations
- CategoryTheory.Limits.prod.snd = CategoryTheory.Limits.limit.π (CategoryTheory.Limits.pair X Y) { as := CategoryTheory.Limits.WalkingPair.right }
Instances For
The inclusion map from the first component of the coproduct.
Equations
- CategoryTheory.Limits.coprod.inl = CategoryTheory.Limits.colimit.ι (CategoryTheory.Limits.pair X Y) { as := CategoryTheory.Limits.WalkingPair.left }
Instances For
The inclusion map from the second component of the coproduct.
Equations
- CategoryTheory.Limits.coprod.inr = CategoryTheory.Limits.colimit.ι (CategoryTheory.Limits.pair X Y) { as := CategoryTheory.Limits.WalkingPair.right }
Instances For
The binary fan constructed from the projection maps is a limit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The binary cofan constructed from the coprojection maps is a colimit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If the product of X
and Y
exists, then every pair of morphisms f : W ⟶ X
and g : W ⟶ Y
induces a morphism prod.lift f g : W ⟶ X ⨯ Y
.
Equations
Instances For
diagonal arrow of the binary product in the category fam I
Equations
Instances For
If the coproduct of X
and Y
exists, then every pair of morphisms f : X ⟶ W
and
g : Y ⟶ W
induces a morphism coprod.desc f g : X ⨿ Y ⟶ W
.
Equations
Instances For
codiagonal arrow of the binary coproduct
Equations
Instances For
If the product of X
and Y
exists, then every pair of morphisms f : W ⟶ X
and g : W ⟶ Y
induces a morphism l : W ⟶ X ⨯ Y
satisfying l ≫ Prod.fst = f
and l ≫ Prod.snd = g
.
Equations
Instances For
If the coproduct of X
and Y
exists, then every pair of morphisms f : X ⟶ W
and
g : Y ⟶ W
induces a morphism l : X ⨿ Y ⟶ W
satisfying coprod.inl ≫ l = f
and
coprod.inr ≫ l = g
.
Equations
Instances For
If the products W ⨯ X
and Y ⨯ Z
exist, then every pair of morphisms f : W ⟶ Y
and
g : X ⟶ Z
induces a morphism prod.map f g : W ⨯ X ⟶ Y ⨯ Z
.
Equations
Instances For
If the coproducts W ⨿ X
and Y ⨿ Z
exist, then every pair of morphisms f : W ⟶ Y
and
g : W ⟶ Z
induces a morphism coprod.map f g : W ⨿ X ⟶ Y ⨿ Z
.
Equations
Instances For
If the products W ⨯ X
and Y ⨯ Z
exist, then every pair of isomorphisms f : W ≅ Y
and
g : X ≅ Z
induces an isomorphism prod.mapIso f g : W ⨯ X ≅ Y ⨯ Z
.
Equations
- CategoryTheory.Limits.prod.mapIso f g = { hom := CategoryTheory.Limits.prod.map f.hom g.hom, inv := CategoryTheory.Limits.prod.map f.inv g.inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
If the coproducts W ⨿ X
and Y ⨿ Z
exist, then every pair of isomorphisms f : W ≅ Y
and
g : W ≅ Z
induces an isomorphism coprod.mapIso f g : W ⨿ X ≅ Y ⨿ Z
.
Equations
- CategoryTheory.Limits.coprod.mapIso f g = { hom := CategoryTheory.Limits.coprod.map f.hom g.hom, inv := CategoryTheory.Limits.coprod.map f.inv g.inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
HasBinaryProducts
represents a choice of product for every pair of objects.
See https://stacks.math.columbia.edu/tag/001T.
Equations
Instances For
HasBinaryCoproducts
represents a choice of coproduct for every pair of objects.
See https://stacks.math.columbia.edu/tag/04AP.
Equations
Instances For
If C
has all limits of diagrams pair X Y
, then it has all binary products
If C
has all colimits of diagrams pair X Y
, then it has all binary coproducts
The braiding isomorphism which swaps a binary product.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The braiding isomorphism can be passed through a map by swapping the order.
The braiding isomorphism is symmetric.
The associator isomorphism for binary products.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left unitor isomorphism for binary products with the terminal object.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The right unitor isomorphism for binary products with the terminal object.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The braiding isomorphism which swaps a binary coproduct.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The braiding isomorphism is symmetric.
The associator isomorphism for binary coproducts.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left unitor isomorphism for binary coproducts with the initial object.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The right unitor isomorphism for binary coproducts with the initial object.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The binary product functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The product functor can be decomposed.
Equations
Instances For
The binary coproduct functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coproduct functor can be decomposed.
Equations
Instances For
The product comparison morphism.
In CategoryTheory/Limits/Preserves
we show this is always an iso iff F preserves binary products.
Equations
- CategoryTheory.Limits.prodComparison F A B = CategoryTheory.Limits.prod.lift (F.map CategoryTheory.Limits.prod.fst) (F.map CategoryTheory.Limits.prod.snd)
Instances For
Naturality of the prodComparison
morphism in both arguments.
The product comparison morphism from F(A ⨯ -)
to FA ⨯ F-
, whose components are given by
prodComparison
.
Equations
- CategoryTheory.Limits.prodComparisonNatTrans F A = { app := fun (B : C) => CategoryTheory.Limits.prodComparison F A B, naturality := ⋯ }
Instances For
If the product comparison morphism is an iso, its inverse is natural.
The natural isomorphism F(A ⨯ -) ≅ FA ⨯ F-
, provided each prodComparison F A B
is an
isomorphism (as B
changes).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The coproduct comparison morphism.
In CategoryTheory/Limits/Preserves
we show
this is always an iso iff F preserves binary coproducts.
Equations
- CategoryTheory.Limits.coprodComparison F A B = CategoryTheory.Limits.coprod.desc (F.map CategoryTheory.Limits.coprod.inl) (F.map CategoryTheory.Limits.coprod.inr)
Instances For
Naturality of the coprod_comparison morphism in both arguments.
The coproduct comparison morphism from FA ⨿ F-
to F(A ⨿ -)
, whose components are given by
coprodComparison
.
Equations
- CategoryTheory.Limits.coprodComparisonNatTrans F A = { app := fun (B : C) => CategoryTheory.Limits.coprodComparison F A B, naturality := ⋯ }
Instances For
If the coproduct comparison morphism is an iso, its inverse is natural.
The natural isomorphism FA ⨿ F- ≅ F(A ⨿ -)
, provided each coprodComparison F A B
is an
isomorphism (as B
changes).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary definition for Over.coprod
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A category with binary coproducts has a functorial sup
operation on over categories.
Equations
- One or more equations did not get rendered due to their size.