Module

MaximalAdicCompletionModuleGluingData.lean

Nyll.EtaleFundamentalGroups.Purity.Local.MaximalAdicCompletionModuleGluingData
33 declarations indexed from sourceView source ↗

Module data for maximal-adic formal gluing

This file packages the degree-zero Cech diagram used in formal gluing. A datum has one completion module, one module on every principal chart, common completion/chart overlap modules, and common chart/chart overlap modules. Its global sections are the simultaneous equalizer of all restriction maps.

For the standard datum attached to an R-module M, the completion chart is Rhat tensor M, the principal charts are the localized modules M_f, and the overlap maps are the canonical localization maps. The mixed equalizer theorem identifies the resulting global-sections module with M.

Declarations

EtaleFundamentalGroups.ModuleFormalGluingDatum

A degree-zero module gluing diagram. Besides the completion/principal overlaps, it records every principal/principal overlap; equality of the two maps to these latter objects is the punctured Cech cocycle condition.

Source context 5 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
structure ModuleFormalGluingDatum
    (R : Type u) [CommRing R] (ι : Type v) where
  /-- The module on the completion chart. -/
  completion : ModuleCat.{w} R
  /-- The module on each principal chart. -/
  principal : ι → ModuleCat.{w} R
  /-- The common module on each completion/principal overlap. -/
  completionLocalOverlap : ι → ModuleCat.{w} R
  /-- The common module on each ordered pair of principal charts. -/
  principalOverlap : ι → ι → ModuleCat.{w} R
  /-- Restriction from the completion chart to each common overlap. -/
  completionRestriction :
    (i : ι) → completion ⟶ completionLocalOverlap i
  /-- Restriction from each principal chart to its completion overlap. -/
  localToCompletionOverlap :
    (i : ι) → principal i ⟶ completionLocalOverlap i
  /-- Restriction from the first principal chart to a pairwise overlap. -/
  localRestrictionLeft :
    (i j : ι) → principal i ⟶ principalOverlap i j
  /-- Restriction from the second principal chart to a pairwise overlap. -/
  localRestrictionRight :
    (i j : ι) → principal j ⟶ principalOverlap i j
EtaleFundamentalGroups.ModuleFormalGluingDatum.Source

The completion component together with all principal-chart components.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
abbrev Source
EtaleFundamentalGroups.ModuleFormalGluingDatum.CompletionLocalTarget

The completion/principal overlap components.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
abbrev CompletionLocalTarget
EtaleFundamentalGroups.ModuleFormalGluingDatum.PuncturedCechTarget

The degree-one Cech components for the punctured principal cover.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
abbrev PuncturedCechTarget
EtaleFundamentalGroups.ModuleFormalGluingDatum.Target

All overlap components in the formal-gluing diagram.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
abbrev Target
EtaleFundamentalGroups.ModuleFormalGluingDatum.completionLocalLeft

Restrict the completion component to every completion/principal overlap.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def completionLocalLeft :
    D.Source →ₗ[R] D.CompletionLocalTarget
EtaleFundamentalGroups.ModuleFormalGluingDatum.completionLocalRight

Restrict each principal component to its completion/principal overlap.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def completionLocalRight :
    D.Source →ₗ[R] D.CompletionLocalTarget
EtaleFundamentalGroups.ModuleFormalGluingDatum.puncturedCechLeft

The first restriction of every ordered pair of principal components.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def puncturedCechLeft :
    ((i : ι) → D.principal i) →ₗ[R] D.PuncturedCechTarget
EtaleFundamentalGroups.ModuleFormalGluingDatum.puncturedCechRight

The second restriction of every ordered pair of principal components.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def puncturedCechRight :
    ((i : ι) → D.principal i) →ₗ[R] D.PuncturedCechTarget
EtaleFundamentalGroups.ModuleFormalGluingDatum.PuncturedCechSections

Local tuples satisfying all pairwise Cech cocycle equations.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
abbrev PuncturedCechSections
EtaleFundamentalGroups.ModuleFormalGluingDatum.left

