File: Mathlib/CategoryTheory/Limits/FilteredColimitCommutesFiniteLimit.lean

full_name: CategoryTheory.Limits.comp_lim_obj_ext
code: /-- `(G ⋙ lim).obj j` = `limit (G.obj j)` definitionally, so this
is just a variant of `limit_ext'`. -/
@[ext] lemma comp_lim_obj_ext {j : J} {G : J ⥤ K ⥤ Type v} (x y : (G ⋙ lim).obj j)
    (w : ∀ (k : K), limit.π (G.obj j) k x = limit.π (G.obj j) k y) : x = y 
goal: x = y

full_name: CategoryTheory.Limits.colimitLimitToLimitColimit_injective
code: /-- This follows this proof from
* Borceux, Handbook of categorical algebra 1, Theorem 2.13.4
-/
theorem colimitLimitToLimitColimit_injective :
    Function.Injective (colimitLimitToLimitColimit F) 
goal: Function.Injective (CategoryTheory.Limits.colimitLimitToLimitColimit F)

full_name: CategoryTheory.Limits.colimitLimitToLimitColimit_surjective
code: /-- This follows this proof from
* Borceux, Handbook of categorical algebra 1, Theorem 2.13.4
although with different names.
-/
theorem colimitLimitToLimitColimit_surjective :
    Function.Surjective (colimitLimitToLimitColimit F) 
goal: Function.Surjective (CategoryTheory.Limits.colimitLimitToLimitColimit F)

full_name: CategoryTheory.Limits.colimitLimitToLimitColimit_isIso
code: instance colimitLimitToLimitColimit_isIso : IsIso (colimitLimitToLimitColimit F) 
goal: CategoryTheory.IsIso (CategoryTheory.Limits.colimitLimitToLimitColimit F)

full_name: CategoryTheory.Limits.colimitLimitToLimitColimitCone_iso
code: instance colimitLimitToLimitColimitCone_iso (F : J ⥤ K ⥤ Type v) :
    IsIso (colimitLimitToLimitColimitCone F) 
goal: CategoryTheory.IsIso (CategoryTheory.Limits.colimitLimitToLimitColimitCone F)

full_name: CategoryTheory.Limits.filteredColimPreservesFiniteLimitsOfTypes
code: noncomputable instance filteredColimPreservesFiniteLimitsOfTypes :
    PreservesFiniteLimits (colim : (K ⥤ Type v) ⥤ _) 
goal: CategoryTheory.Limits.PreservesFiniteLimits CategoryTheory.Limits.colim

full_name: CategoryTheory.Limits.filteredColimPreservesFiniteLimits
code: noncomputable instance filteredColimPreservesFiniteLimits :
    PreservesLimitsOfShape J (colim : (K ⥤ C) ⥤ _) 
goal: CategoryTheory.Limits.PreservesLimitsOfShape J CategoryTheory.Limits.colim

full_name: CategoryTheory.Limits.instPreservesFiniteLimitsFunctorColimOfPreservesColimitsOfShapeOfHasFiniteLimitsOfReflectsIsomorphismsForget
code: noncomputable instance [PreservesFiniteLimits (forget C)] [PreservesColimitsOfShape K (forget C)]
    [HasFiniteLimits C] [HasColimitsOfShape K C] [(forget C).ReflectsIsomorphisms] :
    PreservesFiniteLimits (colim : (K ⥤ C) ⥤ _) 
goal: CategoryTheory.Limits.PreservesFiniteLimits CategoryTheory.Limits.colim

full_name: CategoryTheory.Limits.colimitLimitIso
code: /-- A curried version of the fact that filtered colimits commute with finite limits. -/
noncomputable def colimitLimitIso (F : J ⥤ K ⥤ C) : colimit (limit F) ≅ limit (colimit F.flip) 
goal: CategoryTheory.Limits.colimit (CategoryTheory.Limits.limit F) ≅
  CategoryTheory.Limits.limit (CategoryTheory.Limits.colimit F.flip)

full_name: CategoryTheory.Limits.ι_colimitLimitIso_limit_π
code: @[reassoc (attr := simp)]
theorem ι_colimitLimitIso_limit_π (F : J ⥤ K ⥤ C) (a) (b) :
    colimit.ι (limit F) a ≫ (colimitLimitIso F).hom ≫ limit.π (colimit F.flip) b =
      (limit.π F b).app a ≫ (colimit.ι F.flip a).app b 
goal: CategoryTheory.Limits.colimit.ι (CategoryTheory.Limits.limit F) a ≫
    (CategoryTheory.Limits.colimitLimitIso F).hom ≫
      CategoryTheory.Limits.limit.π (CategoryTheory.Limits.colimit F.flip) b =
  (CategoryTheory.Limits.limit.π F b).app a ≫ (CategoryTheory.Limits.colimit.ι F.flip a).app b