688
688
(reindex eₘ eₙ).symm M = λ i j, M (eₘ i) (eₙ j) :=
689
689
rfl
690
690
691
+ @[simp] lemma reindex_refl_refl (A : matrix m n R) :
692
+ (reindex (equiv.refl _) (equiv.refl _) A) = A :=
693
+ by { ext, simp only [reindex_apply, equiv.refl_symm, equiv.refl_apply] }
694
+
691
695
/-- The natural map that reindexes a matrix's rows and columns with equivalent types is a linear
692
696
equivalence. -/
693
697
def reindex_linear_equiv [semiring R] (eₘ : m ≃ m') (eₙ : n ≃ n') :
@@ -696,16 +700,30 @@ def reindex_linear_equiv [semiring R] (eₘ : m ≃ m') (eₙ : n ≃ n') :
696
700
map_smul' := λ M N, rfl,
697
701
..(reindex eₘ eₙ)}
698
702
699
- @[simp] lemma reindex_linear_equiv_apply [semiring R]
703
+ @[simp] lemma coe_reindex_linear_equiv [semiring R]
700
704
(eₘ : m ≃ m') (eₙ : n ≃ n') (M : matrix m n R) :
701
705
reindex_linear_equiv eₘ eₙ M = λ i j, M (eₘ.symm i) (eₙ.symm j) :=
702
706
rfl
703
707
704
- @[simp] lemma reindex_linear_equiv_symm_apply [semiring R]
708
+ lemma reindex_linear_equiv_apply [semiring R]
709
+ (eₘ : m ≃ m') (eₙ : n ≃ n') (M : matrix m n R) (i j) :
710
+ reindex_linear_equiv eₘ eₙ M i j = M (eₘ.symm i) (eₙ.symm j) :=
711
+ rfl
712
+
713
+ @[simp] lemma coe_reindex_linear_equiv_symm [semiring R]
705
714
(eₘ : m ≃ m') (eₙ : n ≃ n') (M : matrix m' n' R) :
706
715
(reindex_linear_equiv eₘ eₙ).symm M = λ i j, M (eₘ i) (eₙ j) :=
707
716
rfl
708
717
718
+ lemma reindex_linear_equiv_symm_apply [semiring R]
719
+ (eₘ : m ≃ m') (eₙ : n ≃ n') (M : matrix m' n' R) (i j) :
720
+ (reindex_linear_equiv eₘ eₙ).symm M i j = M (eₘ i) (eₙ j) :=
721
+ rfl
722
+
723
+ @[simp] lemma reindex_linear_equiv_refl_refl [semiring R] (A : matrix m n R) :
724
+ (reindex_linear_equiv (equiv.refl _) (equiv.refl _) A) = A :=
725
+ reindex_refl_refl A
726
+
709
727
lemma reindex_mul [semiring R]
710
728
(eₘ : m ≃ m') (eₙ : n ≃ n') (eₗ : l ≃ l') (M : matrix m n R) (N : matrix n l R) :
711
729
(reindex_linear_equiv eₘ eₙ M) ⬝ (reindex_linear_equiv eₙ eₗ N) = reindex_linear_equiv eₘ eₗ (M ⬝ N) :=
@@ -724,16 +742,30 @@ def reindex_alg_equiv [comm_semiring R] [decidable_eq m] [decidable_eq n]
724
742
commutes' := λ r, by { ext, simp [algebra_map, algebra.to_ring_hom], by_cases h : i = j; simp [h], },
725
743
..(reindex_linear_equiv e e) }
726
744
727
- @[simp] lemma reindex_alg_equiv_apply [comm_semiring R] [decidable_eq m] [decidable_eq n]
745
+ @[simp] lemma coe_reindex_alg_equiv [comm_semiring R] [decidable_eq m] [decidable_eq n]
728
746
(e : m ≃ n) (M : matrix m m R) :
729
747
reindex_alg_equiv e M = λ i j, M (e.symm i) (e.symm j) :=
730
748
rfl
731
749
732
- @[simp] lemma reindex_alg_equiv_symm_apply [comm_semiring R] [decidable_eq m] [decidable_eq n]
750
+ @[simp] lemma reindex_alg_equiv_apply [comm_semiring R] [decidable_eq m] [decidable_eq n]
751
+ (e : m ≃ n) (M : matrix m m R) (i j) :
752
+ reindex_alg_equiv e M i j = M (e.symm i) (e.symm j) :=
753
+ rfl
754
+
755
+ @[simp] lemma coe_reindex_alg_equiv_symm [comm_semiring R] [decidable_eq m] [decidable_eq n]
733
756
(e : m ≃ n) (M : matrix n n R) :
734
757
(reindex_alg_equiv e).symm M = λ i j, M (e i) (e j) :=
735
758
rfl
736
759
760
+ @[simp] lemma reindex_alg_equiv_symm_apply [comm_semiring R] [decidable_eq m] [decidable_eq n]
761
+ (e : m ≃ n) (M : matrix n n R) (i j):
762
+ (reindex_alg_equiv e).symm M i j = M (e i) (e j) :=
763
+ rfl
764
+
765
+ @[simp] lemma reindex_alg_equiv_refl [comm_semiring R] [decidable_eq m]
766
+ (A : matrix m m R) : (reindex_alg_equiv (equiv.refl m) A) = A :=
767
+ reindex_linear_equiv_refl_refl A
768
+
737
769
lemma reindex_transpose (eₘ : m ≃ m') (eₙ : n ≃ n') (M : matrix m n R) :
738
770
(reindex eₘ eₙ M)ᵀ = (reindex eₙ eₘ Mᵀ) :=
739
771
rfl
0 commit comments