\cdbalgorithm{young\_project}{}

Project the indicated expression onto a Young tableau 
representation. This includes the normalisation factor, such that
applying the operation twice does not change the result anymore. 
For example,
\begin{screen}{1,2,5,6}
A_{m n} B_{p}:
@young_project!(%){2,1}{0,1,2};
  1/3 A_{m n} B_{p} + 1/3 A_{n m} B_{p} 
- 1/3 A_{p n} B_{m} - 1/3 A_{n p} B_{m};
@young_project!(%){2,1}{0,1,2}:
@sumflatten!(%):
@collect_terms!(%);
  1/3 A_{m n} B_{p} + 1/3 A_{n m} B_{p} 
- 1/3 A_{p n} B_{m} - 1/3 A_{n p} B_{m};
\end{screen}
The first argument gives the tableau shape, while the second argument
gives the index position associated to each box in the Young tableau
(similar to the way in which the \subsprop{TableauSymmetry} property
works; note that this algorithm does not require the tensors to have
any specific symmetries).  The index positions given in the second
argument count from zero.

\cdbseealgo{young_project_tensor}
\cdbseealgo{young_project_product}
\cdbseeprop{TableauSymmetry}


