Mathlib upstream candidate: the Kronecker factor embeddings as algebra homomorphisms #
Category: 1-Mathlib (CSD-free).
Mathlib packages the Kronecker product as the algebra equivalence
Matrix.kroneckerAlgEquiv m n R : (Matrix m m R ⊗[R] Matrix n n R) ≃ₐ[R] Matrix (m × n) (m × n) R
but has no bundled form of the two factor embeddings A ↦ A ⊗ₖ 1 and B ↦ 1 ⊗ₖ B. They are
the compositions of that equivalence with the tensor-factor inclusions
Algebra.TensorProduct.includeLeft / includeRight:
Matrix.kroneckerLeftAlgHom R m n : Matrix m m R →ₐ[R] Matrix (m × n) (m × n) R,A ↦ A ⊗ₖ 1;Matrix.kroneckerRightAlgHom R m n : Matrix n n R →ₐ[R] Matrix (m × n) (m × n) R,B ↦ 1 ⊗ₖ B;
with the API a bipartite-system consumer needs: the images commute
(commute_kroneckerLeftAlgHom_kroneckerRightAlgHom), their products are the Kronecker products
(kroneckerLeftAlgHom_mul_kroneckerRightAlgHom), they preserve the conjugate transpose
(kroneckerLeftAlgHom_conjTranspose), and they generate: the subalgebra generated by the two
images is everything (adjoin_range_kroneckerLeftAlgHom_union_eq_top), because the matrix units
single (i, j) (k, l) 1 = single i k 1 ⊗ₖ single j l 1 lie in it.
The generation step is factored through the matrix-unit criteria
Submodule.eq_top_of_forall_single_mem / Subalgebra.eq_top_of_forall_single_mem (a submodule or
subalgebra of a matrix algebra containing every matrix unit is everything — Matrix.stdBasis
spans), which are useful on their own.
Namespace / staging #
Declarations live in namespace Matrix (Mathlib's symbol namespace for the Kronecker product), so
upstreaming is a file move onto Mathlib/RingTheory/MatrixAlgebra.lean (where
kroneckerAlgEquiv lives), no symbol rename. Mathlib has none of these as of the pinned revision.
MATHLIB-ABSENT(Matrix.kroneckerLeftAlgHom) MATHLIB-ABSENT(Matrix.kroneckerRightAlgHom)
Consumers #
CsdLean4/CV/CompositeArena.lean(leftHom/rightHom,composite_generate);CsdLean4/SigmaLayer/TensorTomography.lean(aliceHom/bobHom,kronecker_adjoin_eq_top).
Generation by matrix units #
A submodule of a matrix module containing every matrix unit single i j 1 is everything.
A subalgebra of a matrix algebra containing every matrix unit single i j 1 is everything.
The factor embeddings #
The left Kronecker factor embedding A ↦ A ⊗ₖ 1 as an R-algebra homomorphism.
Equations
Instances For
The right Kronecker factor embedding B ↦ 1 ⊗ₖ B as an R-algebra homomorphism.
Equations
Instances For
The product of the two embeddings is the Kronecker product.
The two factor embeddings commute.
The left embedding preserves the conjugate transpose.
The right embedding preserves the conjugate transpose.
The left embedding preserves star.
The right embedding preserves star.
Every matrix unit of the product index is a product of embedded matrix units.
The two factor embeddings generate the matrix algebra of the product index.