I claim there is currently a mathematical mistake in the way the 
"is_real_root" method in the file root_lattice_realizations.py is 
implemented. There is also a parallel mistake in "is_imaginary_root". Let 
me illustrate with an example:

sage: R = RootSystem(["A",2,1]).weight_lattice()
sage: alpha = R.simple_roots()
sage: alpha[0].is_real_root()
True
sage: b = 2*alpha[0]
sage: b.is_real_root()
True

b.is_real_root() should return false because 2*alpha[0] is not a real root. 
In particular, 2*alpha[0] is not a root.

Looking at the implementation of "is_real_root()", it is easy to see why 
this isn't working properly.

        def is_real_root(self):
            r"""
            Return ``True`` if ``self`` is a real root.

            A root `\alpha` is real if it is `W` conjugate to a simple
            root where `W` is the corresponding Weyl group.

            EXAMPLES::

                sage: Q = RootSystem(['B',2,1]).root_lattice()
                sage: alpha = Q.simple_roots()
                sage: alpha[0].is_real_root()
                True
                sage: elt = alpha[0] + alpha[1] + 2*alpha[2]
                sage: elt.is_real_root()
                False
            """
            return self.norm_squared() > 0

self.norm_squared() is not the way to check whether an element of the root 
space or weight_space is a real root. 

The problem is that there is no check to see whether self is a root. In 
affine types, the following should work:

return (self.norm_squared() > 0) and self.is_root()

where is_root() would be a method that checks whether self is a root. But 
this isn't currently implemented, and I don't know what would be the most 
intelligent way to implement this. In affine types, this is fairly straight 
forward assuming you have a test for checking whether something is a root 
in the finite root system, but I don't know for general Cartan types. 

What do people think about this? I have not contributed to sage in the 
past, but I am interested in implementing the fix.

Also, is there a better place for me to post this bug. I looked 
here: http://wiki.sagemath.org/support/ReportingBugs, and it suggested I 
post on sage-support since I don't have experience developing sage or using 
trac. 

Best,
Dinakar






-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to