Module

ModuleSetComparison.lean

Nyll.EtaleCohomology.Sites.ModuleSetComparison
13 declarations indexed from sourceView source ↗

Underlying set sheaves of étale module sheaves

Forgetting the module structure commutes with constant sheaves, direct image, and inverse image. The inverse-image comparison is the mate of the identity between the two direct-image composites. Its invertibility is proved on geometric stalks using the filtered-colimit comparison for the forgetful functor and the stalk/skyscraper adjunctions. No field or finiteness assumption is imposed on the base schemes or the coefficient ring.

Imports21
Imported by11

Declarations

EtaleCohomology.etaleModuleUnderlying

Forget the module structure of an étale sheaf.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
variable (X : Scheme.{u}) (R : Type u) [CommRing R]
def etaleModuleUnderlying :
    Sheaf X.smallEtaleTopology (ModuleCat.{u} R) ⥤ Sheaf X.smallEtaleTopology (Type u)
EtaleCohomology.etaleConstantModuleUnderlyingIso

The underlying set sheaf of a constant module sheaf is the constant set sheaf.

Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
variable (X : Scheme.{u}) (R : Type u) [CommRing R]
def etaleConstantModuleUnderlyingIso :
    constantSheaf X.smallEtaleTopology (ModuleCat.{u} R) ⋙ etaleModuleUnderlying X R ≅
      forget (ModuleCat.{u} R) ⋙ constantSheaf X.smallEtaleTopology (Type u)
EtaleCohomology.etalePushforwardModuleUnderlyingIso

Direct image commutes with forgetting module structure, by restriction of presheaves.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
variable (X : Scheme.{u}) (R : Type u) [CommRing R]
variable {X} {Y : Scheme.{u}} (f : X ⟶ Y)
def etalePushforwardModuleUnderlyingIso :
    etalePushforward f R ⋙ etaleModuleUnderlying Y R ≅
      etaleModuleUnderlying X R ⋙ etaleSetPushforward f
EtaleCohomology.etalePullbackModuleUnderlyingComparison

The canonical inverse-image comparison, obtained as the mate of the direct-image identity.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
variable (X : Scheme.{u}) (R : Type u) [CommRing R]
variable {X} {Y : Scheme.{u}} (f : X ⟶ Y)
def etalePullbackModuleUnderlyingComparison :
    etaleModuleUnderlying Y R ⋙ etaleSetPullback f ⟶
      etalePullback f R ⋙ etaleModuleUnderlying X R
EtaleCohomology.Sites.stalkModuleUnderlyingSquare
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology.Sites
variable {C : Type (u + 1)} [Category.{u} C] {J : GrothendieckTopology C}
  (Φ : GrothendieckTopology.Point.{u} J) (R : Type u) [CommRing R]
def stalkModuleUnderlyingSquare :
    TwoSquare (sheafCompose J (forget (ModuleCat.{u} R)))
      (Φ.sheafFiber (A := ModuleCat.{u} R))
      (Φ.sheafFiber (A := Type u)) (forget (ModuleCat.{u} R))
EtaleCohomology.Sites.skyscraperModuleUnderlyingSquare
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology.Sites
variable {C : Type (u + 1)} [Category.{u} C] {J : GrothendieckTopology C}
  (Φ : GrothendieckTopology.Point.{u} J) (R : Type u) [CommRing R]
def skyscraperModuleUnderlyingSquare :
    TwoSquare (Φ.skyscraperSheafFunctor (A := ModuleCat.{u} R))
      (forget (ModuleCat.{u} R)) (sheafCompose J (forget (ModuleCat.{u} R)))
      (Φ.skyscraperSheafFunctor (A := Type u))
EtaleCohomology.Sites.skyscraperModuleUnderlyingSquare_app
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology.Sites
variable {C : Type (u + 1)} [Category.{u} C] {J : GrothendieckTopology C}
  (Φ : GrothendieckTopology.Point.{u} J) (R : Type u) [CommRing R]
lemma skyscraperModuleUnderlyingSquare_app (M : ModuleCat.{u} R) :
    (skyscraperModuleUnderlyingSquare Φ R).natTrans.app M =
      Φ.skyscraperSheafAdjunction.homEquiv _ _
        ((stalkModuleUnderlyingSquare Φ R).natTrans.app (Φ.skyscraperSheaf M) ≫
          (forget (ModuleCat.{u} R)).map (Φ.skyscraperSheafAdjunction.counit.app M))
EtaleCohomology.Sites.skyscraperModuleUnderlyingSquare_app_π
Source context 5 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology.Sites
variable {C : Type (u + 1)} [Category.{u} C] {J : GrothendieckTopology C}
  (Φ : GrothendieckTopology.Point.{u} J) (R : Type u) [CommRing R]
