File: Mathlib/Algebra/Category/ModuleCat/Presheaf/Limits.lean

full_name: PresheafOfModules.evaluationJointlyReflectsLimits
code: /-- A cone in the category `PresheafOfModules R` is limit if it is so after the application
of the functors `evaluation R X` for all `X`. -/
def evaluationJointlyReflectsLimits (c : Cone F)
    (hc : ∀ (X : Cᵒᵖ), IsLimit ((evaluation R X).mapCone c)) : IsLimit c 
goal: CategoryTheory.Limits.IsLimit c

full_name: PresheafOfModules.instHasLimitModuleCatαRingObjOppositeRingCatCompEvaluationRestrictScalarsMap
code: instance {X Y : Cᵒᵖ} (f : X ⟶ Y) :
    HasLimit (F ⋙ evaluation R Y ⋙ ModuleCat.restrictScalars (R.map f)) 
goal: CategoryTheory.Limits.HasLimit (F ⋙ PresheafOfModules.evaluation R Y ⋙ ModuleCat.restrictScalars (R.map f))

full_name: PresheafOfModules.limitBundledCore
code: /-- Given `F : J ⥤ PresheafOfModules.{v} R`, this is the `BundledCorePresheafOfModules R` which
corresponds to the presheaf of modules which sends `X` to the limit of `F ⋙ evaluation R X`. -/
@[simps]
noncomputable def limitBundledCore : BundledCorePresheafOfModules R 
goal: BundledCorePresheafOfModules R

full_name: PresheafOfModules.limitBundledCore_map
code: /-- Given `F : J ⥤ PresheafOfModules.{v} R`, this is the `BundledCorePresheafOfModules R` which
corresponds to the presheaf of modules which sends `X` to the limit of `F ⋙ evaluation R X`. -/
@[simps]
noncomputable def limitBundledCore : BundledCorePresheafOfModules R 
goal: (PresheafOfModules.limitBundledCore F).map f =
  CategoryTheory.Limits.limMap (CategoryTheory.whiskerLeft F (PresheafOfModules.restriction R f)) ≫
    (CategoryTheory.preservesLimitIso (ModuleCat.restrictScalars (R.map f)) (F ⋙ PresheafOfModules.evaluation R Y)).inv

full_name: PresheafOfModules.limitBundledCore_obj
code: /-- Given `F : J ⥤ PresheafOfModules.{v} R`, this is the `BundledCorePresheafOfModules R` which
corresponds to the presheaf of modules which sends `X` to the limit of `F ⋙ evaluation R X`. -/
@[simps]
noncomputable def limitBundledCore : BundledCorePresheafOfModules R 
goal: (PresheafOfModules.limitBundledCore F).obj X = CategoryTheory.Limits.limit (F ⋙ PresheafOfModules.evaluation R X)

full_name: PresheafOfModules.limitConeπApp
code: /-- Given `F : J ⥤ PresheafOfModules.{v} R`, this is the canonical map
`(limitBundledCore F).toPresheafOfModules ⟶ F.obj j` for all `j : J`. -/
noncomputable def limitConeπApp (j : J) :
    (limitBundledCore F).toPresheafOfModules ⟶ F.obj j 
goal: (PresheafOfModules.limitBundledCore F).toPresheafOfModules ⟶ F.obj j

full_name: PresheafOfModules.limitConeπApp_naturality
code: @[reassoc (attr := simp)]
lemma limitConeπApp_naturality {i j : J} (f : i ⟶ j) :
    limitConeπApp F i ≫ F.map f = limitConeπApp F j 
goal: PresheafOfModules.limitConeπApp F i ≫ F.map f = PresheafOfModules.limitConeπApp F j

full_name: PresheafOfModules.limitCone_pt
code: /-- The (limit) cone for `F : J ⥤ PresheafOfModules.{v} R` that is constructed for the limit
of `F ⋙ evaluation R X` for all `X`. -/
@[simps]
noncomputable def limitCone : Cone F 
goal: (PresheafOfModules.limitCone F).pt = (PresheafOfModules.limitBundledCore F).toPresheafOfModules

