mathlib documentation

category_theory.limits.shapes.binary_products

Binary (co)products

We define a category walking_pair, 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 has_binary_products and has_binary_coproducts 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.

An equivalence from walking_pair to bool, sometimes useful when reindexing limits.

Equations

The diagram on the walking pair, sending the two points to X and Y.

Equations

The natural transformation between two functors out of the walking pair, specified by its components.

Equations

The natural isomorphism between pair X Y ⋙ F and pair (F.obj X) (F.obj Y).

Equations
def category_theory.limits.binary_fan {C : Type u} [category_theory.category C] :
C → C → Type (max u v)

A binary fan is just a cone on a diagram indexing a product.

theorem category_theory.limits.binary_fan.is_limit.hom_ext {C : Type u} [category_theory.category C] {W X Y : C} {s : category_theory.limits.binary_fan X Y} (h : category_theory.limits.is_limit s) {f g : W s.X} :
f s.fst = g s.fstf s.snd = g s.sndf = g

def category_theory.limits.binary_cofan {C : Type u} [category_theory.category C] :
C → C → Type (max u v)

A binary cofan is just a cocone on a diagram indexing a coproduct.

@[simp]
theorem category_theory.limits.binary_fan.mk_X {C : Type u} [category_theory.category C] {X Y P : C} (π₁ : P X) (π₂ : P Y) :

def category_theory.limits.binary_fan.mk {C : Type u} [category_theory.category C] {X Y P : C} :
(P X)(P Y)category_theory.limits.binary_fan X Y

A binary fan with vertex P consists of the two projections π₁ : P ⟶ X and π₂ : P ⟶ Y.

Equations
@[simp]
theorem category_theory.limits.binary_cofan.mk_X {C : Type u} [category_theory.category C] {X Y P : C} (ι₁ : X P) (ι₂ : Y P) :

A binary cofan with vertex P consists of the two inclusions ι₁ : X ⟶ P and ι₂ : Y ⟶ P.

Equations
def category_theory.limits.binary_fan.is_limit.lift' {C : Type u} [category_theory.category C] {W X Y : C} {s : category_theory.limits.binary_fan X Y} (h : category_theory.limits.is_limit s) (f : W X) (g : W Y) :
{l // l s.fst = f l s.snd = g}

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.X satisfying l ≫ s.fst = f and l ≫ s.snd = g.

Equations

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.X ⟶ W satisfying s.inl ≫ l = f and s.inr ≫ l = g.

Equations
def category_theory.limits.has_binary_product {C : Type u} [category_theory.category C] :
C → C → Prop

An abbreviation for has_limit (pair X Y).

Instances

An abbreviation for has_colimit (pair X Y).

If we have a product of X and Y, we can access it using prod X Y or X ⨯ Y.

If we have a coproduct of X and Y, we can access it using coprod X Y or X ⨿ Y.

The projection map to the first component of the product.

The projecton map to the second component of the product.

The inclusion map from the first component of the coproduct.

The inclusion map from the second component of the coproduct.

def category_theory.limits.prod.lift {C : Type u} [category_theory.category C] {W X Y : C} [category_theory.limits.has_binary_product X Y] :
(W X)(W Y)(W X Y)

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.

diagonal arrow of the binary product in the category fam I

def category_theory.limits.coprod.desc {C : Type u} [category_theory.category C] {W X Y : C} [category_theory.limits.has_binary_coproduct X Y] :
(X W)(Y W)(X ⨿ Y W)

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.

codiagonal arrow of the binary coproduct

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

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

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

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
theorem category_theory.limits.prod.comp_lift_assoc {C : Type u} [category_theory.category C] {V W X Y : C} [category_theory.limits.has_binary_product X Y] (f : V W) (g : W X) (h : W Y) {X' : C} (f' : X Y X') :

@[simp]
theorem category_theory.limits.prod.map_map_assoc {C : Type u} [category_theory.category C] {A₁ A₂ A₃ B₁ B₂ B₃ : C} [category_theory.limits.has_binary_product A₁ B₁] [category_theory.limits.has_binary_product A₂ B₂] [category_theory.limits.has_binary_product A₃ B₃] (f : A₁ A₂) (g : B₁ B₂) (h : A₂ A₃) (k : B₂ B₃) {X' : C} (f' : A₃ B₃ X') :

@[simp]
theorem category_theory.limits.prod.map_map {C : Type u} [category_theory.category C] {A₁ A₂ A₃ B₁ B₂ B₃ : C} [category_theory.limits.has_binary_product A₁ B₁] [category_theory.limits.has_binary_product A₂ B₂] [category_theory.limits.has_binary_product A₃ B₃] (f : A₁ A₂) (g : B₁ B₂) (h : A₂ A₃) (k : B₂ B₃) :

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.map_iso f g : W ⨯ X ≅ Y ⨯ Z.

Equations
@[simp]
theorem category_theory.limits.coprod.desc_comp_assoc {C : Type u} [category_theory.category C] {V W X Y : C} [category_theory.limits.has_binary_coproduct X Y] (f : V W) (g : X V) (h : Y V) {X' : C} (f' : W X') :

@[simp]
theorem category_theory.limits.coprod.map_map_assoc {C : Type u} [category_theory.category C] {A₁ A₂ A₃ B₁ B₂ B₃ : C} [category_theory.limits.has_binary_coproduct A₁ B₁] [category_theory.limits.has_binary_coproduct A₂ B₂] [category_theory.limits.has_binary_coproduct A₃ B₃] (f : A₁ A₂) (g : B₁ B₂) (h : A₂ A₃) (k : B₂ B₃) {X' : C} (f' : A₃ ⨿ B₃ X') :

If the coproducts W ⨿ X and Y ⨿ Z exist, then every pair of isomorphisms f : W ≅ Y and g : W ≅ Z induces a isomorphism coprod.map_iso f g : W ⨿ X ≅ Y ⨿ Z.

Equations

has_binary_products represents a choice of product for every pair of objects.

See https://stacks.math.columbia.edu/tag/001T.

Instances

has_binary_coproducts represents a choice of coproduct for every pair of objects.

See https://stacks.math.columbia.edu/tag/04AP.

Instances

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 binary product functor.

Equations

The product comparison morphism.

In category_theory/limits/preserves we show this is always an iso iff F preserves binary products.

Equations