Module

LocalizationAtPrime.lean

Nyll.SchemeTheory.RingTheory.AdicCompletion.LocalizationAtPrime
18 declarations indexed from sourceView source ↗

Adic completion commutes with localization at a maximal ideal

For a maximal ideal Q of a commutative ring S, localization at Q identifies every finite quotient S ⧸ Q ^ n with the corresponding quotient of Localization.AtPrime Q by the n-th power of its maximal ideal. We prove that these finite-level equivalences commute with the power transition maps and lift them to an equivalence of adic completions.

Imports3
  • Mathlib.RingTheory.AdicCompletion.Algebra
  • Mathlib.RingTheory.Ideal.Quotient.Operations
  • Mathlib.RingTheory.Localization.AtPrime.Basic
Imported by2

Declarations

EtaleFundamentalGroups.localizationAtPrimeQuotientPowEquiv_factorPow

The finite-level localization equivalences commute with the transition maps between powers of the maximal ideals.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem localizationAtPrimeQuotientPowEquiv_factorPow
    {m n : ℕ} (hmn : m ≤ n) (x : S ⧸ Q ^ n) :
    Ideal.Quotient.factorPow m_Q hmn
        (IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q n x) =
      IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q m
        (Ideal.Quotient.factorPow Q hmn x)
EtaleFundamentalGroups.localizationAtPrimeQuotientPowEquiv_symm_factorPow

Naturality of the inverse finite-level localization equivalences.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem localizationAtPrimeQuotientPowEquiv_symm_factorPow
    {m n : ℕ} (hmn : m ≤ n) (x : S_Q ⧸ m_Q ^ n) :
    Ideal.Quotient.factorPow Q hmn
        ((IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q n).symm x) =
      (IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q m).symm
        (Ideal.Quotient.factorPow m_Q hmn x)
EtaleFundamentalGroups.factorPow_evalₐ
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem factorPow_evalₐ
    {R : Type*} [CommRing R] (I : Ideal R)
    {m n : ℕ} (hmn : m ≤ n) (x : AdicCompletion I R) :
    Ideal.Quotient.factorPow I hmn (AdicCompletion.evalₐ I n x) =
      AdicCompletion.evalₐ I m x
EtaleFundamentalGroups.completionToAtPrimeQuotientRingHom
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
def completionToAtPrimeQuotientRingHom (n : ℕ) :
    AdicCompletion Q S →+* S_Q ⧸ m_Q ^ n
EtaleFundamentalGroups.completionToAtPrimeQuotientRingHom_compatible
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem completionToAtPrimeQuotientRingHom_compatible :
    ∀ {m n : ℕ} (hmn : m ≤ n),
      (Ideal.Quotient.factorPow m_Q hmn).comp
          (completionToAtPrimeQuotientRingHom Q n) =
        completionToAtPrimeQuotientRingHom Q m
EtaleFundamentalGroups.completionToAtPrimeRingHom
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
def completionToAtPrimeRingHom :
    AdicCompletion Q S →+* AdicCompletion m_Q S_Q
EtaleFundamentalGroups.evalₐ_completionToAtPrimeRingHom
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem evalₐ_completionToAtPrimeRingHom
    (n : ℕ) (x : AdicCompletion Q S) :
    AdicCompletion.evalₐ m_Q n (completionToAtPrimeRingHom Q x) =
      IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q n
        (AdicCompletion.evalₐ Q n x)
EtaleFundamentalGroups.atPrimeCompletionToQuotientRingHom
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
def atPrimeCompletionToQuotientRingHom (n : ℕ) :
    AdicCompletion m_Q S_Q →+* S ⧸ Q ^ n
EtaleFundamentalGroups.atPrimeCompletionToQuotientRingHom_compatible
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem atPrimeCompletionToQuotientRingHom_compatible :
    ∀ {m n : ℕ} (hmn : m ≤ n),
      (Ideal.Quotient.factorPow Q hmn).comp
          (atPrimeCompletionToQuotientRingHom Q n) =
        atPrimeCompletionToQuotientRingHom Q m
