a field-theory motivated approach to computer algebra

## decompose_product

Decompose a product of tensors by using Young projectors.
Decompose a product of tensors by writing it out in terms of irreducible Young tableau representations, discarding the ones which vanish in the indicated dimension, and putting the results back together again. This algorithm can thus be used to equate terms which are identical only in certain dimensions. If there are no dimension-dependent identities playing a role in the product, then decompose_product returns the original expression,
{ m, n, p, q }::Indices(vector); { m, n, p, q }::Integer(1..4); { A_{m n p}, B_{m n p} }::AntiSymmetric; ex:= A_{m n p} B_{m n q} - A_{m n q} B_{m n p};
$$\displaystyle{}\text{Attached property Indices(position=free) to }\left\{m, \mmlToken{mo}[linebreak="goodbreak"]{} n, \mmlToken{mo}[linebreak="goodbreak"]{} p, \mmlToken{mo}[linebreak="goodbreak"]{} q\right\}.$$
$$\displaystyle{}\text{Attached property Integer to }\left\{m, \mmlToken{mo}[linebreak="goodbreak"]{} n, \mmlToken{mo}[linebreak="goodbreak"]{} p, \mmlToken{mo}[linebreak="goodbreak"]{} q\right\}.$$
$$\displaystyle{}\text{Attached property AntiSymmetric to }\left\{A_{m n p}, \mmlToken{mo}[linebreak="goodbreak"]{} B_{m n p}\right\}.$$
$$\displaystyle{}A_{m n p} B_{m n q}-A_{m n q} B_{m n p}$$
decompose_product(_) canonicalise(_);
$$\displaystyle{}A_{p m n} B_{q m n}-A_{q m n} B_{p m n}$$
However, in the present example, a Schouten identity makes the expression vanish identically in three dimensions,
{ m, n, p, q }::Integer(1..3); ex:=A_{m n p} B_{m n q} - A_{m n q} B_{m n p}; decompose_product(ex) canonicalise(ex);
$$\displaystyle{}\text{Attached property Integer to }\left\{m, \mmlToken{mo}[linebreak="goodbreak"]{} n, \mmlToken{mo}[linebreak="goodbreak"]{} p, \mmlToken{mo}[linebreak="goodbreak"]{} q\right\}.$$
$$\displaystyle{}A_{m n p} B_{m n q}-A_{m n q} B_{m n p}$$
$$\displaystyle{}0$$
Note that decompose_product is unfortunately computationally expensive, and is therefore not practical for large dimensions.