Limits and the category of (co)cones #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This files contains results that stem from the limit API. For the definition and the category
instance of cone
, please refer to category_theory/limits/cones.lean
.
Main results #
- The category of cones on
F : J ⥤ C
is equivalent to the categorycostructured_arrow (const J) F
. - A cone is limiting iff it is terminal in the category of cones. As a corollary, an equivalence of categories of cones preserves limiting properties.
Construct an object of the category (Δ ↓ F)
from a cone on F
. This is part of an
equivalence, see cone.equiv_costructured_arrow
.
Equations
- category_theory.limits.cone.to_costructured_arrow F = {obj := λ (c : category_theory.limits.cone F), category_theory.costructured_arrow.mk c.π, map := λ (c d : category_theory.limits.cone F) (f : c ⟶ d), category_theory.costructured_arrow.hom_mk f.hom _, map_id' := _, map_comp' := _}
Construct a cone on F
from an object of the category (Δ ↓ F)
. This is part of an
equivalence, see cone.equiv_costructured_arrow
.
Equations
- category_theory.limits.cone.from_costructured_arrow F = {obj := λ (c : category_theory.costructured_arrow (category_theory.functor.const J) F), {X := c.left, π := c.hom}, map := λ (c d : category_theory.costructured_arrow (category_theory.functor.const J) F) (f : c ⟶ d), {hom := f.left, w' := _}, map_id' := _, map_comp' := _}
The category of cones on F
is just the comma category (Δ ↓ F)
, where Δ
is the constant
functor.
Equations
- category_theory.limits.cone.equiv_costructured_arrow F = category_theory.equivalence.mk (category_theory.limits.cone.to_costructured_arrow F) (category_theory.limits.cone.from_costructured_arrow F) (category_theory.nat_iso.of_components category_theory.limits.cones.eta _) (category_theory.nat_iso.of_components (λ (c : category_theory.costructured_arrow (category_theory.functor.const J) F), c.eta.symm) _)
A cone is a limit cone iff it is terminal.
Equations
- c.is_limit_equiv_is_terminal = category_theory.limits.is_limit.iso_unique_cone_morphism.to_equiv.trans {to_fun := λ (h : Π (s : category_theory.limits.cone F), unique (s ⟶ c)), category_theory.limits.is_terminal.of_unique c, inv_fun := λ (h : category_theory.limits.is_terminal c) (s : category_theory.limits.cone F), {to_inhabited := {default := h.from s}, uniq := _}, left_inv := _, right_inv := _}
If G : cone F ⥤ cone F'
preserves terminal objects, it preserves limit cones.
Equations
If G : cone F ⥤ cone F'
reflects terminal objects, it reflects limit cones.
Equations
Construct an object of the category (F ↓ Δ)
from a cocone on F
. This is part of an
equivalence, see cocone.equiv_structured_arrow
.
Equations
- category_theory.limits.cocone.to_structured_arrow F = {obj := λ (c : category_theory.limits.cocone F), category_theory.structured_arrow.mk c.ι, map := λ (c d : category_theory.limits.cocone F) (f : c ⟶ d), category_theory.structured_arrow.hom_mk f.hom _, map_id' := _, map_comp' := _}
Construct a cocone on F
from an object of the category (F ↓ Δ)
. This is part of an
equivalence, see cocone.equiv_structured_arrow
.
Equations
- category_theory.limits.cocone.from_structured_arrow F = {obj := λ (c : category_theory.structured_arrow F (category_theory.functor.const J)), {X := c.right, ι := c.hom}, map := λ (c d : category_theory.structured_arrow F (category_theory.functor.const J)) (f : c ⟶ d), {hom := f.right, w' := _}, map_id' := _, map_comp' := _}
The category of cocones on F
is just the comma category (F ↓ Δ)
, where Δ
is the constant
functor.
Equations
- category_theory.limits.cocone.equiv_structured_arrow F = category_theory.equivalence.mk (category_theory.limits.cocone.to_structured_arrow F) (category_theory.limits.cocone.from_structured_arrow F) (category_theory.nat_iso.of_components category_theory.limits.cocones.eta _) (category_theory.nat_iso.of_components (λ (c : category_theory.structured_arrow F (category_theory.functor.const J)), c.eta.symm) _)
A cocone is a colimit cocone iff it is initial.
Equations
- c.is_colimit_equiv_is_initial = category_theory.limits.is_colimit.iso_unique_cocone_morphism.to_equiv.trans {to_fun := λ (h : Π (s : category_theory.limits.cocone F), unique (c ⟶ s)), category_theory.limits.is_initial.of_unique c, inv_fun := λ (h : category_theory.limits.is_initial c) (s : category_theory.limits.cocone F), {to_inhabited := {default := h.to s}, uniq := _}, left_inv := _, right_inv := _}
If G : cocone F ⥤ cocone F'
preserves initial objects, it preserves colimit cocones.
Equations
If G : cocone F ⥤ cocone F'
reflects initial objects, it reflects colimit cocones.