Documentation

Mathlib.RingTheory.Regular.RegularSequence

Regular sequences and weakly regular sequences #

The notion of a regular sequence is fundamental in commutative algebra. Properties of regular sequences encode information about singularities of a ring and regularity of a sequence can be tested homologically. However the notion of a regular sequence is only really sensible for Noetherian local rings.

TODO: Koszul regular sequences, H_1-regular sequences, quasi-regular sequences, depth.

Tags #

module, regular element, regular sequence, commutative algebra

@[reducible, inline]
abbrev Ideal.ofList {R : Type u_1} [Semiring R] (rs : List R) :

The ideal generated by a list of elements.

Instances For
    @[simp]
    theorem Ideal.ofList_append {R : Type u_1} [Semiring R] (rsโ‚ rsโ‚‚ : List R) :
    ofList (rsโ‚ ++ rsโ‚‚) = ofList rsโ‚ โŠ” ofList rsโ‚‚
    theorem Ideal.ofList_singleton {R : Type u_1} [Semiring R] (r : R) :
    ofList [r] = span {r}
    @[simp]
    theorem Ideal.ofList_cons {R : Type u_1} [Semiring R] (r : R) (rs : List R) :
    ofList (r :: rs) = span {r} โŠ” ofList rs
    @[simp]
    theorem Ideal.map_ofList {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (f : R โ†’+* S) (rs : List R) :
    map f (ofList rs) = ofList (List.map (โ‡‘f) rs)
    theorem Ideal.ofList_cons_smul {R : Type u_7} [CommSemiring R] (r : R) (rs : List R) {M : Type u_8} [AddCommMonoid M] [Module R M] (N : Submodule R M) :
    ofList (r :: rs) โ€ข N = r โ€ข N โŠ” ofList rs โ€ข N
    def Submodule.quotOfListConsSMulTopEquivQuotSMulTopInner {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (r : R) (rs : List R) :

    The equivalence between M โงธ (rโ‚€, rโ‚, โ€ฆ, rโ‚™)M and (M โงธ rโ‚€M) โงธ (rโ‚, โ€ฆ, rโ‚™) (M โงธ rโ‚€M).

    Instances For
      def Submodule.quotOfListConsSMulTopEquivQuotSMulTopOuter {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (r : R) (rs : List R) :

      The equivalence between M โงธ (rโ‚€, rโ‚, โ€ฆ, rโ‚™)M and (M โงธ (rโ‚, โ€ฆ, rโ‚™)) โงธ rโ‚€ (M โงธ (rโ‚, โ€ฆ, rโ‚™)).

      Instances For
        theorem Submodule.quotOfListConsSMulTopEquivQuotSMulTopInner_naturality {R : Type u_1} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module R Mโ‚‚] (r : R) (rs : List R) (f : M โ†’โ‚—[R] Mโ‚‚) :
        โ†‘(quotOfListConsSMulTopEquivQuotSMulTopInner Mโ‚‚ r rs) โˆ˜โ‚— (Ideal.ofList (r :: rs) โ€ข โŠค).mapQ (Ideal.ofList (r :: rs) โ€ข โŠค) f โ‹ฏ = (Ideal.ofList rs โ€ข โŠค).mapQ (Ideal.ofList rs โ€ข โŠค) ((QuotSMulTop.map r) f) โ‹ฏ โˆ˜โ‚— โ†‘(quotOfListConsSMulTopEquivQuotSMulTopInner M r rs)
        theorem Submodule.top_eq_ofList_cons_smul_iff {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] (r : R) (rs : List R) :
        โŠค = Ideal.ofList (r :: rs) โ€ข โŠค โ†” โŠค = Ideal.ofList rs โ€ข โŠค
        structure RingTheory.Sequence.IsWeaklyRegular {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (rs : List R) :

        A sequence [rโ‚, โ€ฆ, rโ‚™] is weakly regular on M iff rแตข is regular on Mโงธ(rโ‚, โ€ฆ, rแตขโ‚‹โ‚)M for all 1 โ‰ค i โ‰ค n.

        Instances For
          theorem RingTheory.Sequence.isWeaklyRegular_iff {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (rs : List R) :
          IsWeaklyRegular M rs โ†” โˆ€ (i : โ„•) (h : i < rs.length), IsSMulRegular (M โงธ Ideal.ofList (List.take i rs) โ€ข โŠค) rs[i]
          theorem RingTheory.Sequence.isWeaklyRegular_iff_Fin {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (rs : List R) :
          IsWeaklyRegular M rs โ†” โˆ€ (i : Fin rs.length), IsSMulRegular (M โงธ Ideal.ofList (List.take (โ†‘i) rs) โ€ข โŠค) rs[i]
          structure RingTheory.Sequence.IsRegular {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (rs : List R) extends RingTheory.Sequence.IsWeaklyRegular M rs :

          A weakly regular sequence rs on M is regular if also M/rsM โ‰  0.

          Instances For
            theorem RingTheory.Sequence.isRegular_iff {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (rs : List R) :
            IsRegular M rs โ†” IsWeaklyRegular M rs โˆง โŠค โ‰  Ideal.ofList rs โ€ข โŠค
            theorem AddEquiv.isWeaklyRegular_congr {R : Type u_1} {S : Type u_2} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [CommRing S] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module S Mโ‚‚] {e : M โ‰ƒ+ Mโ‚‚} {as : List R} {bs : List S} (h : List.Forallโ‚‚ (fun (r : R) (s : S) => โˆ€ (x : M), e (r โ€ข x) = s โ€ข e x) as bs) :
            theorem LinearEquiv.isWeaklyRegular_congr' {R : Type u_1} {S : Type u_2} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [CommRing S] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module S Mโ‚‚] {ฯƒ : R โ†’+* S} {ฯƒ' : S โ†’+* R} [RingHomInvPair ฯƒ ฯƒ'] [RingHomInvPair ฯƒ' ฯƒ] (e : M โ‰ƒโ‚›โ‚—[ฯƒ] Mโ‚‚) (rs : List R) :
            RingTheory.Sequence.IsWeaklyRegular M rs โ†” RingTheory.Sequence.IsWeaklyRegular Mโ‚‚ (List.map (โ‡‘ฯƒ) rs)
            theorem LinearEquiv.isWeaklyRegular_congr {R : Type u_1} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module R Mโ‚‚] (e : M โ‰ƒโ‚—[R] Mโ‚‚) (rs : List R) :
            theorem AddEquiv.isRegular_congr {R : Type u_1} {S : Type u_2} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [CommRing S] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module S Mโ‚‚] {e : M โ‰ƒ+ Mโ‚‚} {as : List R} {bs : List S} (h : List.Forallโ‚‚ (fun (r : R) (s : S) => โˆ€ (x : M), e (r โ€ข x) = s โ€ข e x) as bs) :
            theorem LinearEquiv.isRegular_congr' {R : Type u_1} {S : Type u_2} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [CommRing S] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module S Mโ‚‚] {ฯƒ : R โ†’+* S} {ฯƒ' : S โ†’+* R} [RingHomInvPair ฯƒ ฯƒ'] [RingHomInvPair ฯƒ' ฯƒ] (e : M โ‰ƒโ‚›โ‚—[ฯƒ] Mโ‚‚) (rs : List R) :
            RingTheory.Sequence.IsRegular M rs โ†” RingTheory.Sequence.IsRegular Mโ‚‚ (List.map (โ‡‘ฯƒ) rs)
            theorem LinearEquiv.isRegular_congr {R : Type u_1} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module R Mโ‚‚] (e : M โ‰ƒโ‚—[R] Mโ‚‚) (rs : List R) :
            theorem RingTheory.Sequence.isWeaklyRegular_map_algebraMap_iff {R : Type u_1} (S : Type u_2) (M : Type u_3) [CommRing R] [CommRing S] [Algebra R S] [AddCommGroup M] [Module R M] [Module S M] [IsScalarTower R S M] (rs : List R) :
            IsWeaklyRegular M (List.map (โ‡‘(algebraMap R S)) rs) โ†” IsWeaklyRegular M rs
            @[simp]
            theorem RingTheory.Sequence.isWeaklyRegular_cons_iff {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (r : R) (rs : List R) :
            IsWeaklyRegular M (r :: rs) โ†” IsSMulRegular M r โˆง IsWeaklyRegular (QuotSMulTop r M) rs
            theorem RingTheory.Sequence.isWeaklyRegular_cons_iff' {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (r : R) (rs : List R) :
            IsWeaklyRegular M (r :: rs) โ†” IsSMulRegular M r โˆง IsWeaklyRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs)
            @[simp]
            theorem RingTheory.Sequence.isRegular_cons_iff {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (r : R) (rs : List R) :
            IsRegular M (r :: rs) โ†” IsSMulRegular M r โˆง IsRegular (QuotSMulTop r M) rs
            theorem RingTheory.Sequence.isRegular_cons_iff' {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (r : R) (rs : List R) :
            IsRegular M (r :: rs) โ†” IsSMulRegular M r โˆง IsRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs)
            theorem RingTheory.Sequence.IsWeaklyRegular.cons {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {r : R} {rs : List R} (h1 : IsSMulRegular M r) (h2 : IsWeaklyRegular (QuotSMulTop r M) rs) :
            IsWeaklyRegular M (r :: rs)
            theorem RingTheory.Sequence.IsWeaklyRegular.cons' {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {r : R} {rs : List R} (h1 : IsSMulRegular M r) (h2 : IsWeaklyRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs)) :
            IsWeaklyRegular M (r :: rs)
            def RingTheory.Sequence.IsWeaklyRegular.recIterModByRegular {R : Type u_1} [CommRing R] {motive : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ (rs : List R) โ†’ IsWeaklyRegular M rs โ†’ Sort u_7} (nil : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ motive M [] โ‹ฏ) (cons : {M : Type v} โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ (h1 : IsSMulRegular M r) โ†’ (h2 : IsWeaklyRegular (QuotSMulTop r M) rs) โ†’ motive (QuotSMulTop r M) rs h2 โ†’ motive M (r :: rs) โ‹ฏ) {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} (h : IsWeaklyRegular M rs) :
            motive M rs h

            Weakly regular sequences can be inductively characterized by:

            • The empty sequence is weakly regular on any module.
            • If r is regular on M and rs is a weakly regular sequence on MโงธrM then the sequence obtained from rs by prepending r is weakly regular on M.

            This is the induction principle produced by the inductive definition above. The motive will usually be valued in Prop, but Sort* works too.

            Instances For
              def RingTheory.Sequence.IsWeaklyRegular.ndrecIterModByRegular {R : Type u_1} [CommRing R] {motive : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [Module R M] โ†’ List R โ†’ Sort u_7} (nil : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ motive M []) (cons : {M : Type v} โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ IsSMulRegular M r โ†’ IsWeaklyRegular (QuotSMulTop r M) rs โ†’ motive (QuotSMulTop r M) rs โ†’ motive M (r :: rs)) {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} :
              IsWeaklyRegular M rs โ†’ motive M rs

              A simplified version of IsWeaklyRegular.recIterModByRegular where the motive is not allowed to depend on the proof of IsWeaklyRegular.

              Instances For
                @[irreducible]
                def RingTheory.Sequence.IsWeaklyRegular.recIterModByRegularWithRing {motive : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ (rs : List R) โ†’ IsWeaklyRegular M rs โ†’ Sort u_7} (nil : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ motive R M [] โ‹ฏ) (cons : {R : Type u} โ†’ [inst : CommRing R] โ†’ {M : Type v} โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ (h1 : IsSMulRegular M r) โ†’ (h2 : IsWeaklyRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs)) โ†’ motive (R โงธ Ideal.span {r}) (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs) h2 โ†’ motive R M (r :: rs) โ‹ฏ) {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} (h : IsWeaklyRegular M rs) :
                motive R M rs h

                An alternate induction principle from IsWeaklyRegular.recIterModByRegular where we mod out by successive elements in both the module and the base ring. This is useful for propagating certain properties of the initial M, e.g. faithfulness or freeness, throughout the induction.

                Instances For
                  def RingTheory.Sequence.IsWeaklyRegular.ndrecWithRing {motive : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [Module R M] โ†’ List R โ†’ Sort u_7} (nil : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ motive R M []) (cons : {R : Type u} โ†’ [inst : CommRing R] โ†’ {M : Type v} โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ IsSMulRegular M r โ†’ IsWeaklyRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs) โ†’ motive (R โงธ Ideal.span {r}) (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs) โ†’ motive R M (r :: rs)) {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} :
                  IsWeaklyRegular M rs โ†’ motive R M rs

                  A simplified version of IsWeaklyRegular.recIterModByRegularWithRing where the motive is not allowed to depend on the proof of IsWeaklyRegular.

                  Instances For
                    theorem RingTheory.Sequence.isWeaklyRegular_append_iff {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (rsโ‚ rsโ‚‚ : List R) :
                    IsWeaklyRegular M (rsโ‚ ++ rsโ‚‚) โ†” IsWeaklyRegular M rsโ‚ โˆง IsWeaklyRegular (M โงธ Ideal.ofList rsโ‚ โ€ข โŠค) rsโ‚‚
                    theorem RingTheory.Sequence.isWeaklyRegular_append_iff' {R : Type u_1} (M : Type u_3) [CommRing R] [AddCommGroup M] [Module R M] (rsโ‚ rsโ‚‚ : List R) :
                    IsWeaklyRegular M (rsโ‚ ++ rsโ‚‚) โ†” IsWeaklyRegular M rsโ‚ โˆง IsWeaklyRegular (M โงธ Ideal.ofList rsโ‚ โ€ข โŠค) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.ofList rsโ‚))) rsโ‚‚)
                    theorem RingTheory.Sequence.IsRegular.cons {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {r : R} {rs : List R} (h1 : IsSMulRegular M r) (h2 : IsRegular (QuotSMulTop r M) rs) :
                    IsRegular M (r :: rs)
                    theorem RingTheory.Sequence.IsRegular.cons' {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {r : R} {rs : List R} (h1 : IsSMulRegular M r) (h2 : IsRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs)) :
                    IsRegular M (r :: rs)
                    def RingTheory.Sequence.IsRegular.recIterModByRegular {R : Type u_1} [CommRing R] {motive : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ (rs : List R) โ†’ IsRegular M rs โ†’ Sort u_7} (nil : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ [inst_2 : Nontrivial M] โ†’ motive M [] โ‹ฏ) (cons : {M : Type v} โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ (h1 : IsSMulRegular M r) โ†’ (h2 : IsRegular (QuotSMulTop r M) rs) โ†’ motive (QuotSMulTop r M) rs h2 โ†’ motive M (r :: rs) โ‹ฏ) {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} (h : IsRegular M rs) :
                    motive M rs h

                    Regular sequences can be inductively characterized by:

                    • The empty sequence is regular on any nonzero module.
                    • If r is regular on M and rs is a regular sequence on MโงธrM then the sequence obtained from rs by prepending r is regular on M.

                    This is the induction principle produced by the inductive definition above. The motive will usually be valued in Prop, but Sort* works too.

                    Instances For
                      def RingTheory.Sequence.IsRegular.ndrecIterModByRegular {R : Type u_1} [CommRing R] {motive : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [Module R M] โ†’ List R โ†’ Sort u_7} (nil : (M : Type v) โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ [Nontrivial M] โ†’ motive M []) (cons : {M : Type v} โ†’ [inst : AddCommGroup M] โ†’ [inst_1 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ IsSMulRegular M r โ†’ IsRegular (QuotSMulTop r M) rs โ†’ motive (QuotSMulTop r M) rs โ†’ motive M (r :: rs)) {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} :
                      IsRegular M rs โ†’ motive M rs

                      A simplified version of IsRegular.recIterModByRegular where the motive is not allowed to depend on the proof of IsRegular.

                      Instances For
                        def RingTheory.Sequence.IsRegular.recIterModByRegularWithRing {motive : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ (rs : List R) โ†’ IsRegular M rs โ†’ Sort u_7} (nil : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ [inst_3 : Nontrivial M] โ†’ motive R M [] โ‹ฏ) (cons : {R : Type u} โ†’ [inst : CommRing R] โ†’ {M : Type v} โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ (h1 : IsSMulRegular M r) โ†’ (h2 : IsRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs)) โ†’ motive (R โงธ Ideal.span {r}) (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs) h2 โ†’ motive R M (r :: rs) โ‹ฏ) {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} (h : IsRegular M rs) :
                        motive R M rs h

                        An alternate induction principle from IsRegular.recIterModByRegular where we mod out by successive elements in both the module and the base ring. This is useful for propagating certain properties of the initial M, e.g. faithfulness or freeness, throughout the induction.

                        Instances For
                          def RingTheory.Sequence.IsRegular.ndrecIterModByRegularWithRing {motive : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [Module R M] โ†’ List R โ†’ Sort u_7} (nil : (R : Type u) โ†’ [inst : CommRing R] โ†’ (M : Type v) โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ [Nontrivial M] โ†’ motive R M []) (cons : {R : Type u} โ†’ [inst : CommRing R] โ†’ {M : Type v} โ†’ [inst_1 : AddCommGroup M] โ†’ [inst_2 : Module R M] โ†’ (r : R) โ†’ (rs : List R) โ†’ IsSMulRegular M r โ†’ IsRegular (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs) โ†’ motive (R โงธ Ideal.span {r}) (QuotSMulTop r M) (List.map (โ‡‘(Ideal.Quotient.mk (Ideal.span {r}))) rs) โ†’ motive R M (r :: rs)) {R : Type u} [CommRing R] {M : Type v} [AddCommGroup M] [Module R M] {rs : List R} :
                          IsRegular M rs โ†’ motive R M rs

                          A simplified version of IsRegular.recIterModByRegularWithRing where the motive is not allowed to depend on the proof of IsRegular.

                          Instances For
                            theorem RingTheory.Sequence.IsRegular.nontrivial {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {rs : List R} (h : IsRegular M rs) :
                            theorem RingTheory.Sequence.isRegular_iff_isWeaklyRegular_of_subset_jacobson_annihilator {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [Nontrivial M] [Module.Finite R M] {rs : List R} (h : โˆ€ r โˆˆ rs, r โˆˆ (Module.annihilator R M).jacobson) :
                            IsRegular M rs โ†” IsWeaklyRegular M rs
                            theorem RingTheory.Sequence.eq_nil_of_isRegular_on_artinian {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [IsArtinian R M] {rs : List R} :
                            IsRegular M rs โ†’ rs = []
                            theorem RingTheory.Sequence.IsWeaklyRegular.isWeaklyRegular_lTensor {R : Type u_1} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Module.Flat R Mโ‚‚] {rs : List R} (h : IsWeaklyRegular M rs) :
                            IsWeaklyRegular (TensorProduct R Mโ‚‚ M) rs
                            theorem RingTheory.Sequence.IsWeaklyRegular.isWeaklyRegular_rTensor {R : Type u_1} {M : Type u_3} {Mโ‚‚ : Type u_4} [CommRing R] [AddCommGroup M] [AddCommGroup Mโ‚‚] [Module R M] [Module R Mโ‚‚] [Module.Flat R Mโ‚‚] {rs : List R} (h : IsWeaklyRegular M rs) :
                            IsWeaklyRegular (TensorProduct R M Mโ‚‚) rs
                            theorem RingTheory.Sequence.map_first_exact_on_four_term_right_exact_of_isSMulRegular_last {R : Type u_1} {M : Type u_3} {Mโ‚‚ : Type u_4} {Mโ‚ƒ : Type u_5} {Mโ‚„ : Type u_6} [CommRing R] [AddCommGroup M] [AddCommGroup Mโ‚‚] [AddCommGroup Mโ‚ƒ] [AddCommGroup Mโ‚„] [Module R M] [Module R Mโ‚‚] [Module R Mโ‚ƒ] [Module R Mโ‚„] {rs : List R} {fโ‚ : M โ†’โ‚—[R] Mโ‚‚} {fโ‚‚ : Mโ‚‚ โ†’โ‚—[R] Mโ‚ƒ} {fโ‚ƒ : Mโ‚ƒ โ†’โ‚—[R] Mโ‚„} (hโ‚โ‚‚ : Function.Exact โ‡‘fโ‚ โ‡‘fโ‚‚) (hโ‚‚โ‚ƒ : Function.Exact โ‡‘fโ‚‚ โ‡‘fโ‚ƒ) (hโ‚ƒ : Function.Surjective โ‡‘fโ‚ƒ) (hโ‚„ : IsWeaklyRegular Mโ‚„ rs) :
                            Function.Exact โ‡‘((Ideal.ofList rs โ€ข โŠค).mapQ (Ideal.ofList rs โ€ข โŠค) fโ‚ โ‹ฏ) โ‡‘((Ideal.ofList rs โ€ข โŠค).mapQ (Ideal.ofList rs โ€ข โŠค) fโ‚‚ โ‹ฏ)
                            theorem RingTheory.Sequence.IsWeaklyRegular.prototype_perm {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {rs : List R} (h : IsWeaklyRegular M rs) {rs' : List R} (h'' : rs.Perm rs') (h' : โˆ€ (a b : R) (rs' : List R), (a :: b :: rs').Subperm rs โ†’ have K := Submodule.torsionBy R (M โงธ Ideal.ofList rs' โ€ข โŠค) b; K = a โ€ข K โ†’ K = โŠฅ) :
                            theorem RingTheory.Sequence.IsWeaklyRegular.of_perm_of_subset_jacobson_annihilator {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [IsNoetherian R M] {rs rs' : List R} (h1 : IsWeaklyRegular M rs) (h2 : rs.Perm rs') (h3 : โˆ€ r โˆˆ rs, r โˆˆ (Module.annihilator R M).jacobson) :
                            theorem RingTheory.Sequence.IsRegular.of_perm_of_subset_jacobson_annihilator {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [IsNoetherian R M] {rs rs' : List R} (h1 : IsRegular M rs) (h2 : rs.Perm rs') (h3 : โˆ€ r โˆˆ rs, r โˆˆ (Module.annihilator R M).jacobson) :
                            IsRegular M rs'
                            theorem IsLocalRing.isWeaklyRegular_of_perm_of_subset_maximalIdeal {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [IsLocalRing R] [IsNoetherian R M] {rs rs' : List R} (h1 : RingTheory.Sequence.IsWeaklyRegular M rs) (h2 : rs.Perm rs') (h3 : โˆ€ r โˆˆ rs, r โˆˆ maximalIdeal R) :
                            theorem IsLocalRing.isRegular_of_perm {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] [IsLocalRing R] [IsNoetherian R M] {rs rs' : List R} (h1 : RingTheory.Sequence.IsRegular M rs) (h2 : rs.Perm rs') :
                            theorem RingTheory.Sequence.IsRegular.of_isWeaklyRegular_of_mem_maximalIdeal {R : Type u_7} [CommRing R] [IsLocalRing R] (L : Type u_8) [AddCommGroup L] [Module R L] [Module.Finite R L] [Nontrivial L] {rs : List R} (mem : โˆ€ r โˆˆ rs, r โˆˆ IsLocalRing.maximalIdeal R) (reg : IsWeaklyRegular L rs) :