Module

IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.lean

Nyll.AlgebraicCurves.Foundations.CommutativeAlgebra.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
23 declarations indexed from sourceView source ↗

Is Regular Local Ring span Finrank ker add ring Krull Dim eq

Imports7
Imported by2

Declarations

AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.cotImage

The span in the cotangent space of elements of the ideal lying in the maximal ideal.

Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
def cotImage (K : Ideal A) : Submodule (ResidueField A) (CotangentSpace A)
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.toCotangent_mem_cotImage
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem toCotangent_mem_cotImage {K : Ideal A} (m : ↥(maximalIdeal A)) (hm : (m : A) ∈ K) :
    (maximalIdeal A).toCotangent m ∈ cotImage K
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.cotImage_mono
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem cotImage_mono {K K' : Ideal A} (h : K ≤ K') : cotImage K ≤ cotImage K'
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.residue_smul_eq
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem residue_smul_eq (c : A) (w : CotangentSpace A) : (residue A c) • w = c • w
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.exists_eq_toCotangent_of_mem_cotImage
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem exists_eq_toCotangent_of_mem_cotImage {K : Ideal A} {w : CotangentSpace A} (hw : w ∈
  cotImage K) :
    ∃ m : ↥(maximalIdeal A), (m : A) ∈ K ∧ (maximalIdeal A).toCotangent m = w
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.cotSpan

The span of the images of the chosen maximal-ideal elements in the cotangent space.

Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
def cotSpan {ι : Type*} (z : ι → ↥(maximalIdeal A)) : Submodule (ResidueField A) (CotangentSpace A)
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.idealSpan

The ideal generated by the chosen family of maximal-ideal elements.

Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
def idealSpan {ι : Type*} (z : ι → ↥(maximalIdeal A)) : Ideal A
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.idealSpan_le
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem idealSpan_le {ι : Type*} (z : ι → ↥(maximalIdeal A)) : idealSpan z ≤ maximalIdeal A
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.exists_eq_toCotangent_of_mem_cotSpan
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem exists_eq_toCotangent_of_mem_cotSpan {ι : Type*} {z : ι → ↥(maximalIdeal A)} {u :
  CotangentSpace A}
    (hu : u ∈ cotSpan z) :
    ∃ y : ↥(maximalIdeal A), (y : A) ∈ idealSpan z ∧ (maximalIdeal A).toCotangent y = u
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.cotSpan_sup_cotImage_eq_top
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem cotSpan_sup_cotImage_eq_top {ι : Type*} (z : ι → ↥(maximalIdeal A)) (K : Ideal A)
    (h : maximalIdeal A ≤ idealSpan z ⊔ K) : cotSpan z ⊔ cotImage K = ⊤
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.le_idealSpan_sup_of_cotSpan_sup_cotImage_eq_top
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section CotImage
variable {A : Type*} [CommRing A] [IsLocalRing A]
theorem le_idealSpan_sup_of_cotSpan_sup_cotImage_eq_top [IsNoetherianRing A] {ι : Type*}
    (z : ι → ↥(maximalIdeal A)) (K : Ideal A) (h : cotSpan z ⊔ cotImage K = ⊤) :
    maximalIdeal A ≤ idealSpan z ⊔ K
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.spanFinrank_span_finset_le
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Helpers
variable {R : Type*} [CommRing R]
theorem spanFinrank_span_finset_le {M : Type*} [AddCommGroup M] [Module R M] (s : Finset M) :
    (Submodule.span R (s : Set M)).spanFinrank ≤ s.card
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.spanFinrank_span_range_le
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Helpers
variable {R : Type*} [CommRing R]
theorem spanFinrank_span_range_le {M : Type*} [AddCommGroup M] [Module R M] {n : ℕ} (v : Fin n → M)
  :
    (Submodule.span R (Set.range v)).spanFinrank ≤ n
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.ringKrullDim_eq_natCast_iff
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Helpers
variable {R : Type*} [CommRing R]
theorem ringKrullDim_eq_natCast_iff [IsLocalRing R] (n : ℕ) :
    ringKrullDim R = n ↔ (maximalIdeal R).height = n
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.ringKrullDim_le_natCast_iff
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Helpers
variable {R : Type*} [CommRing R]
theorem ringKrullDim_le_natCast_iff [IsLocalRing R] (n : ℕ) :
    ringKrullDim R ≤ n ↔ (maximalIdeal R).height ≤ n
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.natCast_le_ringKrullDim_iff
Source context 8 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Helpers
variable {R : Type*} [CommRing R]
theorem natCast_le_ringKrullDim_iff [IsLocalRing R] (n : ℕ) :
    (n : WithBot ℕ∞) ≤ ringKrullDim R ↔ (n : ℕ∞) ≤ (maximalIdeal R).height
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.mem_maximalIdeal_of_map_mem
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Surjection
variable {A C : Type*} [CommRing A] [IsLocalRing A] [IsNoetherianRing A] [CommRing C] [IsLocalRing
  C]
  (g : A →+* C) (hg : Function.Surjective g)
