http://groups.google.com/group/sage-combinat-devel/browse_thread/thread/74ed91d5153e6022?hl=en
I forgot to explain in that post how to extract the
weight multiplicities from a character. Here's
how you do that, using Freudenthal's algorithm.
sage: G2 = WeylCharacterRing(['G',2])
sage: w = 2*G2.lattice().fundamental_weights()[0]; w
(2, 0, -2)
sage: chi = G2(w); chi
G2("2.0.-2")
sage: chi.mlist()
[[(-1, 1, 0), 2],
[(-1, -1, 2), 1],
[(1, 1, -2), 1],
<SNIP>
[(0, 0, 0), 3],
[(1, -2, 1), 1]]
In this list, the first element of a pair is a weight,
the second element its multiplicity. Apart from that,
you can decompose tensor products, extract the character
of a crystal, and do branching rules, all explained in
the above link.
Dan
I think you're asking about branching to products,
like GL(4) to the Levi GL(2)xGL(2), i.e. A3->A1xA1.
This is clearly needed. Maybe we need to be able
to make products of root systems. If you can build
the root system for A1 x A1 then the branching
rule is sufficiently general.
Or did I misunderstand the question?
Dan