On Wed, Feb 23, 2011 at 06:39:03PM -0500, Christian Stump wrote:
> After pulling again, you should get the problem I had:
> 
> sage: ct = CartanType(['A',3])
> sage: L = ct.root_system().root_lattice()
> sage: L.simple_root(1)
> alpha[1]
> sage: L.simple_root(1).associated_coroot()
> ...
> -> 1777         assert domain.base_ring()    == codomain.base_ring()
> ...
> AssertionError
> 
> The reason for the error is as described.

Ok, thanks, I see the issue now. There are several parts to it:

(a) The name "to_coroot_lattice_morphism" is misleading since the
    results lives in the coroot space.

(b) The implementation is broken, since one currently can't define a
    diagonal morphism from a K-free-module to a L-free-module when K
    is a strict subring of L.

Hmm. Nothing bad, but some though should be put in to formalize a bit
more the specifications. That would be a bit tedious by e-mail since
there are some mathematical technicalities. So if you have a quick
workaround for your current needs, I suggest that we have a brainstorm
about this next May. For the record, here are some questions to
discuss then.

Let L be a realization of the root lattice:

 - Where should L.coroots() live?
 - Where should L.coweights() live? How to handle the non finite cases
   (the Cartan matrix being singular, one may not be able to define
   the dual basis depending on how the roots are realized)?
 - What are the exact specs we want to have for the morphism above (nu
   in the litterature)

> > The conceptual way (and thus independent on the realization at hand)
> > is to take the scalar product of beta with the simple coweight
> > corresponding to alpha. This should (be made to) work; however there
> > are things to straighten out around scalar products and coweights ...
> 
> yes, but currently, such a scalar product is not available, is it?

No, but it really should. That's actually the very first feature I
wrote when I implemented root systems in MuPAD. But it was trivial to
achieve with MuPAD coercion's system (one just had to overload the
scalar operator with one implementation for a couple pairs of spaces);
it's currently a bit more tedious in Sage. Hopefuly I'll get to
improve Sage's coercion system this Spring.

> Also conceptually, these coefficients are used to define the
> coweights, so it seems to me like the wrong way to access them. Or
> am I wrong?

That's how all dual bases are defined: this does not prevent them to
be useful computationaly. Of course, one cannot simultaneously
*construct* a dual basis from the scalar product, and use the dual
basis to implement the scalar product. But that's no issue here.

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