#17998: is_dominant methods of weight lattices should ignore vectors orthogonal
to
coroots
------------------------------------+------------------------
Reporter: bump | Owner: bump
Type: defect | Status: new
Priority: major | Milestone: sage-6.6
Component: combinatorics | Resolution:
Keywords: dominant, days64 | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
------------------------------------+------------------------
Changes (by bump):
* cc: sage-combinat, aschilling, nthiery, mshimo, tscrim (added)
Old description:
> Weight lattices have definitions in `root_lattice_realizations.py` and in
> `weight_space.py`. Adding a vector that is orthogonal to the simple
> coroots should not affect whether a weight is dominant. Furthermore
> there is a separate function called is_dominant_weight defined in
> root_lattice_realizations. There are reasons for having separate
> implementations: the realization in weight_space.py is more efficient
> since it avoids taking scalar products. Instead, it just looks at the
> coefficients to see if they are positive. But this method only works if
> the basis consists of the fundamental weights. Moreover in an extended
> affine weight lattice the basis consists of the fundamental weights plus
> the null root 'delta'. The coefficient of 'delta' should be ignored, so
> currently this method can give wrong results.
>
> {{{
> sage: P=RootSystem(['A',2,1]).weight_lattice(extended=true)
> sage: delta=P.null_root(); delta
> delta
> sage: Lam = P.fundamental_weights()
> sage: Lam[0].is_dominant()
> True
> sage: (Lam[0]-delta).is_dominant()
> False
> }}}
>
> Consequently we need to revise a remark in the docstring for
> is_dominant_weight, and refine the definition in `weight_lattice.py` to
> ignore the coefficient of `'delta'`
New description:
Weight lattices have definitions in `root_lattice_realizations.py` and in
`weight_space.py`. Furthermore there is a separate function called
`is_dominant_weight` defined in root_lattice_realizations. There is a
reason for having separate implementations: the realization in
`weight_space.py` (when available) is more efficient since it avoids
taking scalar products.
Adding a vector that is orthogonal to the simple coroots should not affect
whether a weight is dominant. Indeed, in //Infinite-dimensional Lie
algebras// Kac defines dominant to mean having positive inner product with
the positive coroots, and there doesn't seem to be any other useful
convention. But the method in `weight_space.py` just looks at the
coefficients to see if they are positive. But this method only works if
the basis consists of the fundamental weights. In an extended affine
weight lattice the basis consists of the fundamental weights plus the null
root 'delta'. The coefficient of 'delta' should be ignored, so currently
this method can give wrong results.
{{{
sage: P=RootSystem(['A',2,1]).weight_lattice(extended=true)
sage: delta=P.null_root(); delta
delta
sage: Lam = P.fundamental_weights()
sage: Lam[0].is_dominant()
True
sage: (Lam[0]-delta).is_dominant()
False
}}}
Consequently we need to revise a remark in the docstring for
is_dominant_weight, and refine the definition in `weight_lattice.py` to
ignore the coefficient of `'delta'` in the method in `weight_space.py`.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/17998#comment:1>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" 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-trac.
For more options, visit https://groups.google.com/d/optout.