Hi Jesus, Dan,

On Thu, Oct 04, 2012 at 06:51:16AM -0700, JesusTorrado wrote:
>    Particle physicists love coroot style (we call it 'Dynkin labels'), so the
>    possibility of using it for indicating representations in a
>    WeylCharacterRing is great!
> 
>    For consistency, what about adding a  style='coroots' for
>    weight_multiplicities() too?
>
>    ...
>
>    What do you think? Is it useful? Would there be a quicker way? Is it
>    already somehow implemented and I do not know it?

Thanks for your well laid out request!

If I understand properly, particle physicists like to represent their
weights as linear combinations of fundamental weights, and in dense
notations. I.e. (-1,1) is -Lambda_1 + Lambda_2. Is that right?

In this case, rather than inserting options here and there, I would
recommend the following approach which would give a flexible
environment that everyone could customize to his/her taste:

(1) Generalize WeylCharacterRing to be parametrized by any realization
    L of a weight lattice. Then, all the weights would be represented
    as elements of L. Of course, the associated weight ring would use
    the same realization:

        sage: A2 = WeylCharacterRing(RootSystem(["A",2]).weight_lattice())
        sage: rep = A2(1,0)
        sage: rep.weight_multiplicities()
        {Lambda1:1, Lambda2-Lambda1: 1, -Lambda2: 1

        sage: A2 = WeylCharacterRing(RootSystem(["A",2]).ambient_lattice())
        sage: rep = A2(2/3, -1/3, -1/3)           # or something similar
        sage: rep.weight_multiplicities()
        {(2/3, -1/3, -1/3): 1, (-1/3, 2/3, -1/3): 1, (-1/3, -1/3, 2/3): 1}

    Of course, WeylCharacterRing("A2", style="coroots") and
    WeylCharacterRing("A2") would be shorthands for the above.

    In finite types, one could even think, about:

        A2 = WeylCharacterRing("A2", RootSystem(["A",2]).root_space())

    But that's another story ...

(2) Make root/weight/ambient space/lattices (and in general
    CombinatorialFreeModule) configurable, so that one could choose
    between sparse or dense notation:

        sage: L = RootSystem(["A",2]).weight_lattice(repr="sparse")
        sage: L.fundamental_weight(1)
        Lambda1
        sage: L = RootSystem(["A",2]).weight_lattice(repr="dense")
        sage: L.fundamental_weight(1)
        (1,0)

    Probably we would want to make this configurable for all
    lattices in a given session. Something like

        sage: RootSystem.set_options(repr="dense")

Dan: in the code for the WeylCharacterRing, do you foresee any piece
of code that would not work generically for any realization of the
weight lattice?

Note: at some point, we probably will need to introduce a new object
in Sage to model not only a realization of the weight lattice (i.e. a
space that embeds the weight lattice), but the weight lattice itself,
embedded in this larger space. That in order to state that the weight
ring is the group algebra of the weight lattice itself, and not of the
larger space in which it's embedded.


By the way: I did not have time to comment on your optimization patch
for the WeylCharacterRing. If I am understanding it properly, it
amounts to having a fast data structure for weights, made of lists of
int's, right? Basically, this is implementing a fast dense data
structure for free modules over ZZ. Once your patch is in Sage, we
should think about generalizing it:

- Synchronize with Matthieu's work to implement fast dense
  (Combinatorial)FreeModule over ZZ
- Use this for the root/weight/ambient lattices

Dan: unless it's more urgent than this, all the above would be a good
project to work on together at ICERM.

Cheers,
                                Nicolas
--
Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net>
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.

Reply via email to