def
preserves_limits_iso
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
[category_theory.small_category J]
(F : J ⥤ C)
[category_theory.limits.has_limit F]
[category_theory.limits.has_limit (F ⋙ G)] :
G.obj (category_theory.limits.limit F) ≅ category_theory.limits.limit (F ⋙ G)
If G
preserves limits, we have an isomorphism from the image of the chosen limit of a functor F
to the chosen limit of the functor F ⋙ G
.
@[simp]
theorem
preserves_limits_iso_hom_π
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
[category_theory.small_category J]
(F : J ⥤ C)
[category_theory.limits.has_limit F]
[category_theory.limits.has_limit (F ⋙ G)]
(j : J) :
(preserves_limits_iso G F).hom ≫ category_theory.limits.limit.π (F ⋙ G) j = G.map (category_theory.limits.limit.π F j)
@[simp]
theorem
preserves_limits_iso_hom_π_assoc
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
[category_theory.small_category J]
(F : J ⥤ C)
[category_theory.limits.has_limit F]
[category_theory.limits.has_limit (F ⋙ G)]
(j : J)
{X' : D}
(f' : (F ⋙ G).obj j ⟶ X') :
(preserves_limits_iso G F).hom ≫ category_theory.limits.limit.π (F ⋙ G) j ≫ f' = G.map (category_theory.limits.limit.π F j) ≫ f'
def
preserves_products_iso
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
(f : J → C)
[category_theory.limits.has_limits C]
[category_theory.limits.has_limits D] :
If G
preserves limits, we have an isomorphism
from the image of a product to the product of the images.
@[simp]
theorem
preserves_products_iso_hom_π_assoc
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
(f : J → C)
[category_theory.limits.has_limits C]
[category_theory.limits.has_limits D]
(j : J)
{X' : D}
(f' : G.obj (f j) ⟶ X') :
(preserves_products_iso G f).hom ≫ category_theory.limits.pi.π (λ (j : J), G.obj (f j)) j ≫ f' = G.map (category_theory.limits.pi.π f j) ≫ f'
@[simp]
theorem
preserves_products_iso_hom_π
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
(f : J → C)
[category_theory.limits.has_limits C]
[category_theory.limits.has_limits D]
(j : J) :
(preserves_products_iso G f).hom ≫ category_theory.limits.pi.π (λ (j : J), G.obj (f j)) j = G.map (category_theory.limits.pi.π f j)
@[simp]
theorem
map_lift_comp_preserves_products_iso_hom_assoc
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
(f : J → C)
[category_theory.limits.has_limits C]
[category_theory.limits.has_limits D]
(P : C)
(g : Π (j : J), P ⟶ f j)
{X' : D}
(f' : (∏ λ (j : J), G.obj (f j)) ⟶ X') :
G.map (category_theory.limits.pi.lift g) ≫ (preserves_products_iso G f).hom ≫ f' = category_theory.limits.pi.lift (λ (j : J), G.map (g j)) ≫ f'
@[simp]
theorem
map_lift_comp_preserves_products_iso_hom
{C : Type u₁}
[category_theory.category C]
{D : Type u₂}
[category_theory.category D]
(G : C ⥤ D)
[category_theory.limits.preserves_limits G]
{J : Type v}
(f : J → C)
[category_theory.limits.has_limits C]
[category_theory.limits.has_limits D]
(P : C)
(g : Π (j : J), P ⟶ f j) :
G.map (category_theory.limits.pi.lift g) ≫ (preserves_products_iso G f).hom = category_theory.limits.pi.lift (λ (j : J), G.map (g j))