Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit ec44f45

Browse files
committed
feat(data/matrix/basic): even more lemmas about conj_transpose and smul (#13970)
It turns out none of the lemmas in the previous #13938 were the ones I needed.
1 parent 420fabf commit ec44f45

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

src/algebra/star/module.lean

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import linear_algebra.prod
1313
We define `star_linear_equiv`, which is the star operation bundled as a star-linear map.
1414
It is defined on a star algebra `A` over the base ring `R`.
1515
16+
This file also provides some lemmas that need `algebra.module.basic` imported to prove.
17+
1618
## TODO
1719
1820
- Define `star_linear_equiv` for noncommutative `R`. We only the commutative case for now since,
@@ -25,10 +27,35 @@ It is defined on a star algebra `A` over the base ring `R`.
2527
equivalence.
2628
-/
2729

30+
section smul_lemmas
31+
variables {R M : Type*}
32+
33+
@[simp] lemma star_int_cast_smul [ring R] [add_comm_group M] [module R M] [star_add_monoid M]
34+
(n : ℤ) (x : M) : star ((n : R) • x) = (n : R) • star x :=
35+
map_int_cast_smul (star_add_equiv : M ≃+ M) R R n x
36+
37+
@[simp] lemma star_nat_cast_smul [semiring R] [add_comm_monoid M] [module R M] [star_add_monoid M]
38+
(n : ℕ) (x : M) : star ((n : R) • x) = (n : R) • star x :=
39+
map_nat_cast_smul (star_add_equiv : M ≃+ M) R R n x
40+
41+
@[simp] lemma star_inv_int_cast_smul [division_ring R] [add_comm_group M] [module R M]
42+
[star_add_monoid M] (n : ℤ) (x : M) : star ((n⁻¹ : R) • x) = (n⁻¹ : R) • star x :=
43+
map_inv_int_cast_smul (star_add_equiv : M ≃+ M) R R n x
44+
45+
@[simp] lemma star_inv_nat_cast_smul [division_ring R] [add_comm_group M] [module R M]
46+
[star_add_monoid M] (n : ℕ) (x : M) : star ((n⁻¹ : R) • x) = (n⁻¹ : R) • star x :=
47+
map_inv_nat_cast_smul (star_add_equiv : M ≃+ M) R R n x
48+
49+
@[simp] lemma star_rat_cast_smul [division_ring R] [add_comm_group M] [module R M]
50+
[star_add_monoid M] (n : ℚ) (x : M) : star ((n : R) • x) = (n : R) • star x :=
51+
map_rat_cast_smul (star_add_equiv : M ≃+ M) _ _ _ x
52+
2853
@[simp] lemma star_rat_smul {R : Type*} [add_comm_group R] [star_add_monoid R] [module ℚ R]
2954
(x : R) (n : ℚ) : star (n • x) = n • star x :=
3055
map_rat_smul (star_add_equiv : R ≃+ R) _ _
3156

57+
end smul_lemmas
58+
3259
/-- If `A` is a module over a commutative `R` with compatible actions,
3360
then `star` is a semilinear equivalence. -/
3461
@[simps]

src/data/matrix/basic.lean

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,7 +1340,12 @@ variants which this lemma would not apply to:
13401340
* `matrix.conj_transpose_smul_non_comm`
13411341
* `matrix.conj_transpose_nsmul`
13421342
* `matrix.conj_transpose_zsmul`
1343+
* `matrix.conj_transpose_nat_cast_smul`
1344+
* `matrix.conj_transpose_int_cast_smul`
1345+
* `matrix.conj_transpose_inv_nat_cast_smul`
1346+
* `matrix.conj_transpose_inv_int_cast_smul`
13431347
* `matrix.conj_transpose_rat_smul`
1348+
* `matrix.conj_transpose_rat_cast_smul`
13441349
-/
13451350
@[simp] lemma conj_transpose_smul [has_star R] [has_star α] [has_scalar R α] [star_module R α]
13461351
(c : R) (M : matrix m n α) :
@@ -1365,6 +1370,26 @@ matrix.ext $ by simp
13651370
(c • M)ᴴ = c • Mᴴ :=
13661371
matrix.ext $ by simp
13671372

1373+
@[simp] lemma conj_transpose_nat_cast_smul [semiring R] [add_comm_monoid α]
1374+
[star_add_monoid α] [module R α] (c : ℕ) (M : matrix m n α) : ((c : R) • M)ᴴ = (c : R) • Mᴴ :=
1375+
matrix.ext $ by simp
1376+
1377+
@[simp] lemma conj_transpose_int_cast_smul [ring R] [add_comm_group α]
1378+
[star_add_monoid α] [module R α] (c : ℤ) (M : matrix m n α) : ((c : R) • M)ᴴ = (c : R) • Mᴴ :=
1379+
matrix.ext $ by simp
1380+
1381+
@[simp] lemma conj_transpose_inv_nat_cast_smul [division_ring R] [add_comm_group α]
1382+
[star_add_monoid α] [module R α] (c : ℕ) (M : matrix m n α) : ((c : R)⁻¹ • M)ᴴ = (c : R)⁻¹ • Mᴴ :=
1383+
matrix.ext $ by simp
1384+
1385+
@[simp] lemma conj_transpose_inv_int_cast_smul [division_ring R] [add_comm_group α]
1386+
[star_add_monoid α] [module R α] (c : ℤ) (M : matrix m n α) : ((c : R)⁻¹ • M)ᴴ = (c : R)⁻¹ • Mᴴ :=
1387+
matrix.ext $ by simp
1388+
1389+
@[simp] lemma conj_transpose_rat_cast_smul [division_ring R] [add_comm_group α] [star_add_monoid α]
1390+
[module R α] (c : ℚ) (M : matrix m n α) : ((c : R) • M)ᴴ = (c : R) • Mᴴ :=
1391+
matrix.ext $ by simp
1392+
13681393
@[simp] lemma conj_transpose_rat_smul [add_comm_group α] [star_add_monoid α] [module ℚ α] (c : ℚ)
13691394
(M : matrix m n α) : (c • M)ᴴ = c • Mᴴ :=
13701395
matrix.ext $ by simp

0 commit comments

Comments
 (0)