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 LinearEquiv.isSMulRegular_congr {R : Type u_2} {M : Type u_3} {N : Type u_1} [Semiring R] [AddCommMonoid M] [Module R M] [AddCommMonoid N] [Module R N] (e : M ≃ₗ[R] 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_algebraMap_iff {R : Type u_1} {S : Type u_2} {M : Type u_3} [CommSemiring R] [Semiring S] [Algebra R S] [AddCommMonoid M] [Module R M] [Module S M] [IsScalarTower R S M] (r : R) :
theorem isSMulRegular_iff_smul_eq_zero_imp_eq_zero {R : Type u_1} (M : Type u_3) [Ring R] [AddCommGroup M] [Module R M] (r : R) :
IsSMulRegular M r ∀ (x : M), r x = 0x = 0
theorem isSMulRegular_of_smul_eq_zero_imp_eq_zero {R : Type u_1} {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] {r : R} (h : ∀ (x : M), r x = 0x = 0) :
theorem isSMulRegular_on_submodule_iff_mem_imp_smul_eq_zero_imp_eq_zero {R : Type u_1} {M : Type u_3} [Ring R] [AddCommGroup M] [Module R M] (N : Submodule R M) (r : R) :
IsSMulRegular (↥N) r xN, r x = 0x = 0
theorem isSMulRegular_on_quot_iff_smul_mem_implies_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 Nx N
theorem mem_of_isSMulRegular_on_quot_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) :
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 : LinearMap.range f = LinearMap.ker g) (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 isSMulRegular_on_quot_iff_lsmul_comap_le {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] (N : Submodule R M) (r : R) :
theorem isSMulRegular_on_quot_iff_lsmul_comap_eq {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] (N : Submodule R M) (r : R) :
theorem IsSMulRegular.isSMulRegular_on_quot_iff_smul_top_inf_eq_smul {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] (N : Submodule R M) {r : R} :
IsSMulRegular M r → (IsSMulRegular (M N) r r N r N)
theorem isSMulRegular_of_ker_lsmul_eq_bot {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {r : R} (h : LinearMap.ker ((LinearMap.lsmul R M) r) = ) :
theorem smul_top_inf_eq_smul_of_isSMulRegular_on_quot {R : Type u_1} {M : Type u_3} [CommRing R] [AddCommGroup M] [Module R M] {N : Submodule R M} {r : R} :
IsSMulRegular (M N) rr N r N
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₂)