Documentation

Mathlib.RingTheory.Noetherian.Defs

Noetherian rings and modules #

The following are equivalent for a module M over a ring R:

  1. Every increasing chain of submodules M₁ ⊆ M₂ ⊆ M₃ ⊆ ⋯ eventually stabilises.
  2. Every submodule is finitely generated.

A module satisfying these equivalent conditions is said to be a Noetherian R-module. A ring is a Noetherian ring if it is Noetherian as a module over itself.

(Note that we do not assume yet that our rings are commutative, so perhaps this should be called "left-Noetherian". To avoid cumbersome names once we specialize to the commutative case, we don't make this explicit in the declaration names.)

Main definitions #

Let R be a ring and let M and P be R-modules. Let N be an R-submodule of M.

Main statements #

Note that the Hilbert basis theorem, that if a commutative ring R is Noetherian then so is R[X], is proved in RingTheory.Polynomial.

References #

Tags #

Noetherian, noetherian, Noetherian ring, Noetherian module, noetherian ring, noetherian module

class IsNoetherian (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] :

IsNoetherian R M is the proposition that M is a Noetherian R-module, implemented as the predicate that all R-submodules of M are finitely generated.

  • noetherian (s : Submodule R M) : s.FG

    IsNoetherian R M is the proposition that M is a Noetherian R-module, implemented as the predicate that all R-submodules of M are finitely generated.

Instances
    theorem isNoetherian_def {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    IsNoetherian R M ∀ (s : Submodule R M), s.FG

    An R-module is Noetherian iff all its submodules are finitely-generated.

    theorem isNoetherian_submodule {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {N : Submodule R M} :
    IsNoetherian R N sN, s.FG
    theorem isNoetherian_submodule_left {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {N : Submodule R M} :
    IsNoetherian R N ∀ (s : Submodule R M), (Ns).FG
    theorem isNoetherian_submodule_right {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {N : Submodule R M} :
    IsNoetherian R N ∀ (s : Submodule R M), (sN).FG
    instance isNoetherian_submodule' {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsNoetherian R M] (N : Submodule R M) :
    theorem isNoetherian_of_le {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {s t : Submodule R M} [ht : IsNoetherian R t] (h : s t) :
    theorem isNoetherian_iff {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    IsNoetherian R M WellFounded fun (x1 x2 : Submodule R M) => x1 > x2
    theorem IsNoetherian.wf {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    IsNoetherian R MWellFounded fun (x1 x2 : Submodule R M) => x1 > x2

    Alias of the forward direction of isNoetherian_iff.

    theorem IsNoetherian.wellFoundedGT {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :

    Alias of the forward direction of isNoetherian_iff'.

    theorem isNoetherian_mk {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :

    Alias of the reverse direction of isNoetherian_iff'.

    instance wellFoundedGT {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [h : IsNoetherian R M] :
    theorem set_has_maximal_iff_noetherian {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    (∀ (a : Set (Submodule R M)), a.NonemptyM'a, Ia, ¬M' < I) IsNoetherian R M

    A module is Noetherian iff every nonempty set of submodules has a maximal submodule among them.

    theorem monotone_stabilizes_iff_noetherian {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    (∀ (f : →o Submodule R M), ∃ (n : ), ∀ (m : ), n mf n = f m) IsNoetherian R M

    A module is Noetherian iff every increasing chain of submodules stabilizes.

    For an endomorphism of a Noetherian module, any sufficiently large iterate has disjoint kernel and range.

    theorem LinearMap.eventually_iSup_ker_pow_eq {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsNoetherian R M] (f : M →ₗ[R] M) :
    ∀ᶠ (n : ) in Filter.atTop, ⨆ (m : ), ker (f ^ m) = ker (f ^ n)
    @[reducible, inline]
    abbrev IsNoetherianRing (R : Type u_1) [Semiring R] :

    A (semi)ring is Noetherian if it is Noetherian as a module over itself, i.e. all its ideals are finitely generated.

    Equations
    Instances For
      theorem isNoetherianRing_iff_ideal_fg (R : Type u_1) [Semiring R] :
      IsNoetherianRing R ∀ (I : Ideal R), I.FG

      A ring is Noetherian if and only if all its ideals are finitely-generated.