A product as a binary product #
We write a product indexed by I as a binary product of the products indexed by a subset of I
and its complement.
noncomputable def
CategoryTheory.Limits.Pi.binaryFanOfProp
{C : Type u_1}
{I : Type u_2}
[Category.{v_1, u_1} C]
(X : I โ C)
(P : I โ Prop)
[HasProduct X]
[HasProduct fun (i : { x : I // P x }) => X โi]
[HasProduct fun (i : { x : I // ยฌP x }) => X โi]
:
The projection maps of a product to the products indexed by a subset and its complement, as a binary fan.
Equations
Instances For
noncomputable def
CategoryTheory.Limits.Pi.binaryFanOfPropIsLimit
{C : Type u_1}
{I : Type u_2}
[Category.{v_1, u_1} C]
(X : I โ C)
(P : I โ Prop)
[HasProduct X]
[HasProduct fun (i : { x : I // P x }) => X โi]
[HasProduct fun (i : { x : I // ยฌP x }) => X โi]
[(i : I) โ Decidable (P i)]
:
IsLimit (binaryFanOfProp X P)
A product indexed by I is a binary product of the products indexed by a subset of I and its
complement.
Equations
Instances For
theorem
CategoryTheory.Limits.hasBinaryProduct_of_products
{C : Type u_1}
{I : Type u_2}
[Category.{v_1, u_1} C]
{X : I โ C}
(P : I โ Prop)
[HasProduct X]
[HasProduct fun (i : { x : I // P x }) => X โi]
[HasProduct fun (i : { x : I // ยฌP x }) => X โi]
:
theorem
CategoryTheory.Limits.Pi.map_eq_prod_map
{C : Type u_1}
{I : Type u_2}
[Category.{v_1, u_1} C]
{X Y : I โ C}
(f : (i : I) โ X i โถ Y i)
(P : I โ Prop)
[HasProduct X]
[HasProduct Y]
[HasProduct fun (i : { x : I // P x }) => X โi]
[HasProduct fun (i : { x : I // ยฌP x }) => X โi]
[HasProduct fun (i : { x : I // P x }) => Y โi]
[HasProduct fun (i : { x : I // ยฌP x }) => Y โi]
[(i : I) โ Decidable (P i)]
:
map f = CategoryStruct.comp
((binaryFanOfPropIsLimit X P).conePointUniqueUpToIso
(prodIsProd (โแถ fun (i : { x : I // P x }) => X โi) (โแถ fun (i : { x : I // ยฌP x }) => X โi))).hom
(CategoryStruct.comp (prod.map (map fun (i : { x : I // P x }) => f โi) (map fun (i : { x : I // ยฌP x }) => f โi))
((binaryFanOfPropIsLimit Y P).conePointUniqueUpToIso
(prodIsProd (โแถ fun (i : { x : I // P x }) => Y โi) (โแถ fun (i : { x : I // ยฌP x }) => Y โi))).inv)