Monoidal structure on the matrix envelope #
When C is a monoidal preadditive category (i.e. a preadditive category with a
monoidal structure such that the tensor product is bilinear on morphisms), the
matrix category Mat_ C inherits a monoidal structure:
- Objects:
M ⊗ N = (M.ι × N.ι, fun p => M.X p.1 ⊗ N.X p.2). - Morphisms: the Kronecker product — entry
(i₁,i₂),(j₁,j₂)off ⊗ₘ gisf i₁ j₁ ⊗ₘ g i₂ j₂. - Unit:
(PUnit, fun _ => 𝟙_ C). - Structural isomorphisms: diagonal matrices carrying the componentwise
associators/unitors of
C, with index-type reindexing byEquiv.prodAssoc,Equiv.punitProd,Equiv.prodPUnit.
The interchange law (tensorHom_comp_tensorHom) holds because matrix
multiplication turns into iterated sums that factor via tensor_sum and
sum_tensor (the MonoidalPreadditive hypothesis). The pentagon and triangle
identities reduce componentwise to the corresponding identities in C.
Tensor product data on Mat_ C #
Tensor product of objects in Mat_ C: index by the product, with
componentwise tensor in C.
Equations
Instances For
Tensor product of morphisms in Mat_ C: the Kronecker product.
Equations
- RS.matTensorHom f g (j₁, j₂) (j₁_1, j₂_1) = CategoryTheory.MonoidalCategoryStruct.tensorHom (f j₁ j₁_1) (g j₂ j₂_1)
Instances For
The tensor unit in Mat_ C.
Equations
- RS.matTensorUnit = { ι := PUnit.{1}, fintype := PUnit.fintype, X := fun (x : PUnit.{1}) => CategoryTheory.MonoidalCategoryStruct.tensorUnit C }
Instances For
Structural isomorphisms #
The associator and unitors are "diagonal" morphisms: given an equivalence of
index types, the entry at (i, e i) is the corresponding structural morphism
of C, and all other entries are zero.
The associator hom in Mat_ C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The associator inv in Mat_ C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left unitor hom in Mat_ C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left unitor inv in Mat_ C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The right unitor hom in Mat_ C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The right unitor inv in Mat_ C.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Isomorphism proofs for the structural morphisms #
Diagonal ≫ diagonal collapses to a single summand: all off-diagonal entries
in the intermediate sum vanish. Finset.sum_eq_single_of_mem identifies the
unique nonzero term, and the on-diagonal entry then simplifies.
The associator isomorphism in Mat_ C.
Equations
- RS.matAssociator M N K = { hom := RS.matAssocHom M N K, inv := RS.matAssocInv M N K, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The left unitor isomorphism in Mat_ C.
Equations
- RS.matLeftUnitor M = { hom := RS.matLeftUnitorHom M, inv := RS.matLeftUnitorInv M, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The right unitor isomorphism in Mat_ C.
Equations
- RS.matRightUnitor M = { hom := RS.matRightUnitorHom M, inv := RS.matRightUnitorInv M, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
MonoidalCategoryStruct instance #
The monoidal data on the matrix category: index products on objects, Kronecker products on morphisms.
Equations
- One or more equations did not get rendered due to their size.
MonoidalCategory instance #
We use MonoidalCategory.ofTensorHom which requires proofs of the interchange
law, naturality of structural isomorphisms, and the pentagon and triangle
coherence identities. Each proof goes pointwise via Mat_.hom_ext, collapses
diagonal sums via Finset.sum_eq_single_of_mem, and reduces to the
corresponding axiom in C.
Pentagon and triangle coherences #
Both proofs go pointwise via Mat_.hom_ext, fully unfold the structural
morphisms to nested dite expressions, use dite_comp/comp_dite/
tensor_dite/dite_tensor to push compositions inside the dites,
decompose product sums into iterated sums, and then collapse each sum
via Finset.sum_dite_irrel + Fintype.sum_dite_eq'. After all sums are
gone both sides reduce to the corresponding coherence in C.
The monoidal structure on Mat_ C induced by the componentwise tensor
product and Kronecker product of morphisms.
Equations
- RS.matMonoidal = CategoryTheory.MonoidalCategory.ofTensorHom ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Composition through a right-associated triple tensor, entry by entry.
And through a left-associated one — the two sides of the pentagon.
Composition through a tensor of two objects, entry by entry.