include hg
omit [IsNoetherianRing A] hg in
theorem mem_maximalIdeal_of_map_mem {a : A} (ha : g a ∈ maximalIdeal C) : a ∈ maximalIdeal A
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.maximalIdeal_le_idealSpan_sup_ker
Source context 10 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Surjection
variable {A C : Type*} [CommRing A] [IsLocalRing A] [IsNoetherianRing A] [CommRing C] [IsLocalRing
  C]
  (g : A →+* C) (hg : Function.Surjective g)
include hg
omit [IsNoetherianRing A] in
theorem maximalIdeal_le_idealSpan_sup_ker {ι : Type*} (z : ι → ↥(maximalIdeal A))
    (h : maximalIdeal C ≤ Ideal.span (Set.range fun i => g (z i))) :
    maximalIdeal A ≤ idealSpan z ⊔ RingHom.ker g := by
  intro m hm
  have hgm : g m ∈ maximalIdeal C := by
    rw [← map_maximalIdeal_of_surjective g hg]; exact Ideal.mem_map_of_mem g hm
  have hspan : Ideal.span (Set.range fun i => g (z i)) = Ideal.map g (idealSpan z) := by
    rw [idealSpan, Ideal.map_span, ← Set.range_comp]; rfl
  have := h hgm
  rw [hspan, Ideal.mem_map_iff_of_surjective g hg] at this
  obtain ⟨y, hy, hgy⟩ := this
  have : m = y + (m - y) := by ring
  rw [this]
  refine Submodule.add_mem_sup hy ?_
  rw [RingHom.mem_ker, map_sub, hgy, sub_self]
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.finrank_quotient_cotImage_le
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Surjection
variable {A C : Type*} [CommRing A] [IsLocalRing A] [IsNoetherianRing A] [CommRing C] [IsLocalRing
  C]
  (g : A →+* C) (hg : Function.Surjective g)
include hg
theorem finrank_quotient_cotImage_le :
    Module.finrank (ResidueField A) (CotangentSpace A ⧸ cotImage (RingHom.ker g)) ≤
      (maximalIdeal C).spanFinrank
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.spanFinrank_maximalIdeal_le_finrank_quotient_cotImage
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Surjection
variable {A C : Type*} [CommRing A] [IsLocalRing A] [IsNoetherianRing A] [CommRing C] [IsLocalRing
  C]
  (g : A →+* C) (hg : Function.Surjective g)
include hg
theorem spanFinrank_maximalIdeal_le_finrank_quotient_cotImage :
    (maximalIdeal C).spanFinrank ≤
      Module.finrank (ResidueField A) (CotangentSpace A ⧸ cotImage (RingHom.ker g))
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.spanFinrank_maximalIdeal_eq_finrank_quotient_cotImage
Source context 9 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Surjection
variable {A C : Type*} [CommRing A] [IsLocalRing A] [IsNoetherianRing A] [CommRing C] [IsLocalRing
  C]
  (g : A →+* C) (hg : Function.Surjective g)
include hg
theorem spanFinrank_maximalIdeal_eq_finrank_quotient_cotImage :
    (maximalIdeal C).spanFinrank =
      Module.finrank (ResidueField A) (CotangentSpace A ⧸ cotImage (RingHom.ker g))
AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs.IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq.RSMU.main
Source context 7 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
noncomputable section
namespace RSMU
section Main
theorem main {A B : Type*} [CommRing A] [CommRing B] [IsRegularLocalRing A] [IsRegularLocalRing B]
    (f : A →+* B) (hf : Function.Surjective f) :
    ((RingHom.ker f).spanFinrank : WithBot ℕ∞) + ringKrullDim B = ringKrullDim A
IsRegularLocalRing.spanFinrank_ker_add_ringKrullDim_eq
Source context 4 commands

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

section ProofImplementation
namespace AlgebraicCurves.Foundations.CommutativeAlgebra.Proofs
namespace IsRegularLocalRing_spanFinrank_ker_add_ringKrullDim_eq
open IsLocalRing
theorem _root_.IsRegularLocalRing.spanFinrank_ker_add_ringKrullDim_eq
    {A B : Type*} [CommRing A] [CommRing B] [IsRegularLocalRing A] [IsRegularLocalRing B]
    (f : A →+* B) (hf : Function.Surjective f) :
    ((RingHom.ker f).spanFinrank : WithBot ℕ∞) + ringKrullDim B = ringKrullDim A