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.instHasLimitModuleCatαRingObjOppositeRingCatCompEvaluationRestrictScalarsMap
{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ᵒᵖ}
{Y : Cᵒᵖ}
(f : X ⟶ Y)
:
CategoryTheory.Limits.HasLimit (F.comp ((PresheafOfModules.evaluation R Y).comp (ModuleCat.restrictScalars (R.map f))))
Equations
- ⋯ = ⋯
@[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))
@[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 : Cᵒᵖ}
{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))
(F.comp (PresheafOfModules.evaluation R Y))).inv
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.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.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
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]
:
Equations
- ⋯ = ⋯
noncomputable instance
PresheafOfModules.evaluationPreservesLimit
{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ᵒᵖ)
:
Equations
- One or more equations did not get rendered due to their size.
noncomputable instance
PresheafOfModules.toPresheafPreservesLimit
{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]
:
Equations
- One or more equations did not get rendered due to their size.
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]
:
Equations
- ⋯ = ⋯
noncomputable instance
PresheafOfModules.evaluationPreservesLimitsOfShape
{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ᵒᵖ)
:
Equations
- PresheafOfModules.evaluationPreservesLimitsOfShape R J X = { preservesLimit := fun {K : CategoryTheory.Functor J (PresheafOfModules R)} => inferInstance }
noncomputable instance
PresheafOfModules.toPresheafPreservesLimitsOfShape
{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]
:
Equations
- PresheafOfModules.toPresheafPreservesLimitsOfShape R J = { preservesLimit := fun {K : CategoryTheory.Functor J (PresheafOfModules R)} => inferInstance }
instance
PresheafOfModules.hasFiniteLimits
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
:
Equations
- ⋯ = ⋯
noncomputable instance
PresheafOfModules.evaluationPreservesFiniteLimits
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
(X : Cᵒᵖ)
:
Equations
- PresheafOfModules.evaluationPreservesFiniteLimits R X = { preservesFiniteLimits := inferInstance }
noncomputable instance
PresheafOfModules.toPresheafPreservesFiniteLimits
{C : Type u₁}
[CategoryTheory.Category.{v₁, u₁} C]
(R : CategoryTheory.Functor Cᵒᵖ RingCat)
:
Equations
- PresheafOfModules.toPresheafPreservesFiniteLimits R = { preservesFiniteLimits := inferInstance }