Documentation

Mathlib.RingTheory.Depth.Basic

The Definition of Depth #

In this file, we give the definition of depth of a module over a local ring. We also establish some basic facts about it using the Rees theorem proven in file Mathlib.RingTheory.Depth.Rees. In this file, R will usually be a noetherian commutative ring, all modules refer to R-module.

Main definition and results #

References #

noncomputable def ModuleCat.depth {R : Type u} [CommRing R] [Small.{v, u} R] (N M : ModuleCat R) :

The depth between two R-modules defined as the minimal nontrivial Ext between them.

Equations
Instances For
    noncomputable def Ideal.depth {R : Type u} [CommRing R] [Small.{v, u} R] (I : Ideal R) (M : ModuleCat R) :

    The depth of an R-module M with respect to an ideal I, defined as depth (R ⧸ I) M.

    Equations
    Instances For
      noncomputable def IsLocalRing.depth {R : Type u} [CommRing R] [Small.{v, u} R] [IsLocalRing R] (M : ModuleCat R) :

      For a local ring R, the depth of an R-module with respect to the maximal ideal.

      Equations
      Instances For
        theorem ModuleCat.depth_eq_depth_of_support_eq {R : Type u} [CommRing R] [Small.{v, u} R] [IsNoetherianRing R] (I : Ideal R) (N M : ModuleCat R) [Module.Finite R ↑M] [Module.Finite R ↑N] [Nontrivial ↑N] (smul_lt : I • ⊤ < ⊤) (hsupp : Module.support R ↑N = PrimeSpectrum.zeroLocus ↑I) :
        N.depth M = I.depth M

        This lemma relates the general depth between two modules and the depth of a module with respect to an ideal, which is used more frequently.

        theorem ModuleCat.depth_eq_of_iso_left {R : Type u} [CommRing R] [Small.{v, u} R] (M : ModuleCat R) {N N' : ModuleCat R} (e : N ≅ N') :
        N.depth M = N'.depth M
        theorem ModuleCat.depth_eq_of_iso_right {R : Type u} [CommRing R] [Small.{v, u} R] (N : ModuleCat R) {M M' : ModuleCat R} (e : M ≅ M') :
        N.depth M = N.depth M'
        theorem Ideal.depth_eq_of_iso {R : Type u} [CommRing R] [Small.{v, u} R] (I : Ideal R) {M M' : ModuleCat R} (e : M ≅ M') :
        I.depth M = I.depth M'
        theorem IsLocalRing.depth_eq_of_iso {R : Type u} [CommRing R] [Small.{v, u} R] [IsLocalRing R] {M M' : ModuleCat R} (e : M ≅ M') :
        theorem ModuleCat.depth_eq_sSup_length_isRegular {R : Type u} [CommRing R] [Small.{v, u} R] [IsNoetherianRing R] (I : Ideal R) (N M : ModuleCat R) [Module.Finite R ↑M] [Module.Finite R ↑N] [Nontrivial ↑N] (smul_lt : I • ⊤ < ⊤) (hsupp : Module.support R ↑N = PrimeSpectrum.zeroLocus ↑I) :
        N.depth M = sSup {x : ℕ∞ | ∃ (rs : List R) (_ : RingTheory.Sequence.IsRegular (↑M) rs) (_ : ∀ r ∈ rs, r ∈ I), ↑rs.length = x}
        theorem Ideal.depth_eq_sSup_length_isRegular {R : Type u} [CommRing R] [Small.{v, u} R] [IsNoetherianRing R] (I : Ideal R) (M : ModuleCat R) [Module.Finite R ↑M] (smul_lt : I • ⊤ < ⊤) :
        I.depth M = sSup {x : ℕ∞ | ∃ (rs : List R) (_ : RingTheory.Sequence.IsRegular (↑M) rs) (_ : ∀ r ∈ rs, r ∈ I), ↑rs.length = x}
        theorem IsLocalRing.ideal_depth_eq_sSup_length_isRegular {R : Type u} [CommRing R] [Small.{v, u} R] [IsLocalRing R] [IsNoetherianRing R] (I : Ideal R) (netop : I ≠ ⊤) (M : ModuleCat R) [Module.Finite R ↑M] [Nontrivial ↑M] :
        I.depth M = sSup {x : ℕ∞ | ∃ (rs : List R) (_ : RingTheory.Sequence.IsRegular (↑M) rs) (_ : ∀ r ∈ rs, r ∈ I), ↑rs.length = x}

        Stacks Tag 00LW

        theorem Ideal.depth_le_depth_of_le {R : Type u} [CommRing R] [Small.{v, u} R] [IsNoetherianRing R] {I J : Ideal R} (h : I ≤ J) (M : ModuleCat R) [Module.Finite R ↑M] (smul_lt : J • ⊤ < ⊤) :
        I.depth M ≤ J.depth M
        theorem IsLocalRing.depth_eq_sSup_length_isRegular {R : Type u} [CommRing R] [Small.{v, u} R] [IsLocalRing R] [IsNoetherianRing R] (M : ModuleCat R) [Module.Finite R ↑M] [Nontrivial ↑M] :
        depth M = sSup {x : ℕ∞ | ∃ (rs : List R) (_ : RingTheory.Sequence.IsRegular (↑M) rs) (_ : ∀ r ∈ rs, r ∈ maximalIdeal R), ↑rs.length = x}
        theorem IsLocalRing.ideal_depth_le_depth {R : Type u} [CommRing R] [Small.{v, u} R] [IsLocalRing R] [IsNoetherianRing R] (I : Ideal R) (netop : I ≠ ⊤) (M : ModuleCat R) [Module.Finite R ↑M] [Nontrivial ↑M] :
        theorem ModuleCat.depth_eq_of_linearEquiv {R : Type u} [CommRing R] [Small.{v, u} R] [Small.{w, u} R] {N M : Type v} {N' M' : Type w} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N] [AddCommGroup M'] [Module R M'] [AddCommGroup N'] [Module R N'] (eN : N ≃ₗ[R] N') (eM : M ≃ₗ[R] M') :
        (↧N).depth ↧M = (↧N').depth ↧M'
        theorem Ideal.depth_eq_of_linearEquiv {R : Type u} [CommRing R] [Small.{v, u} R] [Small.{w, u} R] {M : Type v} {M' : Type w} [AddCommGroup M] [Module R M] [AddCommGroup M'] [Module R M'] (I : Ideal R) (eM : M ≃ₗ[R] M') :
        I.depth ↧M = I.depth ↧M'
        theorem IsLocalRing.depth_eq_of_linearEquiv {R : Type u} [CommRing R] [Small.{v, u} R] [Small.{w, u} R] {M : Type v} {M' : Type w} [AddCommGroup M] [Module R M] [AddCommGroup M'] [Module R M'] [IsLocalRing R] (eM : M ≃ₗ[R] M') :
        depth ↧M = depth ↧M'
        theorem Ideal.depth_shrink {R : Type u} [CommRing R] [Small.{v, u} R] (I : Ideal R) :
        I.depth ↧(Shrink.{v, u} R) = I.depth ↧R