Composition of matrices #
This file shows that Mₙ(Mₘ(R)) ≃ Mₙₘ(R), Mₙ(Rᵒᵖ) ≃ₐ[K] Mₙ(R)ᵒᵖ
and also different levels of equivalence when R is an AddCommMonoid,
Semiring, and Algebra over a CommSemiring K.
Main definitions #
Matrix.compis an equivalence betweenMatrix I J (Matrix K L R)andI × KbyJ × Lmatrices.Matrix.compAddEquiv:Matrix.compas anAddEquivMatrix.compRingEquiv:Matrix.compas aRingEquivMatrix.compLinearEquiv:Matrix.compas aLinearEquivMatrix.compAlgEquiv:Matrix.compas anAlgEquiv
An I by J matrix where each entry is a K by L matrix is equivalent to
an I × K by J × L matrix.
This is available in bundled forms as:
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Matrix.comp_one {I : Type u_1} {J : Type u_2} {R : Type u_5} [DecidableEq I] [DecidableEq J] [Zero R] [One R] :
@[simp]
theorem Matrix.comp_single_single {I : Type u_1} {J : Type u_2} {K : Type u_3} {L : Type u_4} {R : Type u_5} [DecidableEq I] [DecidableEq J] [DecidableEq K] [DecidableEq L] [Zero R] (i : I) (j : J) (k : K) (l : L) (r : R) :
@[simp]
theorem Matrix.comp_symm_single {I : Type u_1} {J : Type u_2} {K : Type u_3} {L : Type u_4} {R : Type u_5} [DecidableEq I] [DecidableEq J] [DecidableEq K] [DecidableEq L] [Zero R] (ii : I × K) (jj : J × L) (r : R) :
@[simp]
theorem Matrix.comp_diagonal_diagonal {I : Type u_1} {J : Type u_2} {R : Type u_5} [DecidableEq I] [DecidableEq J] [Zero R] (d : I → J → R) :
def Matrix.compRingEquiv (I : Type u_1) (J : Type u_2) (R : Type u_5) [AddCommMonoid R] [Mul R] [Fintype I] [Fintype J] :
Equations
- Matrix.compRingEquiv I J R = { toEquiv := (Matrix.compAddEquiv I I J J R).toEquiv, map_mul' := ⋯, map_add' := ⋯ }
Instances For
@[simp]
theorem Matrix.compRingEquiv_apply (I : Type u_1) (J : Type u_2) (R : Type u_5) [AddCommMonoid R] [Mul R] [Fintype I] [Fintype J] (M : Matrix I I (Matrix J J R)) :
instance Matrix.instIsStablyFiniteRing (I : Type u_1) [Fintype I] (R : Type u_7) [MulOne R] [AddCommMonoid R] [DecidableEq I] [IsStablyFiniteRing R] :
IsStablyFiniteRing (Matrix I I R)
def Matrix.compLinearEquiv (I : Type u_1) (J : Type u_2) (K : Type u_3) (L : Type u_4) (R : Type u_5) (R₀ : Type u_7) [Semiring R₀] [AddCommMonoid R] [Module R₀ R] :
Equations
- One or more equations did not get rendered due to their size.
Instances For
def Matrix.compAlgEquiv (I : Type u_1) (J : Type u_2) (R : Type u_5) (K : Type u_7) [CommSemiring K] [Semiring R] [Fintype I] [Fintype J] [Algebra K R] [DecidableEq I] [DecidableEq J] :
Equations
- Matrix.compAlgEquiv I J R K = { toEquiv := (Matrix.compRingEquiv I J R).toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
@[simp]
theorem Matrix.compAlgEquiv_apply (I : Type u_1) (J : Type u_2) (R : Type u_5) (K : Type u_7) [CommSemiring K] [Semiring R] [Fintype I] [Fintype J] [Algebra K R] [DecidableEq I] [DecidableEq J] (M : Matrix I I (Matrix J J R)) :
@[simp]
theorem Matrix.compAlgEquiv_symm_apply (I : Type u_1) (J : Type u_2) (R : Type u_5) (K : Type u_7) [CommSemiring K] [Semiring R] [Fintype I] [Fintype J] [Algebra K R] [DecidableEq I] [DecidableEq J] (M : Matrix (I × J) (I × J) R) :