mathlib documentation

ring_theory.matrix_algebra

We provide the R-algebra structure on matrix n n A when A is an R-algebra, and show matrix n n A ≃ₐ[R] (A ⊗[R] matrix n n R).

@[instance]
def matrix.algebra {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {n : Type w} [fintype n] [decidable_eq n] :
algebra R (matrix n n A)

Equations
theorem algebra_map_matrix_apply {R : Type u} [comm_semiring R] {A : Type v} [semiring A] [algebra R A] {n : Type w} [fintype n] [decidable_eq n] {r : R} {i j : n} :
(algebra_map R (matrix n n A)) r i j = ite (i = j) ((algebra_map R A) r) 0

def matrix_equiv_tensor.to_fun (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] :
A → matrix n n Rmatrix n n A

(Implementation detail). The bare function underlying (A ⊗[R] matrix n n R) →ₐ[R] matrix n n A, on pure tensors.

Equations
def matrix_equiv_tensor.to_fun_right_linear (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] :
A → (matrix n n R →ₗ[R] matrix n n A)

(Implementation detail). The function underlying (A ⊗[R] matrix n n R) →ₐ[R] matrix n n A, as an R-linear map in the second tensor factor.

Equations
def matrix_equiv_tensor.to_fun_bilinear (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] :
A →ₗ[R] matrix n n R →ₗ[R] matrix n n A

(Implementation detail). The function underlying (A ⊗[R] matrix n n R) →ₐ[R] matrix n n A, as an R-bilinear map.

Equations
def matrix_equiv_tensor.to_fun_linear (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] :
A matrix n n R →ₗ[R] matrix n n A

(Implementation detail). The function underlying (A ⊗[R] matrix n n R) →ₐ[R] matrix n n A, as an R-linear map.

Equations
def matrix_equiv_tensor.to_fun_alg_hom (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] :
A matrix n n R →ₐ[R] matrix n n A

The function (A ⊗[R] matrix n n R) →ₐ[R] matrix n n A, as an algebra homomorphism.

Equations
@[simp]
theorem matrix_equiv_tensor.to_fun_alg_hom_apply (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (a : A) (m : matrix n n R) :
(matrix_equiv_tensor.to_fun_alg_hom R A n) (a ⊗ₜ[R] m) = λ (i j : n), a * (algebra_map R A) (m i j)

def matrix_equiv_tensor.inv_fun (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] :
matrix n n AA matrix n n R

(Implementation detail.)

The bare function matrix n n A → A ⊗[R] matrix n n R. (We don't need to show that it's an algebra map, thankfully --- just that it's an inverse.)

Equations
@[simp]
theorem matrix_equiv_tensor.inv_fun_zero (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] :

@[simp]
theorem matrix_equiv_tensor.inv_fun_add (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (M N : matrix n n A) :

@[simp]
theorem matrix_equiv_tensor.inv_fun_smul (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (a : A) (M : matrix n n A) :
matrix_equiv_tensor.inv_fun R A n (λ (i j : n), a * M i j) = (a ⊗ₜ[R] 1) * matrix_equiv_tensor.inv_fun R A n M

@[simp]
theorem matrix_equiv_tensor.inv_fun_algebra_map (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (M : matrix n n R) :
matrix_equiv_tensor.inv_fun R A n (λ (i j : n), (algebra_map R A) (M i j)) = 1 ⊗ₜ[R] M

theorem matrix_equiv_tensor.right_inv (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (M : matrix n n A) :

theorem matrix_equiv_tensor.left_inv (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (M : A matrix n n R) :

def matrix_equiv_tensor.equiv (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] :
A matrix n n R matrix n n A

(Implementation detail)

The equivalence, ignoring the algebra structure, (A ⊗[R] matrix n n R) ≃ matrix n n A.

Equations
def matrix_equiv_tensor (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] :
matrix n n A ≃ₐ[R] A matrix n n R

The R-algebra isomorphism matrix n n A ≃ₐ[R] (A ⊗[R] matrix n n R).

Equations
@[simp]
theorem matrix_equiv_tensor_apply (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (M : matrix n n A) :
(matrix_equiv_tensor R A n) M = ∑ (p : n × n), M p.fst p.snd ⊗ₜ[R] matrix.std_basis_matrix p.fst p.snd 1

@[simp]
theorem matrix_equiv_tensor_apply_std_basis (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (i j : n) (x : A) :

@[simp]
theorem matrix_equiv_tensor_apply_symm (R : Type u) [comm_semiring R] (A : Type v) [semiring A] [algebra R A] (n : Type w) [fintype n] [decidable_eq n] (a : A) (M : matrix n n R) :
((matrix_equiv_tensor R A n).symm) (a ⊗ₜ[R] M) = λ (i j : n), a * (algebra_map R A) (M i j)