Module

QuasicoherentKernel.lean

Nyll.SchemeTheory.Modules.QuasicoherentKernel
26 declarations indexed from sourceView source ↗

Quasicoherence of kernels over affine schemes

The section functor preserves the actual categorical kernel. Its canonical comparison with the ordinary linear-map kernel commutes with restrictions. Localization of kernels therefore proves quasicoherence, without assuming an identification of the kernel or replacing the kernel by a new object.

This supplies the affine kernel step in Stacks, Tag 01PE.

Imports10
  • Nyll.SchemeTheory.RingTheory.ModuleKernelLocalization
  • Mathlib.AlgebraicGeometry.Modules.Tilde
  • Mathlib.AlgebraicGeometry.Modules.Sheaf
  • Mathlib.Algebra.Category.ModuleCat.Kernels
  • Mathlib.Algebra.Category.ModuleCat.Limits
  • Mathlib.Algebra.Category.ModuleCat.Sheaf.Limits
  • Mathlib.CategoryTheory.Limits.Preserves.Shapes.Kernels
  • Mathlib.CategoryTheory.Limits.Preserves.Finite
  • Mathlib.CategoryTheory.Limits.FunctorCategory.Basic
  • Mathlib.CategoryTheory.Limits.FunctorCategory.Finite
Imported by2

Declarations

AlgebraicGeometry.Scheme.Modules.isLocalizedModule_of_commuting_isos
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem isLocalizedModule_of_commuting_isos
    {R : CommRingCat.{u}} (S : Submonoid R)
    {A B C D : ModuleCat.{u} R} (eA : A ≅ C) (eB : B ≅ D)
    (f : A ⟶ B) (g : C ⟶ D)
    (h : f ≫ eB.hom = eA.hom ≫ g)
    (hg : IsLocalizedModule S g.hom) : IsLocalizedModule S f.hom
AlgebraicGeometry.Scheme.Modules.affineModulePresheaf
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def affineModulePresheaf {R : CommRingCat.{u}} (M : (Spec R).Modules) :
    (Spec R).Opensᵒᵖ ⥤ ModuleCat.{u} R
