Presheaves of modules over a presheaf of rings. #
We give a hands-on description of a presheaf of modules over a fixed presheaf of rings R
,
as a presheaf of abelian groups with additional data.
We also provide two alternative constructors :
- When
M : CorePresheafOfModules R
consists of a family of unbundled modules overR.obj X
for allX
, the corresponding presheaf of modules isM.toPresheafOfModules
. - When
M : BundledCorePresheafOfModules R
consists of a family of objects inModuleCat (R.obj X)
for allX
, the corresponding presheaf of modules isM.toPresheafOfModules
.
Future work #
- Compare this to the definition as a presheaf of pairs
(R, M)
with specified first part. - Compare this to the definition as a module object of the presheaf of rings thought of as a monoid object.
- (Pre)sheaves of modules over a given sheaf of rings are an abelian category.
- Presheaves of modules over a presheaf of commutative rings form a monoidal category.
- Pushforward and pullback.
A presheaf of modules over a given presheaf of rings, described as a presheaf of abelian groups, and the extra data of the action at each object, and a condition relating functoriality and scalar multiplication.
- presheaf : CategoryTheory.Functor Cᵒᵖ AddCommGrp
Instances For
The bundled module over an object X
.
Equations
- P.obj X = ModuleCat.of ↑(R.obj X) ↑(P.presheaf.obj X)
Instances For
If P
is a presheaf of modules over a presheaf of rings R
, both over some category C
,
and f : X ⟶ Y
is a morphism in Cᵒᵖ
, we construct the R.map f
-semilinear map
from the R.obj X
-module P.presheaf.obj X
to the R.obj Y
-module P.presheaf.obj Y
.
Equations
- P.map f = { toAddHom := ↑(P.presheaf.map f), map_smul' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
A morphism of presheaves of modules.
- hom : P.presheaf ⟶ Q.presheaf
Instances For
The identity morphism on a presheaf of modules.
Equations
- PresheafOfModules.Hom.id P = { hom := CategoryTheory.CategoryStruct.id P.presheaf, map_smul := ⋯ }
Instances For
Composition of morphisms of presheaves of modules.
Equations
- f.comp g = { hom := CategoryTheory.CategoryStruct.comp f.hom g.hom, map_smul := ⋯ }
Instances For
Equations
- PresheafOfModules.instCategory = CategoryTheory.Category.mk ⋯ ⋯ ⋯
The (X : Cᵒᵖ)
-component of morphism between presheaves of modules
over a presheaf of rings R
, as an R.obj X
-linear map.
Equations
- f.app X = { toAddHom := ↑(f.hom.app X), map_smul' := ⋯ }
Instances For
Equations
- PresheafOfModules.Hom.instZeroHom = { zero := { hom := 0, map_smul := ⋯ } }
Equations
- PresheafOfModules.Hom.instAddCommGroupHom = AddCommGroup.mk ⋯
Equations
- PresheafOfModules.Hom.instPreadditive = { homGroup := inferInstance, add_comp := ⋯, comp_add := ⋯ }
The functor from presheaves of modules over a specified presheaf of rings, to presheaves of abelian groups.
Equations
- PresheafOfModules.toPresheaf R = { obj := fun (P : PresheafOfModules R) => P.presheaf, map := fun {X Y : PresheafOfModules R} (f : X ⟶ Y) => f.hom, map_id := ⋯, map_comp := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Evaluation on an object X
gives a functor
PresheafOfModules R ⥤ ModuleCat (R.obj X)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Given a presheaf of modules M
on a category C
and f : X ⟶ Y
in Cᵒᵖ
, this
is the restriction map M.obj X ⟶ M.obj Y
, considered as a linear map to
the restriction of scalars of M.obj Y
.
Equations
- PresheafOfModules.restrictionApp f M = (ModuleCat.semilinearMapAddEquiv (R.map f) (M.obj X) (M.obj Y)) (M.map f)
Instances For
The restriction natural transformation on presheaves of modules, considered as linear maps to restriction of scalars.
Equations
- PresheafOfModules.restriction R f = { app := PresheafOfModules.restrictionApp f, naturality := ⋯ }
Instances For
A constructor for morphisms in PresheafOfModules R
that is based on the data
of a family of linear maps over the various rings R.obj X
.
Equations
- PresheafOfModules.Hom.mk' app naturality = { hom := { app := fun (X : Cᵒᵖ) => (app X).toAddMonoidHom, naturality := ⋯ }, map_smul := ⋯ }
Instances For
A constructor for morphisms in PresheafOfModules R
that is based on the data
of a family of linear maps over the various rings R.obj X
, and for which the
naturality condition is stated using the restriction of scalars.
Equations
- PresheafOfModules.Hom.mk'' app naturality = PresheafOfModules.Hom.mk' app ⋯
Instances For
This structure contains the data and axioms in order to
produce a PresheafOfModules R
from a collection of types
equipped with module structures over the various rings R.obj X
.
(See the constructor PresheafOfModules.mk'
.)
the datum of a type for each object in
Cᵒᵖ
- addCommGroup : (X : Cᵒᵖ) → AddCommGroup (self.obj X)
the abelian group structure on the types
obj X
the semi-linear restriction maps
- map_id : ∀ (X : Cᵒᵖ) (x : self.obj X), (self.map (CategoryTheory.CategoryStruct.id X)) x = x
map
is compatible with the identities - map_comp : ∀ {X Y Z : Cᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (x : self.obj X), (self.map (CategoryTheory.CategoryStruct.comp f g)) x = (self.map g) ((self.map f) x)
map
is compatible with the composition
Instances For
map
is compatible with the identities
map
is compatible with the composition
The presheaf of abelian groups attached to a CorePresheafOfModules R
.
Equations
- M.presheaf = { obj := fun (X : Cᵒᵖ) => AddCommGrp.of (M.obj X), map := fun {X Y : Cᵒᵖ} (f : X ⟶ Y) => AddCommGrp.ofHom (M.map f).toAddMonoidHom, map_id := ⋯, map_comp := ⋯ }
Instances For
Equations
- M.instModuleαRingObjOppositeRingCatAddCommGroupAddCommGrpPresheaf X = M.module X
Constructor for PresheafOfModules R
based on a collection of types
equipped with module structures over the various rings R.obj X
, see
the structure CorePresheafOfModules
.
Equations
- M.toPresheafOfModules = { presheaf := M.presheaf, module := inferInstance, map_smul := ⋯ }
Instances For
This structure contains the data and axioms in order to
produce a PresheafOfModules R
from a collection of objects
of type ModuleCat (R.obj X)
for all X
, and restriction
maps expressed as linear maps to restriction of scalars.
(See the constructor PresheafOfModules.mk''
.)
- map : {X Y : Cᵒᵖ} → (f : X ⟶ Y) → self.obj X ⟶ (ModuleCat.restrictScalars (R.map f)).obj (self.obj Y)
the restriction maps as linear maps to restriction of scalars
- map_id : ∀ (X : Cᵒᵖ), self.map (CategoryTheory.CategoryStruct.id X) = (ModuleCat.restrictScalarsId' (R.map (CategoryTheory.CategoryStruct.id X)) ⋯).inv.app (self.obj X)
map
is compatible with the identities - map_comp : ∀ {X Y Z : Cᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z), self.map (CategoryTheory.CategoryStruct.comp f g) = CategoryTheory.CategoryStruct.comp (self.map f) (CategoryTheory.CategoryStruct.comp ((ModuleCat.restrictScalars (R.map f)).map (self.map g)) ((ModuleCat.restrictScalarsComp' (R.map f) (R.map g) (R.map (CategoryTheory.CategoryStruct.comp f g)) ⋯).inv.app (self.obj Z)))
map
is compatible with the composition
Instances For
map
is compatible with the identities
map
is compatible with the composition
The obvious map BundledCorePresheafOfModules R → CorePresheafOfModules R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Constructor for PresheafOfModules R
based on a collection of objects
of type ModuleCat (R.obj X)
for all X
, and restriction maps expressed
as linear maps to restriction of scalars, see
the structure BundledCorePresheafOfModules
.
Equations
- M.toPresheafOfModules = M.toCorePresheafOfModules.toPresheafOfModules
Instances For
Auxiliary definition for unit
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The obvious free presheaf of modules of rank 1
.
Equations
- PresheafOfModules.unit R = (PresheafOfModules.unitCore R).toPresheafOfModules
Instances For
The type of sections of a presheaf of modules.
Equations
- M.sections = ↑(M.presheaf.comp (CategoryTheory.forget AddCommGrp)).sections
Instances For
Constructor for sections of a presheaf of modules.
Equations
- PresheafOfModules.sectionsMk s hs = ⟨s, ⋯⟩
Instances For
The map M.sections → N.sections
induced by a morphisms M ⟶ N
of presheaves of modules.
Equations
- PresheafOfModules.sectionsMap f s = PresheafOfModules.sectionsMk (fun (X : Cᵒᵖ) => (PresheafOfModules.Hom.app f X) (↑s X)) ⋯
Instances For
The bijection (unit R ⟶ M) ≃ M.sections
for M : PresheafOfModules R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
PresheafOfModules R ⥤ Cᵒᵖ ⥤ ModuleCat (R.obj X)
when X
is initial #
When X
is initial, we have Module (R.obj X) (M.obj c)
for any c : Cᵒᵖ
.
Implementation of the functor PresheafOfModules R ⥤ Cᵒᵖ ⥤ ModuleCat (R.obj X)
when X
is initial.
The functor is implemented as, on object level M ↦ (c ↦ M(c))
where the R(X)
-module structure
on M(c)
is given by restriction of scalars along the unique morphism R(c) ⟶ R(X)
; and on
morphism level (f : M ⟶ N) ↦ (c ↦ f(c))
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Implementation of the functor PresheafOfModules R ⥤ Cᵒᵖ ⥤ ModuleCat (R.obj X)
when X
is initial.
The functor is implemented as, on object level M ↦ (c ↦ M(c))
where the R(X)
-module structure
on M(c)
is given by restriction of scalars along the unique morphism R(c) ⟶ R(X)
; and on
morphism level (f : M ⟶ N) ↦ (c ↦ f(c))
.
Equations
- PresheafOfModules.forgetToPresheafModuleCatMap X hX f = { app := fun (c : Cᵒᵖ) => { toFun := ⇑(PresheafOfModules.Hom.app f c), map_add' := ⋯, map_smul' := ⋯ }, naturality := ⋯ }
Instances For
The forgetful functor from presheaves of modules over a presheaf of rings R
to presheaves of
R(X)
-modules where X
is an initial object.
The functor is implemented as, on object level M ↦ (c ↦ M(c))
where the R(X)
-module structure
on M(c)
is given by restriction of scalars along the unique morphism R(c) ⟶ R(X)
; and on
morphism level (f : M ⟶ N) ↦ (c ↦ f(c))
.
Equations
- One or more equations did not get rendered due to their size.