Ask Your Question
2

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
[x0,x1]
sage: a._right
x1

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

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

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
2

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)
True
sage: a_tree._left
[x0, x1]
sage: a_tree._right
x1

You may want to discuss this on sage-devel.

edit flag offensive delete link more

Comments

1

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
False

which can be worked around via something like

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

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

Stats

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

Seen: 165 times

Last updated: Feb 13 '20