Documentation

Mathlib.Algebra.Regular.SMul

Action of regular elements on a module #

We introduce M-regular elements, in the context of an R-module M. The corresponding predicate is called IsSMulRegular.

There are very limited typeclass assumptions on R and M, but the "mathematical" case of interest is a commutative ring R acting on a module M. Since the properties are "multiplicative", there is no actual requirement of having an addition, but there is a zero in both R and M. SMultiplications involving 0 are, of course, all trivial.

The defining property is that an element a โˆˆ R is M-regular if the smultiplication map M โ†’ M, defined by m โ†ฆ a โ€ข m, is injective.

This property is the direct generalization to modules of the property IsLeftRegular defined in Algebra/Regular. Lemma isLeftRegular_iff shows that indeed the two notions coincide.

def IsSMulRegular {R : Type u_1} (M : Type u_3) [SMul R M] (c : R) :

An M-regular element is an element c such that multiplication on the left by c is an injective map M โ†’ M.

Equations
    Instances For
      theorem isLeftRegular_iff {R : Type u_1} [Mul R] {a : R} :

      Left-regular multiplication on R is equivalent to R-regularity of R itself.

      Right-regular multiplication on R is equivalent to Rแตแต’แต–-regularity of R itself.

      theorem isSMulRegular_map {R : Type u_1} {S : Type u_2} {M : Type u_3} {a : R} [SMul R M] [SMul S M] (f : R โ†’ S) (smul : โˆ€ (m : M), f a โ€ข m = a โ€ข m) :
      theorem IsSMulRegular.map {R : Type u_1} {S : Type u_2} {M : Type u_3} {a : R} [SMul R M] [SMul S M] (f : R โ†’ S) (smul : โˆ€ (m : M), f a โ€ข m = a โ€ข m) :
      IsSMulRegular M a โ†’ IsSMulRegular M (f a)

      Alias of the reverse direction of isSMulRegular_map.

      theorem IsSMulRegular.of_map {R : Type u_1} {S : Type u_2} {M : Type u_3} {a : R} [SMul R M] [SMul S M] (f : R โ†’ S) (smul : โˆ€ (m : M), f a โ€ข m = a โ€ข m) :
      IsSMulRegular M (f a) โ†’ IsSMulRegular M a

      Alias of the forward direction of isSMulRegular_map.

      theorem IsSMulRegular.smul {R : Type u_1} {S : Type u_2} {M : Type u_3} {a : R} {s : S} [SMul R M] [SMul R S] [SMul S M] [IsScalarTower R S M] (ra : IsSMulRegular M a) (rs : IsSMulRegular M s) :

      The product of M-regular elements is M-regular.

      theorem IsSMulRegular.of_smul {R : Type u_1} {S : Type u_2} {M : Type u_3} {s : S} [SMul R M] [SMul R S] [SMul S M] [IsScalarTower R S M] (a : R) (ab : IsSMulRegular M (a โ€ข s)) :

      If an element b becomes M-regular after multiplying it on the left by an M-regular element, then b is M-regular.

      @[simp]
      theorem IsSMulRegular.smul_iff {R : Type u_1} {S : Type u_2} {M : Type u_3} {a : R} [SMul R M] [SMul R S] [SMul S M] [IsScalarTower R S M] (b : S) (ha : IsSMulRegular M a) :

      An element is M-regular if and only if multiplying it on the left by an M-regular element is M-regular.

      theorem IsSMulRegular.mul {R : Type u_1} {M : Type u_3} {a b : R} [SMul R M] [Mul R] [IsScalarTower R R M] (ra : IsSMulRegular M a) (rb : IsSMulRegular M b) :
      theorem IsSMulRegular.of_mul {R : Type u_1} {M : Type u_3} {a b : R} [SMul R M] [Mul R] [IsScalarTower R R M] (ab : IsSMulRegular M (a * b)) :
      @[simp]
      theorem IsSMulRegular.mul_iff_right {R : Type u_1} {M : Type u_3} {a b : R} [SMul R M] [Mul R] [IsScalarTower R R M] (ha : IsSMulRegular M a) :
      theorem IsSMulRegular.mul_and_mul_iff {R : Type u_1} {M : Type u_3} {a b : R} [SMul R M] [Mul R] [IsScalarTower R R M] :

      Two elements a and b are M-regular if and only if both products a * b and b * a are M-regular.

      @[simp]
      theorem IsSMulRegular.one {R : Type u_1} (M : Type u_3) [Monoid R] [MulAction R M] :

      One is always M-regular.

      theorem IsSMulRegular.of_mul_eq_one {R : Type u_1} {M : Type u_3} {a b : R} [Monoid R] [MulAction R M] (h : a * b = 1) :

      An element of R admitting a left inverse is M-regular.

      theorem IsSMulRegular.pow {R : Type u_1} {M : Type u_3} {a : R} [Monoid R] [MulAction R M] (n : โ„•) (ra : IsSMulRegular M a) :

      Any power of an M-regular element is M-regular.

      theorem IsSMulRegular.pow_iff {R : Type u_1} {M : Type u_3} {a : R} [Monoid R] [MulAction R M] {n : โ„•} (n0 : 0 < n) :

      An element a is M-regular if and only if a positive power of a is M-regular.

      theorem IsSMulRegular.of_smul_eq_one {R : Type u_1} {S : Type u_2} {M : Type u_3} {a : R} {s : S} [Monoid S] [SMul R M] [SMul R S] [MulAction S M] [IsScalarTower R S M] (h : a โ€ข s = 1) :

      An element of S admitting a left inverse in R is M-regular.

      The element 0 is M-regular if and only if M is trivial.

      The element 0 is M-regular if and only if M is trivial.

      The 0 element is not M-regular, on a non-trivial module.

      theorem IsSMulRegular.zero {R : Type u_1} {M : Type u_3} [MonoidWithZero R] [Zero M] [MulActionWithZero R M] [sM : Subsingleton M] :

      The element 0 is M-regular when M is trivial.

      theorem IsSMulRegular.not_zero {R : Type u_1} {M : Type u_3} [MonoidWithZero R] [Zero M] [MulActionWithZero R M] [nM : Nontrivial M] :

      The 0 element is not M-regular, on a non-trivial module.

      theorem IsSMulRegular.mul_iff {R : Type u_1} {M : Type u_3} {a b : R} [CommSemigroup R] [SMul R M] [IsScalarTower R R M] :

      A product is M-regular if and only if the factors are.

      theorem isSMulRegular_of_group {R : Type u_1} {G : Type u_4} [Group G] [MulAction G R] (g : G) :

      An element of a group acting on a Type is regular. This relies on the availability of the inverse given by groups, since there is no LeftCancelSMul typeclass.

      theorem Units.isSMulRegular {R : Type u_1} (M : Type u_3) [Monoid R] [MulAction R M] (a : Rหฃ) :
      IsSMulRegular M โ†‘a

      Any element in Rหฃ is M-regular.

      theorem IsUnit.isSMulRegular {R : Type u_1} (M : Type u_3) {a : R} [Monoid R] [MulAction R M] (ua : IsUnit a) :

      A unit is M-regular.

      theorem IsSMulRegular.right_eq_zero_of_smul {R : Type u_1} {M : Type u_3} [Zero M] [SMulZeroClass R M] {r : R} {x : M} (h1 : IsSMulRegular M r) (h2 : r โ€ข x = 0) :
      x = 0
      theorem isSMulRegular_iff_right_eq_zero_of_smul {R : Type u_1} {M : Type u_3} [AddGroup M] [DistribSMul R M] {r : R} :
      IsSMulRegular M r โ†” โˆ€ (m : M), r โ€ข m = 0 โ†’ m = 0
      theorem IsSMulRegular.of_right_eq_zero_of_smul {R : Type u_1} {M : Type u_3} [AddGroup M] [DistribSMul R M] {r : R} :
      (โˆ€ (m : M), r โ€ข m = 0 โ†’ m = 0) โ†’ IsSMulRegular M r

      Alias of the reverse direction of isSMulRegular_iff_right_eq_zero_of_smul.

      theorem Equiv.isSMulRegular_congr {R : Type u_4} {S : Type u_5} {M : Type u_6} {M' : Type u_7} [SMul R M] [SMul S M'] {e : M โ‰ƒ M'} {r : R} {s : S} (h : โˆ€ (x : M), e (r โ€ข x) = s โ€ข e x) :