# young_project_tensor

Project tensors with their Young projector.

Project tensors with their Young projection operator. This works for
simple symmetric or anti-symmetric objects, as in
A_{m n}::Symmetric.
ex:= A_{m n} A_{m p};

\(\displaystyle{}A_{m n} A_{m p}\)

young_project_tensor(_);

\(\displaystyle{}\left(\frac{1}{2}A_{m n}+\frac{1}{2}A_{n m}\right) \left(\frac{1}{2}A_{m p}+\frac{1}{2}A_{p m}\right)\)

but more generically works for any tensor which has
a

`TableauSymmetry`

property attached to it. A_{m n p}::TableauSymmetry(shape={2,1}, indices={0,2,1}).
ex:= A_{m n p};

\(\displaystyle{}A_{m n p}\)

young_project_tensor(_);

\(\displaystyle{}\frac{1}{3}A_{m n p}+\frac{1}{3}A_{p n m} - \frac{1}{3}A_{n m p} - \frac{1}{3}A_{p m n}\)

When the parameters

`modulo_monoterm`

is set to `True`

, the resulting
expression will be simplified using the monoterm symmetries of the
tensor,A_{m n p}::TableauSymmetry(shape={2,1}, indices={0,2,1}).
ex:= A_{m n p};

\(\displaystyle{}A_{m n p}\)

young_project_tensor(_, modulo_monoterm=True);

\(\displaystyle{}\frac{2}{3}A_{m n p} - \frac{1}{3}A_{n p m}+\frac{1}{3}A_{m p n}\)

(in this example, the tensor is anti-symmetric in the indices 0 and 1,
hence the simplification compared to the previous example).