Commit 2021-03-22 07:20 e7d74ba3
View on Github →feat(algebra/smul_regular): add M-regular elements (#6659)
This PR extends PR #6590, that is now merged.  The current PR contains the actual API to work with M-regular elements r : R, called is_smul_regular M r.
Zulip:
https://leanprover.zulipchat.com/#narrow/stream/144837-PR-reviews
From the doc-string:
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 is_smul_regular.
There are very limited typeclass assumptions on R and M, but the "mathematical" case of interest
is a commutative ring R acting an 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 is_left_regular defined in
algebra/regular.  Lemma is_smul_regular.is_left_regular_iff shows that indeed the two notions
coincide.