Documentation

Mathlib.RingTheory.Artinian.Module

Artinian rings and modules #

A module satisfying these equivalent conditions is said to be an Artinian R-module if every decreasing chain of submodules is eventually constant, or equivalently, if the relation < on submodules is well founded.

A ring is said to be left (or right) Artinian if it is Artinian as a left (or right) module over itself, or simply Artinian if it is both left and right Artinian.

Main definitions #

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

Main results #

References #

Tags #

Artinian, artinian, Artinian ring, Artinian module, artinian ring, artinian module

@[reducible, inline]
abbrev IsArtinian (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] :

IsArtinian R M is the proposition that M is an Artinian R-module, implemented as the well-foundedness of submodule inclusion.

Instances For
    theorem isArtinian_iff (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] :
    IsArtinian R M โ†” WellFounded fun (x1 x2 : Submodule R M) => x1 < x2
    theorem LinearMap.isArtinian_iff_of_bijective {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {S : Type u_5} {P : Type u_6} [Semiring S] [AddCommMonoid P] [Module S P] {ฯƒ : R โ†’+* S} [RingHomSurjective ฯƒ] (l : M โ†’โ‚›โ‚—[ฯƒ] P) (hl : Function.Bijective โ‡‘l) :
    IsArtinian R M โ†” IsArtinian S P
    theorem isArtinian_of_injective {R : Type u_1} {M : Type u_2} {P : Type u_3} [Semiring R] [AddCommMonoid M] [AddCommMonoid P] [Module R M] [Module R P] (f : M โ†’โ‚—[R] P) (h : Function.Injective โ‡‘f) [IsArtinian R P] :
    instance isArtinian_submodule' {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (N : Submodule R M) :
    IsArtinian R โ†ฅN
    theorem isArtinian_of_le {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {s t : Submodule R M} [IsArtinian R โ†ฅt] (h : s โ‰ค t) :
    IsArtinian R โ†ฅs
    theorem isArtinian_of_surjective {R : Type u_1} (M : Type u_2) {P : Type u_3} [Semiring R] [AddCommMonoid M] [AddCommMonoid P] [Module R M] [Module R P] (f : M โ†’โ‚—[R] P) (hf : Function.Surjective โ‡‘f) [IsArtinian R M] :
    theorem isArtinian_of_surjective_algebraMap {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] {S : Type u_5} [CommSemiring S] [Algebra S R] [Module S M] [IsArtinian R M] [IsScalarTower S R M] (H : Function.Surjective โ‡‘(algebraMap S R)) :

    If M is an Artinian R module, and S is an R-algebra with a surjective algebra map, then M is an Artinian S module.

    instance isArtinian_range {R : Type u_1} {M : Type u_2} {P : Type u_3} [Semiring R] [AddCommMonoid M] [AddCommMonoid P] [Module R M] [Module R P] (f : M โ†’โ‚—[R] P) [IsArtinian R M] :
    IsArtinian R โ†ฅf.range
    theorem isArtinian_of_linearEquiv {R : Type u_1} {M : Type u_2} {P : Type u_3} [Semiring R] [AddCommMonoid M] [AddCommMonoid P] [Module R M] [Module R P] (f : M โ‰ƒโ‚—[R] P) [IsArtinian R M] :
    theorem LinearEquiv.isArtinian_iff {R : Type u_1} {M : Type u_2} {P : Type u_3} [Semiring R] [AddCommMonoid M] [AddCommMonoid P] [Module R M] [Module R P] (f : M โ‰ƒโ‚—[R] P) :
    IsArtinian R M โ†” IsArtinian R P
    theorem IsArtinian.finite_of_linearIndependent {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [Nontrivial R] [h : IsArtinian R M] {s : Set M} (hs : LinearIndependent R Subtype.val) :
    theorem set_has_minimal_iff_artinian {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    (โˆ€ (a : Set (Submodule R M)), a.Nonempty โ†’ โˆƒ M' โˆˆ a, โˆ€ I โˆˆ a, ยฌI < M') โ†” IsArtinian R M

    A module is Artinian iff every nonempty set of submodules has a minimal submodule among them.

    theorem IsArtinian.set_has_minimal {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (a : Set (Submodule R M)) (ha : a.Nonempty) :
    โˆƒ M' โˆˆ a, โˆ€ I โˆˆ a, ยฌI < M'
    theorem monotone_stabilizes_iff_artinian {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] :
    (โˆ€ (f : โ„• โ†’o (Submodule R M)แต’แตˆ), โˆƒ (n : โ„•), โˆ€ (m : โ„•), n โ‰ค m โ†’ f n = f m) โ†” IsArtinian R M

    A module is Artinian iff every decreasing chain of submodules stabilizes.

    theorem IsArtinian.monotone_stabilizes {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (f : โ„• โ†’o (Submodule R M)แต’แตˆ) :
    โˆƒ (n : โ„•), โˆ€ (m : โ„•), n โ‰ค m โ†’ f n = f m
    theorem IsArtinian.induction {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] {P : Submodule R M โ†’ Prop} (hgt : โˆ€ (I : Submodule R M), (โˆ€ J < I, P J) โ†’ P I) (I : Submodule R M) :
    P I

    If โˆ€ I > J, P I implies P J, then P holds for all submodules.

    theorem IsArtinian.surjective_of_injective_endomorphism {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (f : M โ†’โ‚—[R] M) (s : Function.Injective โ‡‘f) :
    Function.Surjective โ‡‘f

    Any injective endomorphism of an Artinian module is surjective.

    theorem IsArtinian.bijective_of_injective_endomorphism {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (f : M โ†’โ‚—[R] M) (s : Function.Injective โ‡‘f) :

    Any injective endomorphism of an Artinian module is bijective.

    theorem IsArtinian.disjoint_partial_infs_eventually_top {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (f : โ„• โ†’ Submodule R M) (h : โˆ€ (n : โ„•), Disjoint ((partialSups (โ‡‘OrderDual.toDual โˆ˜ f)) n) (OrderDual.toDual (f (n + 1)))) :
    โˆƒ (n : โ„•), โˆ€ (m : โ„•), n โ‰ค m โ†’ f m = โŠค

    A sequence f of submodules of an Artinian module, with the supremum f (n+1) and the infimum of f 0, ..., f n being โŠค, is eventually โŠค.

    theorem IsArtinian.subsingleton_of_injective {R : Type u_1} {P : Type u_3} {N : Type u_4} [Semiring R] [AddCommMonoid P] [AddCommMonoid N] [Module R P] [Module R N] [IsArtinian R N] {f : P ร— N โ†’โ‚—[R] N} (inj : Function.Injective โ‡‘f) :
    Subsingleton P
    theorem LinearMap.eventually_iInf_range_pow_eq {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (f : Module.End R M) :
    โˆ€แถ  (n : โ„•) in Filter.atTop, โจ… (m : โ„•), (f ^ m).range = (f ^ n).range
    theorem isArtinian_of_range_eq_ker {R : Type u_1} {M : Type u_2} {P : Type u_3} {N : Type u_4} [Ring R] [AddCommGroup M] [AddCommGroup P] [AddCommGroup N] [Module R M] [Module R P] [Module R N] [IsArtinian R M] [IsArtinian R P] (f : M โ†’โ‚—[R] N) (g : N โ†’โ‚—[R] P) (h : f.range = g.ker) :
    theorem isArtinian_iff_submodule_quotient {R : Type u_1} {P : Type u_3} [Ring R] [AddCommGroup P] [Module R P] (S : Submodule R P) :
    IsArtinian R P โ†” IsArtinian R โ†ฅS โˆง IsArtinian R (P โงธ S)
    instance isArtinian_prod {R : Type u_1} {M : Type u_2} {P : Type u_3} [Ring R] [AddCommGroup M] [AddCommGroup P] [Module R M] [Module R P] [IsArtinian R M] [IsArtinian R P] :
    IsArtinian R (M ร— P)
    instance isArtinian_sup {R : Type u_1} {P : Type u_3} [Ring R] [AddCommGroup P] [Module R P] (Mโ‚ Mโ‚‚ : Submodule R P) [IsArtinian R โ†ฅMโ‚] [IsArtinian R โ†ฅMโ‚‚] :
    IsArtinian R โ†ฅ(Mโ‚ โŠ” Mโ‚‚)
    instance isArtinian_pi {R : Type u_1} [Ring R] {ฮน : Type u_5} [Finite ฮน] {M : ฮน โ†’ Type u_6} [(i : ฮน) โ†’ AddCommGroup (M i)] [(i : ฮน) โ†’ Module R (M i)] [โˆ€ (i : ฮน), IsArtinian R (M i)] :
    IsArtinian R ((i : ฮน) โ†’ M i)
    instance isArtinian_pi' {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {ฮน : Type u_5} [Finite ฮน] [IsArtinian R M] :
    IsArtinian R (ฮน โ†’ M)

    A version of isArtinian_pi for non-dependent functions. We need this instance because sometimes Lean fails to apply the dependent version in non-dependent settings (e.g., it fails to prove that ฮน โ†’ โ„ is finite dimensional over โ„).

    instance isArtinian_finsupp {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] {ฮน : Type u_5} [Finite ฮน] [IsArtinian R M] :
    instance isArtinian_iSup {R : Type u_1} {P : Type u_3} [Ring R] [AddCommGroup P] [Module R P] {ฮน : Type u_5} [Finite ฮน] {M : ฮน โ†’ Submodule R P} [โˆ€ (i : ฮน), IsArtinian R โ†ฅ(M i)] :
    IsArtinian R โ†ฅ(โจ† (i : ฮน), M i)
    theorem LinearMap.eventually_codisjoint_ker_pow_range_pow {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] [IsArtinian R M] (f : Module.End R M) :
    โˆ€แถ  (n : โ„•) in Filter.atTop, Codisjoint (f ^ n).ker (f ^ n).range

    For any endomorphism of an Artinian module, any sufficiently high iterate has codisjoint kernel and range.

    theorem LinearMap.eventually_isCompl_ker_pow_range_pow {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] [IsArtinian R M] [IsNoetherian R M] (f : Module.End R M) :
    โˆ€แถ  (n : โ„•) in Filter.atTop, IsCompl (f ^ n).ker (f ^ n).range

    This is the Fitting decomposition of the module M with respect to the endomorphism f.

    See also LinearMap.isCompl_iSup_ker_pow_iInf_range_pow for an alternative spelling.

    theorem LinearMap.isCompl_iSup_ker_pow_iInf_range_pow {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] [IsArtinian R M] [IsNoetherian R M] (f : M โ†’โ‚—[R] M) :
    IsCompl (โจ† (n : โ„•), (f ^ n).ker) (โจ… (n : โ„•), (f ^ n).range)

    This is the Fitting decomposition of the module M with respect to the endomorphism f.

    See also LinearMap.eventually_isCompl_ker_pow_range_pow for an alternative spelling.

    theorem IsArtinian.range_smul_pow_stabilizes {R : Type u_1} (M : Type u_2) [CommSemiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (r : R) :
    โˆƒ (n : โ„•), โˆ€ (m : โ„•), n โ‰ค m โ†’ (r ^ n โ€ข LinearMap.id).range = (r ^ m โ€ข LinearMap.id).range
    theorem IsArtinian.exists_pow_succ_smul_dvd {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommMonoid M] [Module R M] [IsArtinian R M] (r : R) (x : M) :
    โˆƒ (n : โ„•) (y : M), r ^ n.succ โ€ข y = r ^ n โ€ข x
    theorem isArtinian_of_submodule_of_artinian (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] (N : Submodule R M) :
    IsArtinian R M โ†’ IsArtinian R โ†ฅN
    theorem isArtinian_of_tower (R : Type u_1) {S : Type u_2} {M : Type u_3} [Semiring R] [Semiring S] [AddCommMonoid M] [SMul R S] [Module S M] [Module R M] [IsScalarTower R S M] (h : IsArtinian R M) :

    If M / S / R is a scalar tower, and M / R is Artinian, then M / S is also Artinian.

    @[reducible, inline]
    abbrev IsArtinianRing (R : Type u_1) [Semiring R] :

    A ring is Artinian if it is Artinian as a module over itself.

    Strictly speaking, this should be called IsLeftArtinianRing but we omit the Left for convenience in the commutative case. For a right Artinian ring, use IsArtinian Rแตแต’แต– R.

    For equivalent definitions, see Mathlib/RingTheory/Artinian/Ring.lean.

    Instances For
      theorem isArtinian_of_fg_of_artinian {R : Type u_1} {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) [IsArtinianRing R] (hN : N.FG) :
      IsArtinian R โ†ฅN
      instance instIsNoetherianRingMatrix (n : Type u_1) (R : Type u_2) [Fintype n] [DecidableEq n] [Ring R] [IsNoetherianRing R] :
      instance instIsArtinianRingMatrix (n : Type u_1) (R : Type u_2) [Fintype n] [DecidableEq n] [Ring R] [IsArtinianRing R] :
      theorem isArtinian_span_of_finite (R : Type u_1) {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] [IsArtinianRing R] {A : Set M} (hA : A.Finite) :
      IsArtinian R โ†ฅ(Submodule.span R A)

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

      theorem Function.Surjective.isArtinianRing {R : Type u_1} [Semiring R] {S : Type u_2} [Semiring S] {F : Type u_3} [FunLike F R S] [RingHomClass F R S] {f : F} (hf : Surjective โ‡‘f) [H : IsArtinianRing R] :
      instance isArtinianRing_range {R : Type u_1} [Ring R] {S : Type u_2} [Ring S] (f : R โ†’+* S) [IsArtinianRing R] :
      instance instIsArtinianRingForallOfFinite {ฮน : Type u_2} [Finite ฮน] {R : ฮน โ†’ Type u_1} [(i : ฮน) โ†’ Semiring (R i)] [โˆ€ (i : ฮน), IsArtinianRing (R i)] :
      IsArtinianRing ((i : ฮน) โ†’ R i)
      theorem IsArtinianRing.isUnit_of_mem_nonZeroDivisors {R : Type u_1} [Ring R] [IsArtinianRing R] {a : R} (ha : a โˆˆ nonZeroDivisors R) :

      If an element of an Artinian ring is not a zero divisor then it is a unit.

      theorem IsArtinianRing.isUnit_iff_mem_nonZeroDivisors {R : Type u_1} [Ring R] [IsArtinianRing R] {a : R} :
      IsUnit a โ†” a โˆˆ nonZeroDivisors R

      In an Artinian ring, an element is a unit iff it is a non-zero-divisor. See also isUnit_iff_mem_nonZeroDivisors_of_finite.

      theorem IsArtinianRing.mem_minimalPrimes {R : Type u_1} [CommRing R] [IsArtinianRing R] {I p : Ideal R} [hp : p.IsPrime] (hIp : I โ‰ค p) :
      p โˆˆ I.minimalPrimes

      The prime spectrum is in bijection with the maximal spectrum.

      Instances For
        @[implicit_reducible]

        A temporary field instance on the quotients by maximal ideals.

        Instances For

          The quotient of a commutative Artinian ring by its nilradical is isomorphic to a finite product of fields, namely the quotients by the maximal ideals.

          Instances For
            noncomputable def IsArtinianRing.equivPi (R : Type u_1) [CommRing R] [IsArtinianRing R] [IsReduced R] :

            A reduced commutative Artinian ring is isomorphic to a finite product of fields, namely the quotients by the maximal ideals.

            Instances For