EtaleFundamentalGroups.completionFromAtPrimeRingHom
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
def completionFromAtPrimeRingHom :
    AdicCompletion m_Q S_Q →+* AdicCompletion Q S
EtaleFundamentalGroups.evalₐ_completionFromAtPrimeRingHom
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem evalₐ_completionFromAtPrimeRingHom
    (n : ℕ) (x : AdicCompletion m_Q S_Q) :
    AdicCompletion.evalₐ Q n (completionFromAtPrimeRingHom Q x) =
      (IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q n).symm
        (AdicCompletion.evalₐ m_Q n x)
EtaleFundamentalGroups.completionToAtPrime_comp_fromAtPrime
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem completionToAtPrime_comp_fromAtPrime :
    (completionToAtPrimeRingHom Q).comp (completionFromAtPrimeRingHom Q) =
      RingHom.id (AdicCompletion m_Q S_Q)
EtaleFundamentalGroups.completionFromAtPrime_comp_toAtPrime
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem completionFromAtPrime_comp_toAtPrime :
    (completionFromAtPrimeRingHom Q).comp (completionToAtPrimeRingHom Q) =
      RingHom.id (AdicCompletion Q S)
EtaleFundamentalGroups.adicCompletionLocalizationAtPrimeRingEquiv

Completion at a maximal ideal is canonically equivalent, as a ring, to completion of its localization at the local maximal ideal.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
def adicCompletionLocalizationAtPrimeRingEquiv :
    AdicCompletion Q S ≃+* AdicCompletion m_Q S_Q
EtaleFundamentalGroups.evalₐ_adicCompletionLocalizationAtPrimeRingEquiv
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem evalₐ_adicCompletionLocalizationAtPrimeRingEquiv
    (n : ℕ) (x : AdicCompletion Q S) :
    AdicCompletion.evalₐ m_Q n
        (adicCompletionLocalizationAtPrimeRingEquiv Q x) =
      IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q n
        (AdicCompletion.evalₐ Q n x)
EtaleFundamentalGroups.evalₐ_adicCompletionLocalizationAtPrimeRingEquiv_symm
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem evalₐ_adicCompletionLocalizationAtPrimeRingEquiv_symm
    (n : ℕ) (x : AdicCompletion m_Q S_Q) :
    AdicCompletion.evalₐ Q n
        ((adicCompletionLocalizationAtPrimeRingEquiv Q).symm x) =
      (IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q n).symm
        (AdicCompletion.evalₐ m_Q n x)
EtaleFundamentalGroups.adicCompletionLocalizationAtPrimeAlgEquiv

The canonical algebra equivalence over S: completion at Q agrees with completion of Localization.AtPrime Q at its maximal ideal.

Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
def adicCompletionLocalizationAtPrimeAlgEquiv :
    AdicCompletion Q S ≃ₐ[S] AdicCompletion m_Q S_Q
EtaleFundamentalGroups.evalₐ_adicCompletionLocalizationAtPrimeAlgEquiv
Source context 8 commands

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

noncomputable section
namespace EtaleFundamentalGroups
universe uS
variable {S : Type uS} [CommRing S]
section AtPrime
variable (Q : Ideal S) [Q.IsMaximal]
local notation "S_Q" => Localization.AtPrime Q
local notation "m_Q" => IsLocalRing.maximalIdeal S_Q
theorem evalₐ_adicCompletionLocalizationAtPrimeAlgEquiv
    (n : ℕ) (x : AdicCompletion Q S) :
    AdicCompletion.evalₐ m_Q n
        (adicCompletionLocalizationAtPrimeAlgEquiv Q x) =
      IsLocalization.AtPrime.equivQuotMaximalIdealPow Q S_Q n
        (AdicCompletion.evalₐ Q n x)