Pure tensors on two strands #
Calculations on a tensor square index their pure tensors by Fin 2, and repeatedly need the same
three pieces of bookkeeping: a sum over the functions Fin 2 → ι is a double sum, a pure tensor
indexed by Fin 2 may be rewritten in ![·, ·] form, and pushing a matrix through both strands
re-expands a basis pure tensor in the standard basis. None of them says anything about what the
tensor square is being used for, so they live here rather than in any one consumer.
Main results #
TauCeti.sum_pi_fin_two: a sum overFin 2 → ιis a double sum overι.TauCeti.tprod_fin_two: a pure tensor on two strands is⨂ₜ ![v 0, v 1].Matrix.piTensorProductMap_tprod_single: applying a matrix in both strands re-expands a basis pure tensor in the standard basis. Use it whenever a two-strand pure tensor of standard basis vectors is pushed throughPiTensorProduct.mapand the result is wanted coefficientwise.Matrix.piTensorProductMap_bivector: the same for a whole bivector∑ x y, K x y • ⨂ₜ, which becomes the bivector of the congruateA * K * Aᵀ.Amay be rectangular, so the result is indexed by its row type.
A sum over the functions Fin 2 → ι is a double sum.
A pure tensor on two strands, written in ![·, ·] form.
Applying a matrix A in both strands re-expands a pure tensor of standard basis vectors back
in the standard basis: the coefficient of Pi.single p 1 ⊗ Pi.single q 1 is A p x * A q y.
Applying a matrix A in both tensor factors turns the bivector of K into the bivector of the
congruate A * K * Aᵀ. It is the computation behind the invariance of the Brauer cup.