Kronecker product to the tensor product #
This file contains the definition of tensor_to_kronecker
and kronecker_to_tensor
, the linear equivalences between ⊗ₜ
and ⊗ₖ
.
def
tensor_product.to_kronecker
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n] :
theorem
tensor_product.to_kronecker_apply
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : matrix m m R)
(y : matrix n n R) :
def
matrix.kronecker_to_tensor_product
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n] :
theorem
tensor_product.to_kronecker_to_tensor_product
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : tensor_product R (matrix m m R) (matrix n n R)) :
theorem
matrix.kronecker_to_tensor_product_apply
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : matrix m m R)
(y : matrix n n R) :
theorem
matrix.kronecker_to_tensor_product_to_kronecker
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : matrix (m × n) (m × n) R) :
theorem
tensor_product.matrix_star
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[field R]
[star_ring R]
[fintype m]
[fintype n]
(x : matrix m m R)
(y : matrix n n R) :
has_star.star (x ⊗ₜ[R] y) = x.conj_transpose ⊗ₜ[R] y.conj_transpose
theorem
tensor_product.to_kronecker_star
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[is_R_or_C R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : matrix m m R)
(y : matrix n n R) :
has_star.star (⇑tensor_product.to_kronecker (x ⊗ₜ[R] y)) = ⇑tensor_product.to_kronecker (has_star.star (x ⊗ₜ[R] y))
theorem
matrix.kronecker_to_tensor_product_star
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[is_R_or_C R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : matrix m m R)
(y : matrix n n R) :
theorem
matrix.kronecker_eq_sum_std_basis
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : matrix (m × n) (m × n) R) :
x = finset.univ.sum (λ (i : m), finset.univ.sum (λ (j : m), finset.univ.sum (λ (k : n), finset.univ.sum (λ (l : n), x (i, k) (j, l) • matrix.kronecker_map has_mul.mul (matrix.std_basis_matrix i j 1) (matrix.std_basis_matrix k l 1)))))
theorem
tensor_product.matrix_eq_sum_std_basis
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x : tensor_product R (matrix m m R) (matrix n n R)) :
x = finset.univ.sum (λ (i : m), finset.univ.sum (λ (j : m), finset.univ.sum (λ (k : n), finset.univ.sum (λ (l : n), ⇑tensor_product.to_kronecker x (i, k) (j, l) • matrix.std_basis_matrix i j 1 ⊗ₜ[R] matrix.std_basis_matrix k l 1))))
theorem
tensor_product.to_kronecker_mul
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x y : tensor_product R (matrix m m R) (matrix n n R)) :
theorem
matrix.kronecker_to_tensor_product_mul
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(x y : matrix m m R)
(z w : matrix n n R) :
@[simp]
theorem
tensor_to_kronecker_symm_apply
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(ᾰ : matrix (m × n) (m × n) R) :
def
tensor_to_kronecker
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n] :
Equations
- tensor_to_kronecker = {to_fun := ⇑tensor_product.to_kronecker, inv_fun := ⇑matrix.kronecker_to_tensor_product, left_inv := _, right_inv := _, map_mul' := _, map_add' := _, commutes' := _}
@[simp]
theorem
tensor_to_kronecker_apply
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n]
(ᾰ : tensor_product R (matrix m m R) (matrix n n R)) :
def
kronecker_to_tensor
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n] :
Equations
theorem
kronecker_to_tensor_to_linear_map_eq
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n] :
theorem
tensor_to_kronecker_to_linear_map_eq
{R : Type u_1}
{m : Type u_2}
{n : Type u_3}
[comm_semiring R]
[fintype m]
[fintype n]
[decidable_eq m]
[decidable_eq n] :