Skip to content

Conversation

ehaka
Copy link
Contributor

@ehaka ehaka commented Oct 19, 2023

The FreeLieAlgebraElement.lift method can try to call both LieGenerator.lift and LieBracket.lift, but the former is not defined. As a consequence coercion into the universal enveloping algebra fails for elements which are not brackets:

sage: L = LieAlgebra(QQ, ['X','Y']).Lyndon()
sage: X,Y = L.gens()
sage: U = L.universal_enveloping_algebra()
sage: U.one() + X.bracket(Y) # works fine
1 + X*Y - Y*X
sage: U.one() + X
Traceback (most recent call last)
...
AttributeError: 'sage.algebras.lie_algebras.lie_algebra_element.Lie' object has no attribute 'lift'

Copying the pre-existing code in LieBracket.lift to LieGenerator.lift with straight-forward modifications (since the generator case is even simpler) fixes this problem.

sage: U.one() + X
1 + X

@github-actions
Copy link

Documentation preview for this PR (built with commit 8b61732; changes) is ready! 🎉

Copy link
Collaborator

@tscrim tscrim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch. Thank you for fixing this!

vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 21, 2023
sagemathgh-36487: Add a lift method to LieGenerator
    
The `FreeLieAlgebraElement.lift` method can try to call both
`LieGenerator.lift` and `LieBracket.lift`, but the former is not
defined. As a consequence coercion into the universal enveloping algebra
fails for elements which are not brackets:

```
sage: L = LieAlgebra(QQ, ['X','Y']).Lyndon()
sage: X,Y = L.gens()
sage: U = L.universal_enveloping_algebra()
sage: U.one() + X.bracket(Y) # works fine
1 + X*Y - Y*X
sage: U.one() + X
Traceback (most recent call last)
...
AttributeError: 'sage.algebras.lie_algebras.lie_algebra_element.Lie'
object has no attribute 'lift'
```

Copying the pre-existing code in `LieBracket.lift` to
`LieGenerator.lift` with straight-forward modifications (since the
generator case is even simpler) fixes this problem.

```
sage: U.one() + X
1 + X
```
    
URL: sagemath#36487
Reported by: Eero Hakavuori
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 22, 2023
sagemathgh-36487: Add a lift method to LieGenerator
    
The `FreeLieAlgebraElement.lift` method can try to call both
`LieGenerator.lift` and `LieBracket.lift`, but the former is not
defined. As a consequence coercion into the universal enveloping algebra
fails for elements which are not brackets:

```
sage: L = LieAlgebra(QQ, ['X','Y']).Lyndon()
sage: X,Y = L.gens()
sage: U = L.universal_enveloping_algebra()
sage: U.one() + X.bracket(Y) # works fine
1 + X*Y - Y*X
sage: U.one() + X
Traceback (most recent call last)
...
AttributeError: 'sage.algebras.lie_algebras.lie_algebra_element.Lie'
object has no attribute 'lift'
```

Copying the pre-existing code in `LieBracket.lift` to
`LieGenerator.lift` with straight-forward modifications (since the
generator case is even simpler) fixes this problem.

```
sage: U.one() + X
1 + X
```
    
URL: sagemath#36487
Reported by: Eero Hakavuori
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 23, 2023
sagemathgh-36487: Add a lift method to LieGenerator
    
The `FreeLieAlgebraElement.lift` method can try to call both
`LieGenerator.lift` and `LieBracket.lift`, but the former is not
defined. As a consequence coercion into the universal enveloping algebra
fails for elements which are not brackets:

```
sage: L = LieAlgebra(QQ, ['X','Y']).Lyndon()
sage: X,Y = L.gens()
sage: U = L.universal_enveloping_algebra()
sage: U.one() + X.bracket(Y) # works fine
1 + X*Y - Y*X
sage: U.one() + X
Traceback (most recent call last)
...
AttributeError: 'sage.algebras.lie_algebras.lie_algebra_element.Lie'
object has no attribute 'lift'
```

Copying the pre-existing code in `LieBracket.lift` to
`LieGenerator.lift` with straight-forward modifications (since the
generator case is even simpler) fixes this problem.

```
sage: U.one() + X
1 + X
```
    
URL: sagemath#36487
Reported by: Eero Hakavuori
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 24, 2023
sagemathgh-36487: Add a lift method to LieGenerator
    
The `FreeLieAlgebraElement.lift` method can try to call both
`LieGenerator.lift` and `LieBracket.lift`, but the former is not
defined. As a consequence coercion into the universal enveloping algebra
fails for elements which are not brackets:

```
sage: L = LieAlgebra(QQ, ['X','Y']).Lyndon()
sage: X,Y = L.gens()
sage: U = L.universal_enveloping_algebra()
sage: U.one() + X.bracket(Y) # works fine
1 + X*Y - Y*X
sage: U.one() + X
Traceback (most recent call last)
...
AttributeError: 'sage.algebras.lie_algebras.lie_algebra_element.Lie'
object has no attribute 'lift'
```

Copying the pre-existing code in `LieBracket.lift` to
`LieGenerator.lift` with straight-forward modifications (since the
generator case is even simpler) fixes this problem.

```
sage: U.one() + X
1 + X
```
    
URL: sagemath#36487
Reported by: Eero Hakavuori
Reviewer(s): Travis Scrimshaw
vbraun pushed a commit to vbraun/sage that referenced this pull request Dec 25, 2023
The `FreeLieAlgebraElement.lift` method can try to call both
`LieGenerator.lift` and `LieBracket.lift`, but the former is not
defined. As a consequence coercion into the universal enveloping algebra
fails for elements which are not brackets:

```
sage: L = LieAlgebra(QQ, ['X','Y']).Lyndon()
sage: X,Y = L.gens()
sage: U = L.universal_enveloping_algebra()
sage: U.one() + X.bracket(Y) # works fine
1 + X*Y - Y*X
sage: U.one() + X
Traceback (most recent call last)
...
AttributeError: 'sage.algebras.lie_algebras.lie_algebra_element.Lie'
object has no attribute 'lift'
```

Copying the pre-existing code in `LieBracket.lift` to
`LieGenerator.lift` with straight-forward modifications (since the
generator case is even simpler) fixes this problem.

```
sage: U.one() + X
1 + X
```

URL: sagemath#36487
Reported by: Eero Hakavuori
Reviewer(s): Travis Scrimshaw
@vbraun vbraun merged commit f37a269 into sagemath:develop Dec 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants