Limits in categories of presheaves of modules #
In this file, it is shown that under suitable assumptions,
limits exist in the category PresheafOfModules R
.
def
PresheafOfModules.evaluationJointlyReflectsLimits
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
(c : CategoryTheory.Limits.Cone F)
(hc : (X : Cᵒᵖ) → CategoryTheory.Limits.IsLimit ((PresheafOfModules.evaluation R X).mapCone c))
:
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
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
PresheafOfModules.instHasLimitModuleCatCarrierObjOppositeRingCatCompEvaluationRestrictScalarsHomMap
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
{X Y : Cᵒᵖ}
(f : X ⟶ Y)
:
CategoryTheory.Limits.HasLimit
(F.comp ((PresheafOfModules.evaluation R Y).comp (ModuleCat.restrictScalars (R.map f).hom)))
noncomputable def
PresheafOfModules.limitPresheafOfModules
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
:
Given F : J ⥤ PresheafOfModules.{v} R
, this is the presheaf of modules obtained by
taking a limit in the category of modules over R.obj X
for all X
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
PresheafOfModules.limitPresheafOfModules_map
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
{x✝ Y : Cᵒᵖ}
(f : x✝ ⟶ Y)
:
(PresheafOfModules.limitPresheafOfModules F).map f = CategoryTheory.CategoryStruct.comp
(CategoryTheory.Limits.limMap (CategoryTheory.whiskerLeft F (PresheafOfModules.restriction R f)))
(CategoryTheory.preservesLimitIso (ModuleCat.restrictScalars (R.map f).hom)
(F.comp (PresheafOfModules.evaluation R Y))).inv
@[simp]
theorem
PresheafOfModules.limitPresheafOfModules_obj
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
(X : Cᵒᵖ)
:
(PresheafOfModules.limitPresheafOfModules F).obj X = CategoryTheory.Limits.limit (F.comp (PresheafOfModules.evaluation R X))
noncomputable def
PresheafOfModules.limitCone
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
:
The (limit) cone for F : J ⥤ PresheafOfModules.{v} R
that is constructed from the limit
of F ⋙ evaluation R X
for all X
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
PresheafOfModules.limitCone_pt
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
:
@[simp]
theorem
PresheafOfModules.limitCone_π_app_app
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
(j : J)
(X : Cᵒᵖ)
:
((PresheafOfModules.limitCone F).π.app j).app X = CategoryTheory.Limits.limit.π (F.comp (PresheafOfModules.evaluation R X)) j
noncomputable def
PresheafOfModules.isLimitLimitCone
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
:
The cone limitCone F
is limit for any F : J ⥤ PresheafOfModules.{v} R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
PresheafOfModules.hasLimit
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
:
instance
PresheafOfModules.evaluation_preservesLimit
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
(X : Cᵒᵖ)
:
instance
PresheafOfModules.toPresheaf_preservesLimit
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
{R : CategoryTheory.Functor Cᵒᵖ RingCat}
{J : Type u₂}
[CategoryTheory.Category.{v₂, u₂} J]
(F : CategoryTheory.Functor J (PresheafOfModules R))
[∀ (X : Cᵒᵖ),
Small.{v, max u₂ v}
↑((F.comp (PresheafOfModules.evaluation R X)).comp (CategoryTheory.forget (ModuleCat ↑(R.obj X)))).sections]
:
instance
PresheafOfModules.hasLimitsOfShape
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
(J : Type u₂)
[CategoryTheory.Category.{v₂, u₂} J]
[Small.{v, u₂} J]
:
instance
PresheafOfModules.evaluation_preservesLimitsOfShape
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
(J : Type u₂)
[CategoryTheory.Category.{v₂, u₂} J]
[Small.{v, u₂} J]
(X : Cᵒᵖ)
:
instance
PresheafOfModules.toPresheaf_preservesLimitsOfShape
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
(J : Type u₂)
[CategoryTheory.Category.{v₂, u₂} J]
[Small.{v, u₂} J]
:
instance
PresheafOfModules.hasFiniteLimits
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
:
instance
PresheafOfModules.evaluation_preservesFiniteLimits
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
(X : Cᵒᵖ)
: