Categorical (co)products #
This file defines (co)products as special cases of (co)limits.
A product is the categorical generalization of the object Π i, f i where f : ι → C. It is a
limit cone over the diagram formed by f, implemented by converting f into a functor
Discrete ι ⥤ C.
A coproduct is the dual concept.
Main definitions #
- a
Fanis a cone over a discrete category Fan.mkconstructs a fan from an indexed collection of maps- a
Piis alimit (Discrete.functor f)
Each of these has a dual.
Implementation notes #
As with the other special shapes in the limits library, all the definitions here are given as
abbrevs of the general statements for limits, so all the simp lemmas and theorems about
general limits can be used.
A fan over f : β → C consists of a collection of maps from an object P to every f b.
Instances For
A cofan over f : β → C consists of a collection of maps from every f b to an object P.
Instances For
A fan over f : β → C consists of a collection of maps from an object P to every f b.
Instances For
A cofan over f : β → C consists of a collection of maps from every f b to an object P.
Instances For
Get the jth "projection" in the fan.
(Note that the initial letter of proj matches the greek letter in Cone.π.)
Instances For
Get the jth "injection" in the cofan.
(Note that the initial letter of inj matches the greek letter in Cocone.ι.)
Instances For
An abbreviation for HasLimit (Discrete.functor f).
Instances For
An abbreviation for HasColimit (Discrete.functor f).
Instances For
Make a fan f into a limit fan by providing lift, fac, and uniq --
just a convenience lemma to avoid having to go through Discrete
Instances For
Constructor for morphisms to the point of a limit fan.
Instances For
Alias of CategoryTheory.Limits.Fan.IsLimit.lift.
Constructor for morphisms to the point of a limit fan.
Instances For
Make a cofan f into a colimit cofan by providing desc, fac, and uniq --
just a convenience lemma to avoid having to go through Discrete
Instances For
Constructor for morphisms from the point of a colimit cofan.
Instances For
An abbreviation for HasLimitsOfShape (Discrete f).
Instances For
An abbreviation for HasColimitsOfShape (Discrete f).
Instances For
piObj f computes the product of a family of elements f.
(It is defined as an abbreviation for limit (Discrete.functor f),
so for most facts about piObj f, you will just use general facts about limits.)
Instances For
sigmaObj f computes the coproduct of a family of elements f.
(It is defined as an abbreviation for colimit (Discrete.functor f),
so for most facts about sigmaObj f, you will just use general facts about colimits.)
Instances For
notation for categorical products. We need ᶜ to avoid conflict with Finset.prod.
Instances For
notation for categorical coproducts
Instances For
The b-th projection from the pi object over f has the form ∏ᶜ f ⟶ f b.
Instances For
The b-th inclusion into the sigma object over f has the form f b ⟶ ∐ f.
Instances For
Without this lemma, limit.hom_ext would be applied, but the goal would involve terms
in Discrete β rather than β itself.
Without this lemma, limit.hom_ext would be applied, but the goal would involve terms
in Discrete β rather than β itself.
The fan constructed of the projections from the product is limiting.
Instances For
The cofan constructed of the inclusions from the coproduct is colimiting.
Instances For
A collection of morphisms P ⟶ f b induces a morphism P ⟶ ∏ᶜ f.
Instances For
A fan c on f such that the induced map c.pt ⟶ ∏ f is an iso, is a product.
Instances For
A collection of morphisms f b ⟶ P induces a morphism ∐ f ⟶ P.
Instances For
A cofan c on f such that the induced map ∐ f ⟶ c.pt is an iso, is a coproduct.
Instances For
Alias of CategoryTheory.Limits.Cofan.nonempty_isColimit_iff_isIso_sigmaDesc.
A coproduct of coproducts is a coproduct
Instances For
Construct a morphism between categorical products (indexed by the same type) from a family of morphisms between the factors.
Instances For
Construct a morphism between categorical products from a family of morphisms between the factors.
Instances For
Construct an isomorphism between categorical products (indexed by the same type) from a family of isomorphisms between the factors.
Instances For
A limit cone for X : Discrete α ⥤ C that is given
by ∏ᶜ (fun j => X.obj (Discrete.mk j)).
Instances For
The cone Pi.cone X is a limit cone.
Instances For
The isomorphism ∏ᶜ (fun j => X.obj (Discrete.mk j)) ≅ limit X.
Instances For
Construct a morphism between categorical coproducts (indexed by the same type) from a family of morphisms between the factors.
Instances For
Construct a morphism between categorical coproducts from a family of morphisms between the factors.
Instances For
Construct an isomorphism between categorical coproducts (indexed by the same type) from a family of isomorphisms between the factors.
Instances For
A colimit cocone for X : Discrete α ⥤ C that is given
by ∐ (fun j => X.obj (Discrete.mk j)).
Instances For
The cocone Sigma.cocone X is a colimit cocone.
Instances For
The isomorphism ∐ (fun j => X.obj (Discrete.mk j)) ≅ colimit X.
Instances For
Two products which differ by an equivalence in the indexing type, and up to isomorphism in the factors, are isomorphic.
Instances For
Two coproducts which differ by an equivalence in the indexing type, and up to isomorphism in the factors, are isomorphic.
Instances For
An iterated product is a product over a sigma type.
Instances For
An iterated coproduct is a coproduct over a sigma type.
Instances For
The comparison morphism for the product of f. This is an iso iff G preserves the product
of f, see PreservesProduct.ofIsoComparison.
Instances For
The comparison morphism for the coproduct of f. This is an iso iff G preserves the coproduct
of f, see PreservesCoproduct.ofIsoComparison.
Instances For
F.mapCone c being limiting is the same as the induced fan being limiting.
Instances For
F.mapCocone c being colimiting is the same as the induced cofan being colimiting.
Instances For
An abbreviation for Π J, HasLimitsOfShape (Discrete J) C
Instances For
An abbreviation for Π J, HasColimitsOfShape (Discrete J) C
Instances For
The functor sending (X, n) to the product of copies of X indexed by n.
Instances For
n ↦ ∏ₙ X is left adjoint to Hom(-, X).
Instances For
The functor sending (X, n) to the coproduct of copies of X indexed by n.
Instances For
n ↦ ∐ₙ X is left adjoint to Hom(X, -).
Instances For
(Co)products over a type with a unique term.
The limit cone for the product over an index type with exactly one term.
Instances For
A product over an index type with exactly one term is just the object over that term.
Instances For
Any isomorphism is the projection from a single object product.
Instances For
The colimit cocone for the coproduct over an index type with exactly one term.
Instances For
A coproduct over an index type with exactly one term is just the object over that term.
Instances For
Any isomorphism is the projection from a single object product.
Instances For
Reindex a categorical product via an equivalence of the index types.
Instances For
Reindex a categorical coproduct via an equivalence of the index types.
Instances For
Being a colimiting cofan is stable under equivalences in the index type.
Instances For
A product over products is a product indexed by a product.
Instances For
A coproduct over coproducts is a coproduct indexed by a product.
Instances For
The functor C ⥤ (Type w)ᵒᵖ ⥤ C which sends X : C and α : Type w to
the product of copies of X indexed by α.
Instances For
The functor C ⥤ Type w ⥤ C which sends X : C and α : Type w to
the coproduct of copies of X indexed by α.