The first map of the simultaneous formal-gluing equalizer.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def left : D.Source →ₗ[R] D.Target
EtaleFundamentalGroups.ModuleFormalGluingDatum.right

The second map of the simultaneous formal-gluing equalizer.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def right : D.Source →ₗ[R] D.Target
EtaleFundamentalGroups.ModuleFormalGluingDatum.Sections

The H^0 module of a formal-gluing datum.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
abbrev Sections
EtaleFundamentalGroups.ModuleFormalGluingDatum.mem_sections_iff

Membership in H^0 is exactly completion/local compatibility together with the punctured Cech cocycle condition.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
theorem mem_sections_iff (x : D.Source) :
    x ∈ D.Sections ↔
      D.completionLocalLeft x = D.completionLocalRight x ∧
        D.puncturedCechLeft x.2 = D.puncturedCechRight x.2
EtaleFundamentalGroups.ModuleFormalGluingDatum.sectionsToPuncturedCech

Forget the completion component of a global section and retain its punctured Cech section.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def sectionsToPuncturedCech :
    D.Sections →ₗ[R] D.PuncturedCechSections
EtaleFundamentalGroups.ModuleFormalGluingDatum.completionProjection

The canonical map from global sections to the completion component.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def completionProjection : D.Sections →ₗ[R] D.completion
EtaleFundamentalGroups.ModuleFormalGluingDatum.localProjection

The canonical map from global sections to a principal component.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
def localProjection (i : ι) : D.Sections →ₗ[R] D.principal i
EtaleFundamentalGroups.ModuleFormalGluingDatum.completionProjection_apply
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
theorem completionProjection_apply (x : D.Sections) :
    D.completionProjection x = x.1.1
EtaleFundamentalGroups.ModuleFormalGluingDatum.localProjection_apply
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
namespace ModuleFormalGluingDatum
variable {R : Type u} [CommRing R] {ι : Type v}
variable (D : ModuleFormalGluingDatum.{u, v, w} R ι)
theorem localProjection_apply (x : D.Sections) (i : ι) :
    D.localProjection i x = x.1.2 i
EtaleFundamentalGroups.GluingRhat
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
abbrev GluingRhat
EtaleFundamentalGroups.GluingGeneratorIndex
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
abbrev GluingGeneratorIndex
EtaleFundamentalGroups.gluingGenerator
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
abbrev gluingGenerator (i : GluingGeneratorIndex R) : R
EtaleFundamentalGroups.GluingPowers
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
abbrev GluingPowers (i : GluingGeneratorIndex R) : Submonoid R
EtaleFundamentalGroups.maximalAdicCompletionStandardModuleGluingDatum

The standard formal-gluing datum attached to an R-module.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
def maximalAdicCompletionStandardModuleGluingDatum :
    ModuleFormalGluingDatum R (GluingGeneratorIndex R) where
  completion := ModuleCat.of R (GluingRhat R ⊗[R] M)
  principal i := ModuleCat.of R (LocalizedModule (GluingPowers R i) M)
  completionLocalOverlap i :=
    ModuleCat.of R
      (LocalizedModule (GluingPowers R i) (GluingRhat R ⊗[R] M))
  principalOverlap i j :=
    ModuleCat.of R
      (LocalizedModule (GluingPowers R j)
        (LocalizedModule (GluingPowers R i) M))
  completionRestriction i := ModuleCat.ofHom <|
    LocalizedModule.mkLinearMap
      (GluingPowers R i) (GluingRhat R ⊗[R] M)
  localToCompletionOverlap i := ModuleCat.ofHom <|
    IsLocalizedModule.map (GluingPowers R i)
      (LocalizedModule.mkLinearMap (GluingPowers R i) M)
      (LocalizedModule.mkLinearMap
        (GluingPowers R i) (GluingRhat R ⊗[R] M))
      (TensorProduct.mk R (GluingRhat R) M 1)
  localRestrictionLeft i j := ModuleCat.ofHom <|
    LocalizedModule.mkLinearMap (GluingPowers R j)
      (LocalizedModule (GluingPowers R i) M)
  localRestrictionRight i j := ModuleCat.ofHom <|
    IsLocalizedModule.map (GluingPowers R j)
      (LocalizedModule.mkLinearMap (GluingPowers R j) M)
      (LocalizedModule.mkLinearMap (GluingPowers R j)
        (LocalizedModule (GluingPowers R i) M))
      (LocalizedModule.mkLinearMap (GluingPowers R i) M)
