Module

AdicCompletionLocalRing.lean

Nyll.AlgebraicCurves.Foundations.CommutativeAlgebra.AdicCompletionLocalRing
27 declarations indexed from sourceView source ↗

Adic Completion Local Ring

Imports5
  • Mathlib.RingTheory.AdicCompletion.Completeness
  • Mathlib.RingTheory.AdicCompletion.LocalRing
  • Mathlib.RingTheory.LocalRing.MaximalIdeal.Basic
  • Mathlib.RingTheory.Ideal.Quotient.Operations
  • Mathlib.RingTheory.Noetherian.Defs
Imported by3

Declarations

AdicCompletion.evalₐ_algebraMap
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Kernel
variable (I : Ideal A)
theorem evalₐ_algebraMap (n : ℕ) (a : A) :
    evalₐ I n (algebraMap A (AdicCompletion I A) a) = Ideal.Quotient.mk _ a
AdicCompletion.mem_ker_evalₐ_iff
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Kernel
variable (I : Ideal A)
theorem mem_ker_evalₐ_iff (n : ℕ) (x : AdicCompletion I A) :
    x ∈ RingHom.ker (evalₐ I n) ↔ x ∈ LinearMap.ker (eval I A n)
AdicCompletion.ker_evalₐ_eq_map_pow
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Kernel
variable (I : Ideal A)
theorem ker_evalₐ_eq_map_pow (hI : I.FG) (n : ℕ) :
    RingHom.ker (evalₐ I n) = (I ^ n).map (algebraMap A (AdicCompletion I A))
AdicCompletion.exists_eq_algebraMap_add
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Kernel
variable (I : Ideal A)
theorem exists_eq_algebraMap_add (hI : I.FG) (n : ℕ) (x : AdicCompletion I A) :
    ∃ a : A, ∃ y ∈ (I ^ n).map (algebraMap A (AdicCompletion I A)),
      x = algebraMap A (AdicCompletion I A) a + y
AdicCompletion.isUnit_one_add_of_mem_map
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Kernel
variable (I : Ideal A)
theorem isUnit_one_add_of_mem_map (hI : I.FG) {x : AdicCompletion I A}
    (hx : x ∈ I.map (algebraMap A (AdicCompletion I A))) : IsUnit (1 + x)
AdicCompletion.isUnit_add_of_mem_map
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Kernel
variable (I : Ideal A)
theorem isUnit_add_of_mem_map (hI : I.FG) {u x : AdicCompletion I A} (hu : IsUnit u)
    (hx : x ∈ I.map (algebraMap A (AdicCompletion I A))) : IsUnit (u + x)
AdicCompletion.isUnit_of_isUnit_algebraMap
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
theorem isUnit_of_isUnit_algebraMap {a : A}
    (h : IsUnit (algebraMap A (AdicCompletion (maximalIdeal A) A) a)) : IsUnit a
AdicCompletion.isUnit_one_add_of_mem_map_maximalIdeal
Source context 5 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
theorem isUnit_one_add_of_mem_map_maximalIdeal (h𝔪 : (maximalIdeal A).FG)
    {x : AdicCompletion (maximalIdeal A) A}
    (hx : x ∈ (maximalIdeal A).map (algebraMap A (AdicCompletion (maximalIdeal A) A))) :
    IsUnit (1 + x)
AdicCompletion.maximalIdeal_fg
Source context 6 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
theorem maximalIdeal_fg : (maximalIdeal A).FG
AdicCompletion.instIsLocalRingMaximalIdeal
Source context 6 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
instance instIsLocalRingMaximalIdeal : IsLocalRing (AdicCompletion (maximalIdeal A) A)
AdicCompletion.maximalIdeal_pow_eq_ker_evalₐ
Source context 6 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
theorem maximalIdeal_pow_eq_ker_evalₐ (n : ℕ) :
    maximalIdeal (AdicCompletion (maximalIdeal A) A) ^ n = RingHom.ker (evalₐ (maximalIdeal A) n)
AdicCompletion.maximalIdeal_eq_ker_evalₐ_one
Source context 6 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
theorem maximalIdeal_eq_ker_evalₐ_one :
    maximalIdeal (AdicCompletion (maximalIdeal A) A) = RingHom.ker (evalₐ (maximalIdeal A) 1)
AdicCompletion.mem_maximalIdeal_iff
Source context 6 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
theorem mem_maximalIdeal_iff (x : AdicCompletion (maximalIdeal A) A) :
    x ∈ maximalIdeal (AdicCompletion (maximalIdeal A) A) ↔ evalₐ (maximalIdeal A) 1 x = 0
AdicCompletion.quotientMaximalIdealPowAlgHom

The map from the completion modulo a maximal-ideal power to the corresponding quotient of the ring.

Source context 8 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
section Scalars
variable (k : Type*) [CommRing k] [Algebra k A]
def quotientMaximalIdealPowAlgHom (n : ℕ) :
    (AdicCompletion (maximalIdeal A) A ⧸ maximalIdeal (AdicCompletion (maximalIdeal A) A) ^ n)
      →ₐ[k] A ⧸ maximalIdeal A ^ n
AdicCompletion.quotientMaximalIdealPowAlgHom_mk
Source context 8 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
section Scalars
variable (k : Type*) [CommRing k] [Algebra k A]
theorem quotientMaximalIdealPowAlgHom_mk (n : ℕ) (x : AdicCompletion (maximalIdeal A) A) :
    quotientMaximalIdealPowAlgHom k n (Ideal.Quotient.mk _ x) = evalₐ (maximalIdeal A) n x
