# fusionProduct -- computes the multiplicities of irreducibles in the decomposition of the fusion product of U and V

## Description

This function implements the Kac-Walton algorithm; see Di Francesco, Mathieu, and Senechal, Conformal Field Theory, Springer Graduate Texts in Theoretical Physics, Section 16.2.2.

Given two irreducible Lie algebra modules U and V, the function returns the fusion product of U and V at level l. (We are abusing notation and terminology a little here; the fusion product is really a product for modules over an affine Lie algebra. However, since the Kac-Walton algorithm is defined entirely using the combinatorics of the root system of the underlying finite-dimensional Lie algebra, we may therefore use the Kac-Walton algorithm to define a product on Lie algebra modules as well.)

The Weyl group of a simple Lie algebra is finite; in contrast, the affine Weyl group of an affine Lie algebra is infinite. To keep Macaulay2 from trying to compute infinitely long words in this group, the default length of allowed words is set to 10. The user may override this with the optional argument MaxWordLength.

The example below shows that for g=sl3 and λ=2 ω1 + ω2 = (2,1), μ= ω1 + 2 ω2 = (1,2), the level 3 fusion product V(2,1)3 V(1,2) contains one copy of V(0,0) and one copy of V(1,1).

 `i1 : g=simpleLieAlgebra("A",2);` `i2 : U=irreducibleLieAlgebraModule({2,1},g);` `i3 : V=irreducibleLieAlgebraModule({1,2},g);` ```i4 : fusionProduct(U,V,3) o4 = {LieAlgebra => g } isIrreducible => false DecompositionIntoIrreducibles => HashTable{{0, 0} => 1} {1, 1} => 1 o4 : g module```

## Ways to use fusionProduct :

• fusionProduct(LieAlgebraModule,LieAlgebraModule,ZZ)