Documentation

Mathlib.RingTheory.Regular.IsSMulRegular

Lemmas about the IsSMulRegular Predicate #

For modules over a ring the proposition IsSMulRegular r M is equivalent to r being a non-zero-divisor, i.e. r โ€ข x = 0 only if x = 0 for x โˆˆ M. This specific result is isSMulRegular_iff_smul_eq_zero_imp_eq_zero. Lots of results starting from this, especially ones about quotients (which don't make sense without some algebraic assumptions), are in this file. We don't pollute the Mathlib/Algebra/Regular/SMul.lean file with these because it's supposed to import a minimal amount of the algebraic hierarchy.

Tags #

module, regular element, commutative algebra

theorem LinearEquiv.isSMulRegular_congr' {R : Type u_3} {S : Type u_2} {M : Type u_4} {N : Type u_1} [Semiring R] [Semiring S] {ฯƒ : R โ†’+* S} {ฯƒ' : S โ†’+* R} [RingHomInvPair ฯƒ ฯƒ'] [RingHomInvPair ฯƒ' ฯƒ] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module S N] (e : M โ‰ƒโ‚›โ‚—[ฯƒ] N) (r : R) :
theorem IsSMulRegular.submodule {R : Type u_1} {M : Type u_3} [Semiring R] [AddCommMonoid M] [Module R M] (N : Submodule R M) (r : R) (h : IsSMulRegular M r) :
IsSMulRegular (โ†ฅN) r
theorem IsSMulRegular.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] {r : R} (h : IsSMulRegular M' r) :
theorem IsSMulRegular.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] {r : R} (h : IsSMulRegular M' r) :
theorem isSMulRegular_submodule_iff_right_eq_zero_of_smul {R : Type u_1} {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) (r : R) :
IsSMulRegular (โ†ฅN) r โ†” โˆ€ x โˆˆ N, r โ€ข x = 0 โ†’ x = 0
theorem isSMulRegular_quotient_iff_mem_of_smul_mem {R : Type u_1} {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) (r : R) :
IsSMulRegular (M โงธ N) r โ†” โˆ€ (x : M), r โ€ข x โˆˆ N โ†’ x โˆˆ N
theorem mem_of_isSMulRegular_quotient_of_smul_mem {R : Type u_1} {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] {N : Submodule R M} {r : R} (h1 : IsSMulRegular (M โงธ N) r) {x : M} (h2 : r โ€ข x โˆˆ N) :
theorem isSMulRegular_of_range_eq_ker {R : Type u_1} {M : Type u_3} {M' : Type u_4} {M'' : Type u_5} [Ring R] [AddCommGroup M] [Module R M] [AddCommGroup M'] [Module R M'] [AddCommGroup M''] [Module R M''] {r : R} {f : M โ†’โ‚—[R] M'} {g : M' โ†’โ‚—[R] M''} (hf : Function.Injective โ‡‘f) (hfg : f.range = g.ker) (h1 : IsSMulRegular M r) (h2 : IsSMulRegular M'' r) :

Given a left exact sequence 0 โ†’ M โ†’ M' โ†’ M'', if r is regular on both M and M'' it's regular M' too.

theorem isSMulRegular_of_isSMulRegular_on_submodule_on_quotient {R : Type u_1} {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] {N : Submodule R M} {r : R} (h1 : IsSMulRegular (โ†ฅN) r) (h2 : IsSMulRegular (M โงธ N) r) :
theorem QuotSMulTop.map_first_exact_on_four_term_exact_of_isSMulRegular_last {R : Type u_1} {M : Type u_3} {M' : Type u_4} {M'' : Type u_5} [CommRing R] [AddCommGroup M] [Module R M] [AddCommGroup M'] [Module R M'] [AddCommGroup M''] [Module R M''] {M''' : Type u_6} [AddCommGroup M'''] [Module R M'''] {r : R} {fโ‚ : M โ†’โ‚—[R] M'} {fโ‚‚ : M' โ†’โ‚—[R] M''} {fโ‚ƒ : M'' โ†’โ‚—[R] M'''} (hโ‚โ‚‚ : Function.Exact โ‡‘fโ‚ โ‡‘fโ‚‚) (hโ‚‚โ‚ƒ : Function.Exact โ‡‘fโ‚‚ โ‡‘fโ‚ƒ) (h : IsSMulRegular M''' r) :
Function.Exact โ‡‘((map r) fโ‚) โ‡‘((map r) fโ‚‚)