How to access tree information from Free Lie Algebra elements? [closed]

asked 2020-02-13 04:33:58 +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: sx0,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 reopen merge delete

Closed for the following reason duplicate question by eric_g
close date 2020-02-13 10:31:22.184069