Products in the over category #
Shows that products in the over category can be derived from wide pullbacks in the base category.
The main result is over_product_of_wide_pullback
, which says that if C
has J
-indexed wide
pullbacks, then over B
has J
-indexed products.
(Implementation)
Given a product diagram in C/B
, construct the corresponding wide pullback diagram
in C
.
(Impl) A preliminary definition to avoid timeouts.
(Impl) A preliminary definition to avoid timeouts.
Equations
- category_theory.over.construct_products.cones_equiv_inverse B F = {obj := category_theory.over.construct_products.cones_equiv_inverse_obj B F, map := λ (c₁ c₂ : category_theory.limits.cone F) (f : c₁ ⟶ c₂), {hom := f.hom.left, w' := _}, map_id' := _, map_comp' := _}
(Impl) A preliminary definition to avoid timeouts.
Equations
- category_theory.over.construct_products.cones_equiv_functor B F = {obj := λ (c : category_theory.limits.cone (category_theory.over.construct_products.wide_pullback_diagram_of_diagram_over B F)), {X := category_theory.over.mk (c.π.app option.none), π := {app := λ (_x : category_theory.discrete J), category_theory.over.construct_products.cones_equiv_functor._match_1 B F c _x, naturality' := _}}, map := λ (c₁ c₂ : category_theory.limits.cone (category_theory.over.construct_products.wide_pullback_diagram_of_diagram_over B F)) (f : c₁ ⟶ c₂), {hom := category_theory.over.hom_mk f.hom _, w' := _}, map_id' := _, map_comp' := _}
- category_theory.over.construct_products.cones_equiv_functor._match_1 B F c {as := j} = category_theory.over.hom_mk (c.π.app (option.some j)) _
(Impl) A preliminary definition to avoid timeouts.
Equations
- category_theory.over.construct_products.cones_equiv_unit_iso B F = category_theory.nat_iso.of_components (λ (_x : category_theory.limits.cone (category_theory.over.construct_products.wide_pullback_diagram_of_diagram_over B F)), category_theory.limits.cones.ext {hom := 𝟙 ((𝟭 (category_theory.limits.cone (category_theory.over.construct_products.wide_pullback_diagram_of_diagram_over B F))).obj _x).X, inv := 𝟙 ((category_theory.over.construct_products.cones_equiv_functor B F ⋙ category_theory.over.construct_products.cones_equiv_inverse B F).obj _x).X, hom_inv_id' := _, inv_hom_id' := _} _) _
(Impl) A preliminary definition to avoid timeouts.
Equations
- category_theory.over.construct_products.cones_equiv_counit_iso B F = category_theory.nat_iso.of_components (λ (_x : category_theory.limits.cone F), category_theory.limits.cones.ext {hom := category_theory.over.hom_mk (𝟙 ((category_theory.over.construct_products.cones_equiv_inverse B F ⋙ category_theory.over.construct_products.cones_equiv_functor B F).obj _x).X.left) _, inv := category_theory.over.hom_mk (𝟙 ((𝟭 (category_theory.limits.cone F)).obj _x).X.left) _, hom_inv_id' := _, inv_hom_id' := _} _) _
(Impl) Establish an equivalence between the category of cones for F
and for the "grown" F
.
Equations
- category_theory.over.construct_products.cones_equiv B F = {functor := category_theory.over.construct_products.cones_equiv_functor B F, inverse := category_theory.over.construct_products.cones_equiv_inverse B F, unit_iso := category_theory.over.construct_products.cones_equiv_unit_iso B F, counit_iso := category_theory.over.construct_products.cones_equiv_counit_iso B F, functor_unit_iso_comp' := _}
Use the above equivalence to prove we have a limit.
Given a wide pullback in C
, construct a product in C/B
.
Given a pullback in C
, construct a binary product in C/B
.
Given all wide pullbacks in C
, construct products in C/B
.
Given all finite wide pullbacks in C
, construct finite products in C/B
.
Construct terminal object in the over category. This isn't an instance as it's not typically the
way we want to define terminal objects.
(For instance, this gives a terminal object which is different from the generic one given by
over_product_of_wide_pullback
above.)