Kronecker product of matrices #
This defines the Kronecker product.
Main definitions #
matrix.kronecker_map: A generalization of the Kronecker product: given a mapf : α → β → γand matricesAandBwith coefficients inαandβ, respectively, it is defined as the matrix with coefficients inγsuch thatkronecker_map f A B (i₁, i₂) (j₁, j₂) = f (A i₁ j₁) (B i₁ j₂).matrix.kronecker_map_bilinear: whenfis bilinear, so iskronecker_map f.
Specializations #
-
matrix.kronecker: An alias ofkronecker_map (*). Prefer using the notation. -
matrix.kronecker_bilinear:matrix.kroneckeris bilinear -
matrix.kronecker_tmul: An alias ofkronecker_map (⊗ₜ). Prefer using the notation. -
matrix.kronecker_tmul_bilinear:matrix.tmul_kroneckeris bilinear
Notations #
These require open_locale kronecker:
A ⊗ₖ Bforkronecker_map (*) A B. Lemmas about this notation use the tokenkronecker.A ⊗ₖₜ BandA ⊗ₖₜ[R] Bforkronecker_map (⊗ₜ) A B. Lemmas about this notation use the tokenkronecker_tmul.
Produce a matrix with f applied to every pair of elements from A and B.
When f is bilinear then matrix.kronecker_map f is also bilinear.
Equations
- matrix.kronecker_map_bilinear f = linear_map.mk₂ R (matrix.kronecker_map (λ (r : α) (s : β), ⇑(⇑f r) s)) _ _ _ _
matrix.kronecker_map_bilinear commutes with ⬝ if f commutes with *.
This is primarily used with R = ℕ to prove matrix.mul_kronecker_mul.
Specialization to matrix.kronecker_map (*) #
The Kronecker product. This is just a shorthand for kronecker_map (*). Prefer the notation
⊗ₖ rather than this definition.
Equations
matrix.kronecker as a bilinear map.
Equations
What follows is a copy, in order, of every matrix.kronecker_map lemma above that has
hypotheses which can be filled by properties of *.
Specialization to matrix.kronecker_map (⊗ₜ) #
The Kronecker tensor product. This is just a shorthand for kronecker_map (⊗ₜ).
Prefer the notation ⊗ₖₜ rather than this definition.
Equations
- matrix.kronecker_tmul R = matrix.kronecker_map (λ (_x : α) (_y : β), _x ⊗ₜ[R] _y)
matrix.kronecker as a bilinear map.
Equations
What follows is a copy, in order, of every matrix.kronecker_map lemma above that has
hypotheses which can be filled by properties of ⊗ₜ.