@@ -3,8 +3,8 @@ Copyright (c) 2021 Damiano Testa. All rights reserved.
3
3
Released under Apache 2.0 license as described in the file LICENSE.
4
4
Authors: Damiano Testa
5
5
-/
6
- import Mathlib.Algebra.SMulWithZero
7
6
import Mathlib.Algebra.Regular.Basic
7
+ import Mathlib.GroupTheory.GroupAction.Hom
8
8
9
9
#align_import algebra.regular.smul from "leanprover-community/mathlib" @"550b58538991c8977703fdeb7c9d51a5aa27df11"
10
10
@@ -122,6 +122,12 @@ theorem mul_and_mul_iff [Mul R] [IsScalarTower R R M] :
122
122
exact ⟨ha.mul hb, hb.mul ha⟩
123
123
#align is_smul_regular.mul_and_mul_iff IsSMulRegular.mul_and_mul_iff
124
124
125
+ lemma isSMulRegular_of_injective_of_isSMulRegular {N F} [SMul R N]
126
+ [FunLike F M N] [MulActionHomClass F R M N] (f : F) {r : R}
127
+ (h1 : Function.Injective f) (h2 : IsSMulRegular N r) : IsSMulRegular M r :=
128
+ fun x y h3 => h1 <| h2 <| (map_smulₛₗ f r x).symm.trans <|
129
+ (congrArg f h3).trans <| map_smulₛₗ f r y
130
+
125
131
end SMul
126
132
127
133
section Monoid
@@ -255,3 +261,20 @@ theorem IsUnit.isSMulRegular (ua : IsUnit a) : IsSMulRegular M a := by
255
261
#align is_unit.is_smul_regular IsUnit.isSMulRegular
256
262
257
263
end Units
264
+
265
+ section SMulZeroClass
266
+
267
+ variable {M}
268
+
269
+ protected
270
+ lemma IsSMulRegular.eq_zero_of_smul_eq_zero [Zero M] [SMulZeroClass R M]
271
+ {r : R} {x : M} (h1 : IsSMulRegular M r) (h2 : r • x = 0 ) : x = 0 :=
272
+ h1 (h2.trans (smul_zero r).symm)
273
+
274
+ end SMulZeroClass
275
+
276
+ lemma Equiv.isSMulRegular_congr {R S M M'} [SMul R M] [SMul S M'] {e : M ≃ M'}
277
+ {r : R} {s : S} (h : ∀ x, e (r • x) = s • e x) :
278
+ IsSMulRegular M r ↔ IsSMulRegular M' s :=
279
+ (e.comp_injective _).symm.trans <|
280
+ (iff_of_eq <| congrArg _ <| funext h).trans <| e.injective_comp _
0 commit comments