AdicCompletion.quotientMaximalIdealPowAlgHom_bijective
Source context 8 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
section Scalars
variable (k : Type*) [CommRing k] [Algebra k A]
theorem quotientMaximalIdealPowAlgHom_bijective (n : ℕ) :
    Function.Bijective (quotientMaximalIdealPowAlgHom (A := A) k n)
AdicCompletion.quotientMaximalIdealPowAlgEquiv

The equivalence between the completion and the original ring modulo the same maximal-ideal power.

Source context 8 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
section Scalars
variable (k : Type*) [CommRing k] [Algebra k A]
def quotientMaximalIdealPowAlgEquiv (n : ℕ) :
    (AdicCompletion (maximalIdeal A) A ⧸ maximalIdeal (AdicCompletion (maximalIdeal A) A) ^ n)
      ≃ₐ[k] A ⧸ maximalIdeal A ^ n
AdicCompletion.quotientMaximalIdealPowAlgEquiv_mk
Source context 8 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
section Scalars
variable (k : Type*) [CommRing k] [Algebra k A]
theorem quotientMaximalIdealPowAlgEquiv_mk (n : ℕ) (x : AdicCompletion (maximalIdeal A) A) :
    quotientMaximalIdealPowAlgEquiv k n (Ideal.Quotient.mk _ x) = evalₐ (maximalIdeal A) n x
AdicCompletion.quotientMaximalIdealPowAlgEquiv_mk_algebraMap
Source context 8 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Local
variable [IsLocalRing A]
variable [IsNoetherianRing A]
section Scalars
variable (k : Type*) [CommRing k] [Algebra k A]
theorem quotientMaximalIdealPowAlgEquiv_mk_algebraMap (n : ℕ) (a : A) :
    quotientMaximalIdealPowAlgEquiv k n (Ideal.Quotient.mk _ (algebraMap A _ a))
      = Ideal.Quotient.mk _ a
AdicCompletion.isUnit_algEquiv_iff
Source context 8 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
omit [IsNoetherianRing A] [IsLocalRing B] in
theorem isUnit_algEquiv_iff (x : AdicCompletion (maximalIdeal A) A) : IsUnit (Φ x) ↔ IsUnit x
AdicCompletion.comap_maximalIdeal_algEquiv
Source context 7 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
theorem comap_maximalIdeal_algEquiv :
    (maximalIdeal B).comap (Φ : AdicCompletion (maximalIdeal A) A →+* B)
      = maximalIdeal (AdicCompletion (maximalIdeal A) A)
AdicCompletion.map_maximalIdeal_algEquiv
Source context 7 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
theorem map_maximalIdeal_algEquiv :
    (maximalIdeal (AdicCompletion (maximalIdeal A) A)).map
        (Φ : AdicCompletion (maximalIdeal A) A →+* B) = maximalIdeal B
AdicCompletion.maximalIdeal_eq_map_algEquiv
Source context 7 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
theorem maximalIdeal_eq_map_algEquiv :
    maximalIdeal B = (maximalIdeal A).map
      ((Φ : AdicCompletion (maximalIdeal A) A →+* B).comp
        (algebraMap A (AdicCompletion (maximalIdeal A) A)))
AdicCompletion.maximalIdeal_pow_eq_map_algEquiv
Source context 7 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
theorem maximalIdeal_pow_eq_map_algEquiv (n : ℕ) :
    maximalIdeal B ^ n = (maximalIdeal A ^ n).map
      ((Φ : AdicCompletion (maximalIdeal A) A →+* B).comp
        (algebraMap A (AdicCompletion (maximalIdeal A) A)))
AdicCompletion.algEquiv_algebraMap_mem_maximalIdeal
Source context 7 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
theorem algEquiv_algebraMap_mem_maximalIdeal {a : A} (ha : a ∈ maximalIdeal A) :
    Φ (algebraMap A _ a) ∈ maximalIdeal B
AdicCompletion.quotientMaximalIdealPowAlgEquivOfAlgEquiv

The quotient equivalence induced by an algebra equivalence with the maximal-ideal completion.

Source context 7 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
def quotientMaximalIdealPowAlgEquivOfAlgEquiv (n : ℕ) :
    (B ⧸ maximalIdeal B ^ n) ≃ₐ[k] A ⧸ maximalIdeal A ^ n
AdicCompletion.quotientMaximalIdealPowAlgEquivOfAlgEquiv_mk
Source context 7 commands

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

open IsLocalRing
namespace AdicCompletion
variable {A : Type*} [CommRing A]
section Transport
variable [IsLocalRing A] [IsNoetherianRing A]
variable {k : Type*} [CommRing k] [Algebra k A] {B : Type*} [CommRing B] [IsLocalRing B] [Algebra k
  B]
variable (Φ : AdicCompletion (maximalIdeal A) A ≃ₐ[k] B)
theorem quotientMaximalIdealPowAlgEquivOfAlgEquiv_mk (n : ℕ) (a : A) :
    quotientMaximalIdealPowAlgEquivOfAlgEquiv Φ n (Ideal.Quotient.mk _ (Φ (algebraMap A _ a)))
      = Ideal.Quotient.mk _ a