#16820: Implement ABCs for Lie algebras and finite dimensional given by
structure
cofficients
-------------------------------------+-------------------------------------
Reporter: tscrim | Owner: tscrim
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.7
Component: algebra | Resolution:
Keywords: lie algebras, | Merged in:
days64 | Reviewers:
Authors: Travis Scrimshaw | Work issues:
Report Upstream: N/A | Commit:
Branch: | c1838221b369f47e407ffcd95fd53bd4f239e21d
public/lie_algebras/fd_structure_coeff-16820| Stopgaps:
Dependencies: #16819 |
-------------------------------------+-------------------------------------
Comment (by darij):
Replying to [comment:27 tscrim]:
> IIRC, it's mostly just doing some linear algebra, going rank by rank,
and using the constraint by the Jacobi identity. However I will add it.
A lot of Lie theory is just doing some linear algebra... Linear algebra
does a lot.
> It is more pythonic (and faster, but not noticably). You are the one who
wanted the rule of 3s contract, and because of the category almost every
Lie algebra which has a module attribute also has a `from_vector`. Also
I'd say the failure is more graceful this way as if either one is not
implemented, then it results in an unable to do the coercion/conversion
type error.
You're right -- fixed!
> > > For the `FromAssociative.lift`...well there's some ambiguity there
as to whether we want to lift to the UEA or just some enveloping algebra.
I opted to lift just to the defining algebra (which I forgot to change in
the docs) as this seemed the most natural. We will also have to deal with
subalgebras and a `lift` there.
So you have 3 different meanings of lift now:
- lift from g to U(g);
- lift from g to *some* associative algebra containing g;
- lift from g to a bigger Lie algebra.
I have no idea how I am to rely on a method which can do either of these
three things depending on the implementation (and possibly on the MRO?).
These warrant distinct names.
> Renaming which one?
Either.
> Whoops, yes. Do `sl(QQ, 2, representation='matrix')` or one of the upper
triangular matrix Lie algebras.
Thanks. And you know what's funny? The try/except change actually fixed
the == 0 tests...
but caused some new crap:
{{{
sage: L = lie_algebras.sl(QQ, 2, representation='matrix')
sage: L(2)
[2 0]
[0 2]
}}}
This is not in sl(2)!
> No, they don't have to be allowed. In fact, because they are the empty
set, they aren't really well-defined to me.
0-dimensional Lie algebras exist and sometimes you get them by quotienting
or restricting. It isn't mathematically reasonable to exclude them.
----
New commits:
||[http://git.sagemath.org/sage.git/commit/?id=c1838221b369f47e407ffcd95fd53bd4f239e21d
c183822]||{{{all doctests pass again :)}}}||
--
Ticket URL: <http://trac.sagemath.org/ticket/16820#comment:29>
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.