Ask Your Question

Acess bracked elements in free lie algebra element?

asked 2020-02-13 04:35:19 +0200

samdehority gravatar image

I'm trying to access the left and right elements in a free lie algebra element, whose monomials are stored as binary trees. Thus I want a method (like exists in the source for lie_algebra_element) which would return something like

sage:  L = LieAlgebra(QQ, 3, 'x')
sage: x0,x1,x2 = L.gens()
sage: Lyn = FL.Lyndon()
sage: a = Lyn.graded_basis(3)[2]; a
[[x0, x1], x1]
sage: a._left
sage: a._right

Of course the last 4 lines are fake. One way of seeing this is the following:

sage: isinstance(a, LyndonBracket)
sage: isinstance(a, LieBracket)

How do I fix this "the right way" ? My current solution is just to set

sage: a_tree = eval(repr(a)); a_tree
[[x0, x1], x1]

But this feels extremely wrong.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-02-13 11:14:15 +0200

rburing gravatar image

There seems to be room for improvement in the design here. Basis elements apparently have the same parent as ordinary elements, and a.monomials() returns them as such, which makes it hard to get at the underlying tree.

From the source code, accessed by a??, we find that we can access the actual monomial by e.g.:

sage: a_tree = a.list()[0][0]; a_tree
[[x0, x1], x1]
sage: isinstance(a_tree, sage.algebras.lie_algebras.lie_algebra_element.LyndonBracket)
sage: a_tree._left
[x0, x1]
sage: a_tree._right

You may want to discuss this on sage-devel.

edit flag offensive delete link more



I went ahead and posted a topic on sage-devel here. Your code works but there is still some unfortunate behavior, namely

sage: a_tree._right == x1

which can be worked around via something like

sage: a_tree._right == x1.list()[0][0]

Just paying careful attention to which objects are Lyndon basis elements and which are the binary trees. This has worked for my code but it would be way nicer if there was a cleaner way.

samdehority gravatar imagesamdehority ( 2020-02-13 23:46:52 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2020-02-13 04:34:45 +0200

Seen: 70 times

Last updated: Feb 13 '20