Kronecker product of matrices #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This defines the Kronecker product.
Main definitions #
matrix.kronecker_map
: A generalization of the Kronecker product: given a mapf : α → β → γ
and matricesA
andB
with 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
: whenf
is bilinear, so iskronecker_map f
.
Specializations #
-
matrix.kronecker
: An alias ofkronecker_map (*)
. Prefer using the notation. -
matrix.kronecker_bilinear
:matrix.kronecker
is bilinear -
matrix.kronecker_tmul
: An alias ofkronecker_map (⊗ₜ)
. Prefer using the notation. -
matrix.kronecker_tmul_bilinear
:matrix.tmul_kronecker
is bilinear
Notations #
These require open_locale kronecker
:
A ⊗ₖ B
forkronecker_map (*) A B
. Lemmas about this notation use the tokenkronecker
.A ⊗ₖₜ B
andA ⊗ₖₜ[R] B
forkronecker_map (⊗ₜ) A B
. Lemmas about this notation use the tokenkronecker_tmul
.
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
.
trace
distributes over matrix.kronecker_map_bilinear
.
This is primarily used with R = ℕ
to prove matrix.trace_kronecker
.
determinant
of matrix.kronecker_map_bilinear
.
This is primarily used with R = ℕ
to prove matrix.det_kronecker
.
Specialization to matrix.kronecker_map (*)
#
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 ⊗ₜ
.