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

full_name: PresheafOfModules.instModuleαRingObjOppositeRingCatCompOpAddCommGroupAddCommGrpPresheaf
code: instance {R : Dᵒᵖ ⥤ RingCat.{u}} (P : PresheafOfModules.{v} R) (F : C ⥤ D) (X : Cᵒᵖ) :
    Module ((F.op ⋙ R).obj X) ((F.op ⋙ P.presheaf).obj X) 
goal: Module ↑((F.op ⋙ R).obj X) ↑((F.op ⋙ P.presheaf).obj X)

full_name: PresheafOfModules.pushforward₀
code: /-- The pushforward functor on presheaves of modules for a functor `F : C ⥤ D` and
`R : Dᵒᵖ ⥤ RingCat`. On the underlying presheaves of abelian groups, it is induced
by the precomposition with `F.op`. -/
def pushforward₀ (R : Dᵒᵖ ⥤ RingCat.{u}) :
    PresheafOfModules.{v} R ⥤ PresheafOfModules.{v} (F.op ⋙ R) 
goal: PresheafOfModules R ⥤ PresheafOfModules (F.op ⋙ R)

full_name: PresheafOfModules.pushforward₀CompToPresheaf
code: /-- The pushforward of presheaves of modules commutes with the forgetful functor
to presheaves of abelian groups. -/
def pushforward₀CompToPresheaf (R : Dᵒᵖ ⥤ RingCat.{u}) :
    pushforward₀.{v} F R ⋙ toPresheaf _ ≅ toPresheaf _ ⋙ (whiskeringLeft _ _ _).obj F.op 
goal: PresheafOfModules.pushforward₀ F R ⋙ PresheafOfModules.toPresheaf (F.op ⋙ R) ≅
  PresheafOfModules.toPresheaf R ⋙ (CategoryTheory.whiskeringLeft Cᵒᵖ Dᵒᵖ AddCommGrp).obj F.op

full_name: PresheafOfModules.pushforward
code: /-- The pushforward functor `PresheafOfModules R ⥤ PresheafOfModules S` induced by
a morphism of presheaves of rings `S ⟶ F.op ⋙ R`. -/
noncomputable def pushforward : PresheafOfModules.{v} R ⥤ PresheafOfModules.{v} S 
goal: PresheafOfModules R ⥤ PresheafOfModules S

full_name: PresheafOfModules.pushforwardCompToPresheaf
code: /-- The pushforward of presheaves of modules commutes with the forgetful functor
to presheaves of abelian groups. -/
noncomputable def pushforwardCompToPresheaf :
    pushforward.{v} φ ⋙ toPresheaf _ ≅ toPresheaf _ ⋙ (whiskeringLeft _ _ _).obj F.op 
goal: PresheafOfModules.pushforward φ ⋙ PresheafOfModules.toPresheaf S ≅
  PresheafOfModules.toPresheaf R ⋙ (CategoryTheory.whiskeringLeft Cᵒᵖ Dᵒᵖ AddCommGrp).obj F.op

full_name: PresheafOfModules.pushforward_obj_obj
code: lemma pushforward_obj_obj (M : PresheafOfModules.{v} R) (X : Cᵒᵖ) :
    ((pushforward φ).obj M).obj X =
      (ModuleCat.restrictScalars (φ.app X)).obj (M.obj (Opposite.op (F.obj X.unop))) 
goal: ((PresheafOfModules.pushforward φ).obj M).obj X =
  (ModuleCat.restrictScalars (φ.app X)).obj (M.obj (Opposite.op (F.obj (Opposite.unop X))))

full_name: PresheafOfModules.pushforward_obj_map_apply
code: @[simp]
lemma pushforward_obj_map_apply (M : PresheafOfModules.{v} R) {X Y : Cᵒᵖ} (f : X ⟶ Y)
    (m : (ModuleCat.restrictScalars (φ.app X)).obj (M.obj (Opposite.op (F.obj X.unop)))) :
      ((pushforward φ).obj M).map f m = M.map (F.map f.unop).op m 
goal: (((PresheafOfModules.pushforward φ).obj M).map f) m = (M.map (F.map f.unop).op) m

full_name: PresheafOfModules.pushforward_map_app_apply
code: @[simp]
lemma pushforward_map_app_apply {M N : PresheafOfModules.{v} R} (α : M ⟶ N) (X : Cᵒᵖ)
    (m : (ModuleCat.restrictScalars (φ.app X)).obj (M.obj (Opposite.op (F.obj X.unop)))) :
    ((pushforward φ).map α).app X m = α.app (Opposite.op (F.obj X.unop)) m 
goal: (PresheafOfModules.Hom.app ((PresheafOfModules.pushforward φ).map α) X) m =
  (PresheafOfModules.Hom.app α (Opposite.op (F.obj (Opposite.unop X)))) m