full_name: PresheafOfModules.limitCone_π_app
code: /-- The (limit) cone for `F : J ⥤ PresheafOfModules.{v} R` that is constructed for the limit
of `F ⋙ evaluation R X` for all `X`. -/
@[simps]
noncomputable def limitCone : Cone F 
goal: (PresheafOfModules.limitCone F).π.app j = PresheafOfModules.limitConeπApp F j

full_name: PresheafOfModules.limitCone
code: /-- The (limit) cone for `F : J ⥤ PresheafOfModules.{v} R` that is constructed for the limit
of `F ⋙ evaluation R X` for all `X`. -/
@[simps]
noncomputable def limitCone : Cone F 
goal: CategoryTheory.Limits.Cone F

full_name: PresheafOfModules.isLimitLimitCone
code: /-- The cone `limitCone F` is limit for any `F : J ⥤ PresheafOfModules.{v} R`. -/
noncomputable def isLimitLimitCone : IsLimit (limitCone F) 
goal: CategoryTheory.Limits.IsLimit (PresheafOfModules.limitCone F)

full_name: PresheafOfModules.hasLimit
code: instance hasLimit : HasLimit F 
goal: CategoryTheory.Limits.HasLimit F

full_name: PresheafOfModules.evaluationPreservesLimit
code: noncomputable instance evaluationPreservesLimit (X : Cᵒᵖ) :
    PreservesLimit F (evaluation R X) 
goal: CategoryTheory.Limits.PreservesLimit F (PresheafOfModules.evaluation R X)

full_name: PresheafOfModules.toPresheafPreservesLimit
code: noncomputable instance toPresheafPreservesLimit :
    PreservesLimit F (toPresheaf R) 
goal: CategoryTheory.Limits.PreservesLimit F (PresheafOfModules.toPresheaf R)

full_name: PresheafOfModules.hasLimitsOfShape
code: instance hasLimitsOfShape : HasLimitsOfShape J (PresheafOfModules.{v} R) 
goal: CategoryTheory.Limits.HasLimitsOfShape J (PresheafOfModules R)

full_name: PresheafOfModules.evaluationPreservesLimitsOfShape
code: noncomputable instance evaluationPreservesLimitsOfShape (X : Cᵒᵖ) :
    PreservesLimitsOfShape J (evaluation R X : PresheafOfModules.{v} R ⥤ _) 
goal: CategoryTheory.Limits.PreservesLimitsOfShape J (PresheafOfModules.evaluation R X)

full_name: PresheafOfModules.toPresheafPreservesLimitsOfShape
code: noncomputable instance toPresheafPreservesLimitsOfShape :
    PreservesLimitsOfShape J (toPresheaf.{v} R) 
goal: CategoryTheory.Limits.PreservesLimitsOfShape J (PresheafOfModules.toPresheaf R)

full_name: PresheafOfModules.hasFiniteLimits
code: instance hasFiniteLimits : HasFiniteLimits (PresheafOfModules.{v} R) 
goal: CategoryTheory.Limits.HasFiniteLimits (PresheafOfModules R)

full_name: PresheafOfModules.evaluationPreservesFiniteLimits
code: noncomputable instance evaluationPreservesFiniteLimits (X : Cᵒᵖ) :
    PreservesFiniteLimits (evaluation.{v} R X) 
goal: CategoryTheory.Limits.PreservesFiniteLimits (PresheafOfModules.evaluation R X)

full_name: PresheafOfModules.toPresheafPreservesFiniteLimits
code: noncomputable instance toPresheafPreservesFiniteLimits :
    PreservesFiniteLimits (toPresheaf.{v} R) 
goal: CategoryTheory.Limits.PreservesFiniteLimits (PresheafOfModules.toPresheaf R)