mathlib documentation

ring_theory.​noetherian

ring_theory.​noetherian

Noetherian rings and modules

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

  1. Every increasing chain of submodule 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.

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 ring_theory.polynomial.

References

Tags

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

def submodule.​fg {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] :
submodule R M → Prop

A submodule of M is finitely generated if it is the span of a finite subset of M.

Equations
theorem submodule.​fg_def {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {N : submodule R M} :
N.fg ∃ (S : set M), S.finite submodule.span R S = N

theorem submodule.​exists_sub_one_mem_and_smul_eq_zero_of_fg_of_le_smul {R : Type u_1} [comm_ring R] {M : Type u_2} [add_comm_group M] [module R M] (I : ideal R) (N : submodule R M) :
N.fgN I N(∃ (r : R), r - 1 I ∀ (n : M), n Nr n = 0)

Nakayama's Lemma. Atiyah-Macdonald 2.5, Eisenbud 4.7, Matsumura 2.2, Stacks 00DV

theorem submodule.​fg_bot {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] :

theorem submodule.​fg_sup {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {N₁ N₂ : submodule R M} :
N₁.fgN₂.fg(N₁ N₂).fg

theorem submodule.​fg_map {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {P : Type u_3} [add_comm_group P] [module R P] {f : M →ₗ[R] P} {N : submodule R M} :
N.fg(submodule.map f N).fg

theorem submodule.​fg_prod {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {P : Type u_3} [add_comm_group P] [module R P] {sb : submodule R M} {sc : submodule R P} :
sb.fgsc.fg(sb.prod sc).fg

theorem submodule.​fg_of_fg_map_of_fg_inf_ker {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {P : Type u_3} [add_comm_group P] [module R P] (f : M →ₗ[R] P) {s : submodule R M} :
(submodule.map f s).fg(s f.ker).fg → s.fg

If 0 → M' → M → M'' → 0 is exact and M' and M'' are finitely generated then so is M.

@[class]
structure is_noetherian (R : Type u_1) (M : Type u_2) [ring R] [add_comm_group M] [module R M] :
Prop

is_noetherian 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 is_noetherian_submodule {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {N : submodule R M} :
is_noetherian R N ∀ (s : submodule R M), s N → s.fg

theorem is_noetherian_submodule_left {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {N : submodule R M} :
is_noetherian R N ∀ (s : submodule R M), (N s).fg

theorem is_noetherian_submodule_right {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] {N : submodule R M} :
is_noetherian R N ∀ (s : submodule R M), (s N).fg

theorem is_noetherian_of_surjective {R : Type u_1} (M : Type u_2) {P : Type u_3} [ring R] [add_comm_group M] [add_comm_group P] [module R M] [module R P] (f : M →ₗ[R] P) (hf : f.range = ) [is_noetherian R M] :

theorem is_noetherian_of_linear_equiv {R : Type u_1} {M : Type u_2} {P : Type u_3} [ring R] [add_comm_group M] [add_comm_group P] [module R M] [module R P] (f : M ≃ₗ[R] P) [is_noetherian R M] :

@[instance]
def is_noetherian_prod {R : Type u_1} {M : Type u_2} {P : Type u_3} [ring R] [add_comm_group M] [add_comm_group P] [module R M] [module R P] [is_noetherian R M] [is_noetherian R P] :

Equations
@[instance]
def is_noetherian_pi {R : Type u_1} {ι : Type u_2} {M : ι → Type u_3} [ring R] [Π (i : ι), add_comm_group (M i)] [Π (i : ι), module R (M i)] [fintype ι] [∀ (i : ι), is_noetherian R (M i)] :
is_noetherian R (Π (i : ι), M i)

Equations
theorem is_noetherian_iff_well_founded {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] :

theorem well_founded_submodule_gt (R : Type u_1) (M : Type u_2) [ring R] [add_comm_group M] [module R M] [is_noetherian R M] :

theorem finite_of_linear_independent {R : Type u_1} {M : Type u_2} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [is_noetherian R M] {s : set M} :

@[class]
def is_noetherian_ring (R : Type u_1) [ring R] :
Prop

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

Equations
Instances
@[instance]
def ring.​is_noetherian_of_fintype (R : Type u_1) (M : Type u_2) [fintype M] [ring R] [add_comm_group M] [module R M] :

Equations
  • _ = _
theorem ring.​is_noetherian_of_zero_eq_one {R : Type u_1} [ring R] :

theorem is_noetherian_of_submodule_of_noetherian (R : Type u_1) (M : Type u_2) [ring R] [add_comm_group M] [module R M] (N : submodule R M) :

theorem is_noetherian_of_quotient_of_noetherian (R : Type u_1) [ring R] (M : Type u_2) [add_comm_group M] [module R M] (N : submodule R M) :

theorem is_noetherian_of_fg_of_noetherian {R : Type u_1} {M : Type u_2} [ring R] [add_comm_group M] [module R M] (N : submodule R M) [is_noetherian_ring R] :

theorem is_noetherian_span_of_finite (R : Type u_1) {M : Type u_2} [ring R] [add_comm_group M] [module R M] [is_noetherian_ring R] {A : set M} :

In a module over a noetherian ring, the submodule generated by finitely many vectors is noetherian.

theorem is_noetherian_ring_of_surjective (R : Type u_1) [comm_ring R] (S : Type u_2) [comm_ring S] (f : R →+* S) (hf : function.surjective f) [H : is_noetherian_ring R] :

@[instance]
def is_noetherian_ring_range {R : Type u_1} [comm_ring R] {S : Type u_2} [comm_ring S] (f : R →+* S) [is_noetherian_ring R] :

Equations
  • _ = _
theorem is_noetherian_ring_of_ring_equiv (R : Type u_1) [comm_ring R] {S : Type u_2} [comm_ring S] (f : R ≃+* S) [is_noetherian_ring R] :

theorem is_noetherian_ring.​well_founded_dvd_not_unit {R : Type u_1} [integral_domain R] [is_noetherian_ring R] :
well_founded (λ (a b : R), a 0 ∃ (x : R), ¬is_unit x b = a * x)

theorem is_noetherian_ring.​exists_irreducible_factor {R : Type u_1} [integral_domain R] [is_noetherian_ring R] {a : R} :
¬is_unit aa 0(∃ (i : R), irreducible i i a)

theorem is_noetherian_ring.​irreducible_induction_on {R : Type u_1} [integral_domain R] [is_noetherian_ring R] {P : R → Prop} (a : R) :
P 0(∀ (u : R), is_unit uP u)(∀ (a i : R), a 0irreducible iP aP (i * a))P a

theorem is_noetherian_ring.​exists_factors {R : Type u_1} [integral_domain R] [is_noetherian_ring R] (a : R) :
a 0(∃ (f : multiset R), (∀ (b : R), b firreducible b) associated a f.prod)

theorem submodule.​fg_mul {R : Type u_1} {A : Type u_2} [comm_ring R] [ring A] [algebra R A] (M N : submodule R A) :
M.fgN.fg(M * N).fg

theorem submodule.​fg_pow {R : Type u_1} {A : Type u_2} [comm_ring R] [ring A] [algebra R A] (M : submodule R A) (h : M.fg) (n : ) :
(M ^ n).fg