a field-theory motivated approach to computer algebra

## lr_tensor

Compute the tensor product of two Young tableaux
Compute the tensor product of two tableaux or filled tableaux. The algorithm acts on objects which have the Tableau or FilledTableau property, through which it is possible to set the dimension. The standard Littlewoord-Richardson algorithm is used to construct the tableaux in the tensor product. An example with Tableau objects is given below.
\tableau{#}::Tableau(dimension=10). ex:=\tableau{2}{2} \tableau{2}{2}{1}; lr_tensor(_);
$$\displaystyle{}\ydiagram{2,2} \otimes \ydiagram{2,2,1}$$
\tableau(2 , 2) \tableau(2 , 2 , 1)
$$\displaystyle{}\ydiagram{4,4,1} \oplus \ydiagram{4,3,2} \oplus \ydiagram{4,3,1,1} \oplus \ydiagram{4,2,2,1} \oplus \ydiagram{3,3,2,1} \oplus \ydiagram{3,3,1,1,1} \oplus \ydiagram{3,2,2,2} \oplus \ydiagram{3,2,2,1,1} \oplus \ydiagram{2,2,2,2,1}$$
\tableau(4 , 4 , 1) + \tableau(4 , 3 , 2) + \tableau(4 , 3 , 1 , 1) + \tableau(4 , 2 , 2 , 1) + \tableau(3 , 3 , 2 , 1) + \tableau(3 , 3 , 1 , 1 , 1) + \tableau(3 , 2 , 2 , 2) + \tableau(3 , 2 , 2 , 1 , 1) + \tableau(2 , 2 , 2 , 2 , 1)
The same example, but now with FilledTableau objects, is
\ftableau{#}::FilledTableau(dimension=10). ex:=\ftableau{0,0}{1,1} \ftableau{a,a}{b,b};
$$\displaystyle{}\ytableaushort{{0}{0},{1}{1}} \otimes \ytableaushort{{a}{a},{b}{b}}$$
\ftableau({0, 0} , {1, 1}) \ftableau({a, a} , {b, b})
lr_tensor(_);
$$\displaystyle{}\ytableaushort{{0}{0}{a}{a},{1}{1}{b}{b}} \oplus \ytableaushort{{0}{0}{a}{a},{1}{1}{b},{b}} \oplus \ytableaushort{{0}{0}{a}{a},{1}{1},{b}{b}} \oplus \ytableaushort{{0}{0}{a},{1}{1}{b},{a},{b}} \oplus \ytableaushort{{0}{0}{a},{1}{1},{a}{b},{b}} \oplus \ytableaushort{{0}{0},{1}{1},{a}{a},{b}{b}}$$
\ftableau({0, 0, a, a} , {1, 1, b, b}) + \ftableau({0, 0, a, a} , {1, 1, b} , b) + \ftableau({0, 0, a, a} , {1, 1} , {b, b}) + \ftableau({0, 0, a} , {1, 1, b} , a , b) + \ftableau({0, 0, a} , {1, 1} , {a, b} , b) + \ftableau({0, 0} , {1, 1} , {a, a} , {b, b})
ex:=\ftableau{1} \ftableau{2} \ftableau{3} \ftableau{4};
$$\displaystyle{}\ytableaushort{{1}} \otimes \ytableaushort{{2}} \otimes \ytableaushort{{3}} \otimes \ytableaushort{{4}}$$
\ftableau(1) \ftableau(2) \ftableau(3) \ftableau(4)
converge(ex): lr_tensor(_) distribute(_) ;
$$\displaystyle{}\ytableaushort{{1}{2}{3}{4}} \oplus \ytableaushort{{1}{2}{3},{4}} \oplus \ytableaushort{{1}{2}{4},{3}} \oplus \ytableaushort{{1}{2},{3}{4}} \oplus \ytableaushort{{1}{2},{3},{4}} \oplus \ytableaushort{{1}{3}{4},{2}} \oplus \ytableaushort{{1}{3},{2}{4}} \oplus \ytableaushort{{1}{3},{2},{4}} \oplus \ytableaushort{{1}{4},{2},{3}} \oplus \ytableaushort{{1},{2},{3},{4}}$$
\ftableau({1, 2, 3, 4}) + \ftableau({1, 2, 3} , 4) + \ftableau({1, 2, 4} , 3) + \ftableau({1, 2} , {3, 4}) + \ftableau({1, 2} , 3 , 4) + \ftableau({1, 3, 4} , 2) + \ftableau({1, 3} , {2, 4}) + \ftableau({1, 3} , 2 , 4) + \ftableau({1, 4} , 2 , 3) + \ftableau(1 , 2 , 3 , 4)