EtaleFundamentalGroups.StandardGluingDatum
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
abbrev StandardGluingDatum
EtaleFundamentalGroups.maximalAdicCompletionStandardModuleGluingMap

The canonical completion/localization tuple is a section of the standard formal-gluing datum.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
def maximalAdicCompletionStandardModuleGluingMap :
    M →ₗ[R] (StandardGluingDatum R M).Sections
EtaleFundamentalGroups.maximalAdicCompletionStandardModuleGluingMap_completion
Source context 9 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
omit [IsNoetherianRing R] in
theorem maximalAdicCompletionStandardModuleGluingMap_completion (m : M) :
    (maximalAdicCompletionStandardModuleGluingMap R M m).1.1 =
      1 ⊗ₜ[R] m
EtaleFundamentalGroups.maximalAdicCompletionStandardModuleGluingMap_localization
Source context 9 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
omit [IsNoetherianRing R] in
theorem maximalAdicCompletionStandardModuleGluingMap_localization
    (m : M) (i : GluingGeneratorIndex R) :
    (maximalAdicCompletionStandardModuleGluingMap R M m).1.2 i =
      LocalizedModule.mk m 1
EtaleFundamentalGroups.maximalAdicCompletionStandardPuncturedCechMap

The canonical punctured Cech section associated to an R-module element. This is the degree-zero source used before the completion component is imposed.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
def maximalAdicCompletionStandardPuncturedCechMap :
    M →ₗ[R] (StandardGluingDatum R M).PuncturedCechSections
EtaleFundamentalGroups.maximalAdicCompletionStandardPuncturedCechMap_apply
Source context 9 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
omit [IsNoetherianRing R] in
theorem maximalAdicCompletionStandardPuncturedCechMap_apply
    (m : M) :
    (maximalAdicCompletionStandardPuncturedCechMap R M m).1 =
      fun i ↦ LocalizedModule.mkLinearMap (GluingPowers R i) M m :=
  rfl
EtaleFundamentalGroups.exists_pow_annihilates_of_standardPuncturedCechMap_eq_zero

The kernel of restriction to the punctured Cech diagram is maximal-ideal-power torsion.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
theorem exists_pow_annihilates_of_standardPuncturedCechMap_eq_zero
    (m : M)
    (hm : maximalAdicCompletionStandardPuncturedCechMap R M m = 0) :
    ∃ n : ℕ, ∀ r : ((maximalIdeal R) ^ n : Ideal R), r.1 • m = 0
EtaleFundamentalGroups.maximalAdicCompletionStandardModuleGluingSectionsEquiv

The H^0 of the standard completion/principal Cech datum is the original module. This is the object-level source for formal-gluing effectivity; comparison with arbitrary datum components is handled separately.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
def maximalAdicCompletionStandardModuleGluingSectionsEquiv :
    M ≃ₗ[R] (StandardGluingDatum R M).Sections
EtaleFundamentalGroups.maximalAdicCompletionStandardModuleGluingSectionsEquiv_apply
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
open IsLocalRing
open scoped TensorProduct
universe u v w
section MaximalAdic
variable (R : Type u) [CommRing R] [IsLocalRing R] [IsNoetherianRing R]
variable (M : Type w) [AddCommGroup M] [Module R M]
theorem maximalAdicCompletionStandardModuleGluingSectionsEquiv_apply
    (m : M) :
    maximalAdicCompletionStandardModuleGluingSectionsEquiv R M m =
      maximalAdicCompletionStandardModuleGluingMap R M m