lemma skyscraperModuleUnderlyingSquare_app_π
    (M : ModuleCat.{u} R) (V : C) (v : Φ.fiber.obj V) :
    ((skyscraperModuleUnderlyingSquare Φ R).natTrans.app M).hom.app (op V) ≫
        Pi.π (fun _ : Φ.fiber.obj V => (forget (ModuleCat.{u} R)).obj M) v =
      (forget (ModuleCat.{u} R)).map (Pi.π (fun _ : Φ.fiber.obj V => M) v) := by
  rw [skyscraperModuleUnderlyingSquare_app]
  erw [Φ.skyscraperSheafAdjunction_homEquiv_apply_hom]
  change (Φ.skyscraperPresheafHomEquiv
    ((Φ.presheafFiberCompIso (forget (ModuleCat.{u} R))).hom.app
      (Φ.skyscraperPresheaf M) ≫
        (forget (ModuleCat.{u} R)).map (Φ.skyscraperSheafAdjunction.counit.app M))).app
      (op V) ≫ Pi.π _ v = _
  erw [Φ.skyscraperPresheafHomEquiv_app_π]
  change Φ.toPresheafFiber V v ((Φ.skyscraperSheaf M).obj ⋙ forget (ModuleCat.{u} R)) ≫
      ((Φ.presheafFiberCompIso (forget (ModuleCat.{u} R))).hom.app
        (Φ.skyscraperSheaf M).obj ≫
          (forget (ModuleCat.{u} R)).map (Φ.skyscraperSheafAdjunction.counit.app M)) = _
  rw [← Category.assoc, Φ.toPresheafFiber_presheafFiberCompIso_hom_app]
  erw [← Functor.map_comp]
  congr 1
  rw [← Adjunction.homEquiv_symm_id Φ.skyscraperSheafAdjunction M]
  erw [Φ.skyscraperSheafAdjunction_homEquiv_symm_apply]
  exact Φ.toPresheafFiber_skyscraperPresheafHomEquiv_symm (𝟙 _) V v
Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
open scoped TwoSquare
variable {X Y : Scheme.{u}} (f : X ⟶ Y) (R : Type u) [CommRing R]
  {Ω : Type u} [Field Ω] [IsSepClosed Ω] (s : Spec (.of Ω) ⟶ X)
instance : RepresentablyFlat (etaleBaseChange f)
EtaleCohomology.skyscraperModuleUnderlyingSquare_comap
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
open scoped TwoSquare
variable {X Y : Scheme.{u}} (f : X ⟶ Y) (R : Type u) [CommRing R]
  {Ω : Type u} [Field Ω] [IsSepClosed Ω] (s : Spec (.of Ω) ⟶ X)
local instance : RepresentablyFlat (etaleBaseChange f) := flat_of_preservesFiniteLimits _
lemma skyscraperModuleUnderlyingSquare_comap :
    Sites.skyscraperModuleUnderlyingSquare
        ((Scheme.pointSmallEtale s).comap (etaleBaseChange f)
          (etaleBaseChange_coverPreserving f)) R =
      (Sites.skyscraperModuleUnderlyingSquare (Scheme.pointSmallEtale s) R) ≫ₕ
        (etalePushforwardModuleUnderlyingIso R f).hom
EtaleCohomology.etalePullbackModuleUnderlyingComparison_stalk_isIso

The inverse-image comparison is an isomorphism at every geometric point.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
open scoped TwoSquare
variable {X Y : Scheme.{u}} (f : X ⟶ Y) (R : Type u) [CommRing R]
  {Ω : Type u} [Field Ω] [IsSepClosed Ω] (s : Spec (.of Ω) ⟶ X)
local instance : RepresentablyFlat (etaleBaseChange f) := flat_of_preservesFiniteLimits _
lemma etalePullbackModuleUnderlyingComparison_stalk_isIso
    (F : Sheaf Y.smallEtaleTopology (ModuleCat.{u} R)) :
    IsIso ((Scheme.pointSmallEtale s).sheafFiber.map
      ((etalePullbackModuleUnderlyingComparison R f).app F))
EtaleCohomology.etalePullbackModuleUnderlyingComparison_isIso

Geometric points detect that inverse image commutes with forgetting module structure.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
open scoped TwoSquare
variable {X Y : Scheme.{u}} (f : X ⟶ Y) (R : Type u) [CommRing R]
  {Ω : Type u} [Field Ω] [IsSepClosed Ω] (s : Spec (.of Ω) ⟶ X)
local instance : RepresentablyFlat (etaleBaseChange f) := flat_of_preservesFiniteLimits _
lemma etalePullbackModuleUnderlyingComparison_isIso :
    IsIso (etalePullbackModuleUnderlyingComparison R f)
EtaleCohomology.etalePullbackModuleUnderlyingIso

Underlying set sheaves commute with inverse image for every morphism of schemes.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open AlgebraicGeometry CategoryTheory Limits Opposite
universe u
namespace EtaleCohomology
open scoped TwoSquare
variable {X Y : Scheme.{u}} (f : X ⟶ Y) (R : Type u) [CommRing R]
  {Ω : Type u} [Field Ω] [IsSepClosed Ω] (s : Spec (.of Ω) ⟶ X)
local instance : RepresentablyFlat (etaleBaseChange f) := flat_of_preservesFiniteLimits _
def etalePullbackModuleUnderlyingIso :
    etalePullback f R ⋙ etaleModuleUnderlying X R ≅
      etaleModuleUnderlying Y R ⋙ etaleSetPullback f