File: Mathlib/CategoryTheory/Monoidal/Limits.lean

full_name: CategoryTheory.Limits.limitFunctorial
code: instance limitFunctorial : Functorial fun F : J ⥤ C => limit F 
goal: CategoryTheory.Functorial fun F => CategoryTheory.Limits.limit F

full_name: CategoryTheory.Limits.limitFunctorial_map
code: @[simp]
theorem limitFunctorial_map {F G : J ⥤ C} (α : F ⟶ G) :
    map (fun F : J ⥤ C => limit F) α = Limits.lim.map α 
goal: CategoryTheory.map (fun F => CategoryTheory.Limits.limit F) α = CategoryTheory.Limits.lim.map α

full_name: CategoryTheory.Limits.limitLaxMonoidal_ε
code: @[simps]
instance limitLaxMonoidal : LaxMonoidal fun F : J ⥤ C => limit F 
goal: CategoryTheory.LaxMonoidal.ε =
  CategoryTheory.Limits.limit.lift ((CategoryTheory.Functor.const J).obj (𝟙_ C))
    { pt := 𝟙_ C, π := { app := fun j => 𝟙 (((CategoryTheory.Functor.const J).obj (𝟙_ C)).obj j), naturality := ⋯ } }

full_name: CategoryTheory.Limits.limitLaxMonoidal_μ
code: @[simps]
instance limitLaxMonoidal : LaxMonoidal fun F : J ⥤ C => limit F 
goal: CategoryTheory.LaxMonoidal.μ F G =
  CategoryTheory.Limits.limit.lift (F ⊗ G)
    { pt := CategoryTheory.Limits.limit F ⊗ CategoryTheory.Limits.limit G,
      π := { app := fun j => CategoryTheory.Limits.limit.π F j ⊗ CategoryTheory.Limits.limit.π G j, naturality := ⋯ } }

full_name: CategoryTheory.Limits.limitLaxMonoidal
code: @[simps]
instance limitLaxMonoidal : LaxMonoidal fun F : J ⥤ C => limit F 
goal: CategoryTheory.LaxMonoidal fun F => CategoryTheory.Limits.limit F

full_name: CategoryTheory.Limits.limLax
code: /-- The limit functor `F ↦ limit F` bundled as a lax monoidal functor. -/
def limLax : LaxMonoidalFunctor (J ⥤ C) C 
goal: CategoryTheory.LaxMonoidalFunctor (J ⥤ C) C

full_name: CategoryTheory.Limits.limLax_obj
code: @[simp]
theorem limLax_obj (F : J ⥤ C) : limLax.obj F = limit F 
goal: CategoryTheory.Limits.limLax.obj F = CategoryTheory.Limits.limit F

full_name: CategoryTheory.Limits.limLax_obj'
code: theorem limLax_obj' (F : J ⥤ C) : limLax.obj F = lim.obj F 
goal: CategoryTheory.Limits.limLax.obj F = CategoryTheory.Limits.lim.obj F

full_name: CategoryTheory.Limits.limLax_map
code: @[simp]
theorem limLax_map {F G : J ⥤ C} (α : F ⟶ G) : limLax.map α = lim.map α 
goal: CategoryTheory.Limits.limLax.map α = CategoryTheory.Limits.lim.map α

full_name: CategoryTheory.Limits.limLax_ε
code: @[simp]
theorem limLax_ε :
    (@limLax J _ C _ _ _).ε =
      limit.lift _
        { pt := _
          π := { app := fun j => 𝟙 _ } } 
goal: CategoryTheory.Limits.limLax.ε =
  CategoryTheory.Limits.limit.lift ((CategoryTheory.Functor.const J).obj (𝟙_ C))
    { pt := 𝟙_ C, π := { app := fun j => 𝟙 (((CategoryTheory.Functor.const J).obj (𝟙_ C)).obj j), naturality := ⋯ } }

full_name: CategoryTheory.Limits.limLax_μ
code: @[simp]
theorem limLax_μ (F G : J ⥤ C) :
    (@limLax J _ C _ _ _).μ F G =
      limit.lift (F ⊗ G)
        { pt := limit F ⊗ limit G
          π :=
            { app := fun j => limit.π F j ⊗ limit.π G j
              naturality := fun j j' f => by
                dsimp
                simp only [Category.id_comp, ← tensor_comp, limit.w] } } 
goal: CategoryTheory.Limits.limLax.μ F G =
  CategoryTheory.Limits.limit.lift (F ⊗ G)
    { pt := CategoryTheory.Limits.limit F ⊗ CategoryTheory.Limits.limit G,
      π := { app := fun j => CategoryTheory.Limits.limit.π F j ⊗ CategoryTheory.Limits.limit.π G j, naturality := ⋯ } }