@@ -275,6 +275,35 @@ by exact {smul_comm := λ _ n, @smul_comm _ _ _ _ _ _ _ (g n) }
275
275
276
276
end has_scalar
277
277
278
+ section
279
+
280
+ /-- Note that the `smul_comm_class α β β` typeclass argument is usually satisfied by `algebra α β`.
281
+ -/
282
+ @[to_additive]
283
+ lemma mul_smul_comm [has_mul β] [has_scalar α β] [smul_comm_class α β β] (s : α) (x y : β) :
284
+ x * (s • y) = s • (x * y) :=
285
+ (smul_comm s x y).symm
286
+
287
+ /-- Note that the `is_scalar_tower α β β` typeclass argument is usually satisfied by `algebra α β`.
288
+ -/
289
+ lemma smul_mul_assoc [has_mul β] [has_scalar α β] [is_scalar_tower α β β] (r : α) (x y : β) :
290
+ (r • x) * y = r • (x * y) :=
291
+ smul_assoc r x y
292
+
293
+ variables [has_scalar M α]
294
+
295
+ lemma commute.smul_right [has_mul α] [smul_comm_class M α α] [is_scalar_tower M α α]
296
+ {a b : α} (h : commute a b) (r : M) :
297
+ commute a (r • b) :=
298
+ (mul_smul_comm _ _ _).trans ((congr_arg _ h).trans $ (smul_mul_assoc _ _ _).symm)
299
+
300
+ lemma commute.smul_left [has_mul α] [smul_comm_class M α α] [is_scalar_tower M α α]
301
+ {a b : α} (h : commute a b) (r : M) :
302
+ commute (r • a) b :=
303
+ (h.symm.smul_right r).symm
304
+
305
+ end
306
+
278
307
section ite
279
308
variables [has_scalar M α] (p : Prop ) [decidable p]
280
309
@@ -363,36 +392,13 @@ instance is_scalar_tower.left : is_scalar_tower M M α :=
363
392
364
393
variables {M}
365
394
366
- /-- Note that the `smul_comm_class α β β` typeclass argument is usually satisfied by `algebra α β`.
367
- -/
368
- @[to_additive]
369
- lemma mul_smul_comm [has_mul β] [has_scalar α β] [smul_comm_class α β β] (s : α) (x y : β) :
370
- x * (s • y) = s • (x * y) :=
371
- (smul_comm s x y).symm
372
-
373
- /-- Note that the `is_scalar_tower α β β` typeclass argument is usually satisfied by `algebra α β`.
374
- -/
375
- lemma smul_mul_assoc [has_mul β] [has_scalar α β] [is_scalar_tower α β β] (r : α) (x y : β) :
376
- (r • x) * y = r • (x * y) :=
377
- smul_assoc r x y
378
-
379
395
/-- Note that the `is_scalar_tower M α α` and `smul_comm_class M α α` typeclass arguments are
380
396
usually satisfied by `algebra M α`. -/
381
397
lemma smul_mul_smul [has_mul α] (r s : M) (x y : α)
382
398
[is_scalar_tower M α α] [smul_comm_class M α α] :
383
399
(r • x) * (s • y) = (r * s) • (x * y) :=
384
400
by rw [smul_mul_assoc, mul_smul_comm, ← smul_assoc, smul_eq_mul]
385
401
386
- lemma commute.smul_right [has_mul α] [smul_comm_class M α α] [is_scalar_tower M α α]
387
- {a b : α} (h : commute a b) (r : M) :
388
- commute a (r • b) :=
389
- (mul_smul_comm _ _ _).trans ((congr_arg _ h).trans $ (smul_mul_assoc _ _ _).symm)
390
-
391
- lemma commute.smul_left [has_mul α] [smul_comm_class M α α] [is_scalar_tower M α α]
392
- {a b : α} (h : commute a b) (r : M) :
393
- commute (r • a) b :=
394
- (h.symm.smul_right r).symm
395
-
396
402
end
397
403
398
404
namespace mul_action
@@ -444,8 +450,8 @@ by rw [smul_assoc, one_smul]
444
450
(y : N) : (x • 1 ) * y = x • y :=
445
451
smul_one_smul N x y
446
452
447
- @[simp, to_additive] lemma mul_smul_one {M N} [monoid N] [has_scalar M N] [smul_comm_class M N N]
448
- (x : M) (y : N) :
453
+ @[simp, to_additive] lemma mul_smul_one
454
+ {M N} [mul_one_class N] [has_scalar M N] [smul_comm_class M N N] (x : M) (y : N) :
449
455
y * (x • 1 ) = x • y :=
450
456
by rw [← smul_eq_mul, ← smul_comm, smul_eq_mul, mul_one]
451
457
0 commit comments