AlgebraicGeometry.Scheme.Modules.affineModuleMap
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def affineModuleMap {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    (φ : M ⟶ N) : affineModulePresheaf M ⟶ affineModulePresheaf N
AlgebraicGeometry.Scheme.Modules.affineBasicOpen
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def affineBasicOpen (R : CommRingCat.{u}) (r : R) : (Spec R).Opens
AlgebraicGeometry.Scheme.Modules.affineBasicOpenInclusion
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def affineBasicOpenInclusion (R : CommRingCat.{u}) (r : R) :
    affineBasicOpen R r ⟶ (⊤ : (Spec R).Opens)
AlgebraicGeometry.Scheme.Modules.nativeAffineSectionFunctor
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def nativeAffineSectionFunctor (R : CommRingCat.{u}) (U : (Spec R).Opens) :
    (Spec R).Modules ⥤ ModuleCat.{u} R
AlgebraicGeometry.Scheme.Modules.restrictScalars_preservesFiniteLimits_native
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem restrictScalars_preservesFiniteLimits_native
    {A B : Type u} [Ring A] [Ring B] (f : A →+* B) :
    PreservesFiniteLimits (ModuleCat.restrictScalars.{u} f) where
  preservesFiniteLimits _ _ _ :=
    { preservesLimit := fun {D} => ModuleCat.preservesLimit_restrictScalars f D }
AlgebraicGeometry.Scheme.Modules.nativeAffineSectionFunctor_preservesFiniteLimits
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
instance nativeAffineSectionFunctor_preservesFiniteLimits
    (R : CommRingCat.{u}) (U : (Spec R).Opens) :
    PreservesFiniteLimits (nativeAffineSectionFunctor R U)
AlgebraicGeometry.Scheme.Modules.affineSectionFunctor
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
abbrev affineSectionFunctor (R : CommRingCat.{u}) (U : (Spec R).Opens) :
    (Spec R).Modules ⥤ ModuleCat.{u} R where
  obj M := (affineModulePresheaf M).obj (op U)
  map φ := (affineModuleMap φ).app (op U)
  map_id _ := rfl
  map_comp _ _ := rfl
AlgebraicGeometry.Scheme.Modules.nativeAffineSectionFunctorIso
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def nativeAffineSectionFunctorIso
    (R : CommRingCat.{u}) (U : (Spec R).Opens) :
    nativeAffineSectionFunctor R U ≅ affineSectionFunctor R U
AlgebraicGeometry.Scheme.Modules.affineSectionFunctor_preservesFiniteLimits
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
instance affineSectionFunctor_preservesFiniteLimits
    (R : CommRingCat.{u}) (U : (Spec R).Opens) :
    PreservesFiniteLimits (affineSectionFunctor R U)
AlgebraicGeometry.Scheme.Modules.affineSectionFunctor_preservesZeroMorphisms
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
instance affineSectionFunctor_preservesZeroMorphisms
    (R : CommRingCat.{u}) (U : (Spec R).Opens) :
    (affineSectionFunctor R U).PreservesZeroMorphisms where
  map_zero _ _ := rfl
AlgebraicGeometry.Scheme.Modules.sectionKernel
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def sectionKernel {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    (φ : M ⟶ N) (U : (Spec R).Opens) : ModuleCat.{u} R
AlgebraicGeometry.Scheme.Modules.kernelSectionIso
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def kernelSectionIso {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    {φ : M ⟶ N} (c : KernelFork φ) (hc : IsLimit c) (U : (Spec R).Opens) :
    (affineSectionFunctor R U).obj c.pt ≅
      sectionKernel φ U
AlgebraicGeometry.Scheme.Modules.kernelSectionIso_comp_subtype
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
lemma kernelSectionIso_comp_subtype
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    {φ : M ⟶ N} (c : KernelFork φ) (hc : IsLimit c) (U : (Spec R).Opens) :
    (kernelSectionIso c hc U).hom ≫
      ModuleCat.ofHom ((affineSectionFunctor R U).map φ).hom.ker.subtype =
        (affineSectionFunctor R U).map c.ι
AlgebraicGeometry.Scheme.Modules.kernelSectionIso_hom_apply_val
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
lemma kernelSectionIso_hom_apply_val
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    {φ : M ⟶ N} (c : KernelFork φ) (hc : IsLimit c) (U : (Spec R).Opens)
    (x : (affineSectionFunctor R U).obj c.pt) :
    ((kernelSectionIso c hc U).hom.hom x).val =
      ((affineSectionFunctor R U).map c.ι).hom x
AlgebraicGeometry.Scheme.Modules.sectionRestriction_square
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
lemma sectionRestriction_square
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    (φ : M ⟶ N) {U V : (Spec R).Opens} (i : U ⟶ V) :
    ((affineSectionFunctor R U).map φ).hom.comp
        ((affineModulePresheaf M).map i.op).hom =
      ((affineModulePresheaf N).map i.op).hom.comp
        ((affineSectionFunctor R V).map φ).hom
AlgebraicGeometry.Scheme.Modules.sectionKernelRestriction
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
def sectionKernelRestriction
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    (φ : M ⟶ N) {U V : (Spec R).Opens} (i : U ⟶ V) :
    sectionKernel φ V ⟶ sectionKernel φ U
AlgebraicGeometry.Scheme.Modules.kernelSectionIso_restriction
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
lemma kernelSectionIso_restriction
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    {φ : M ⟶ N} (c : KernelFork φ) (hc : IsLimit c) {U V : (Spec R).Opens} (i : U ⟶ V) :
    (affineModulePresheaf c.pt).map i.op ≫ (kernelSectionIso c hc U).hom =
      (kernelSectionIso c hc V).hom ≫ sectionKernelRestriction φ i
AlgebraicGeometry.Scheme.Modules.sectionKernelRestriction_localizes
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem sectionKernelRestriction_localizes
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    (φ : M ⟶ N) {U V : (Spec R).Opens} (i : U ⟶ V) (S : Submonoid R)
    (hM : IsLocalizedModule S ((affineModulePresheaf M).map i.op).hom)
    (hN : IsLocalizedModule S ((affineModulePresheaf N).map i.op).hom) :
    IsLocalizedModule S (sectionKernelRestriction φ i).hom
AlgebraicGeometry.Scheme.Modules.kernelForkRestriction_localizes
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem kernelForkRestriction_localizes
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    {φ : M ⟶ N} (c : KernelFork φ) (hc : IsLimit c)
    {U V : (Spec R).Opens} (i : U ⟶ V) (S : Submonoid R)
    (hM : IsLocalizedModule S ((affineModulePresheaf M).map i.op).hom)
    (hN : IsLocalizedModule S ((affineModulePresheaf N).map i.op).hom) :
    IsLocalizedModule S ((affineModulePresheaf c.pt).map i.op).hom
AlgebraicGeometry.Scheme.Modules.isLocalizing_of_affineModulePresheaf
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem isLocalizing_of_affineModulePresheaf
    {R : CommRingCat.{u}} (M : (Spec R).Modules)
    (h : ∀ r : R, IsLocalizedModule (Submonoid.powers r)
      ((affineModulePresheaf M).map (affineBasicOpenInclusion R r).op).hom) :
    IsLocalizing (modulesSpecToSheaf.obj M)
AlgebraicGeometry.Scheme.Modules.affineModulePresheaf_localizes_of_isLocalizing
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem affineModulePresheaf_localizes_of_isLocalizing
    {R : CommRingCat.{u}} (M : (Spec R).Modules)
    (hM : IsLocalizing (modulesSpecToSheaf.obj M)) (r : R) :
    IsLocalizedModule (Submonoid.powers r)
      ((affineModulePresheaf M).map (affineBasicOpenInclusion R r).op).hom
AlgebraicGeometry.Scheme.Modules.isLocalizing_of_limitKernelFork
Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem isLocalizing_of_limitKernelFork
    {R : CommRingCat.{u}} {M N : (Spec R).Modules} {φ : M ⟶ N}
    (c : KernelFork φ) (hc : IsLimit c)
    (hM : IsLocalizing (modulesSpecToSheaf.obj M))
    (hN : IsLocalizing (modulesSpecToSheaf.obj N)) :
    IsLocalizing (modulesSpecToSheaf.obj c.pt)
AlgebraicGeometry.Scheme.Modules.isLocalizing_kernel_toSpec

Kernels of morphisms between actual localizing modules have localizing sections. Evaluation of the canonical kernel fork supplies the kernel comparison; no sectionwise identification is a premise.

Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem isLocalizing_kernel_toSpec
    {R : CommRingCat.{u}} {M N : (Spec R).Modules} (φ : M ⟶ N)
    (hM : IsLocalizing (modulesSpecToSheaf.obj M))
    (hN : IsLocalizing (modulesSpecToSheaf.obj N)) :
    IsLocalizing (modulesSpecToSheaf.obj (kernel φ))
AlgebraicGeometry.Scheme.Modules.isQuasicoherent_kernel_toSpec

The actual kernel of a morphism between quasicoherent modules on an affine scheme is quasicoherent.

Source context 4 commands

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

noncomputable section
universe u
open CategoryTheory Limits Opposite
namespace AlgebraicGeometry.Scheme.Modules
theorem isQuasicoherent_kernel_toSpec
    {R : CommRingCat.{u}} {M N : (Spec R).Modules}
    [M.IsQuasicoherent] [N.IsQuasicoherent] (φ : M ⟶ N) :
    (kernel φ).IsQuasicoherent