Hi Travis, please don't take my poste as a suggestion. I'm not close enough to the subject that I really could do that. I just wanted to point out where the confusion comes from (hoping you have I good Idea what we can do against it).
Best, Sebastian 2018-02-26 12:04 GMT+01:00 Travis Scrimshaw <tsc...@ucdavis.edu>: > > >> I had that confusion about the pbw_basis method, as well. From my (non >> expert) point of view I would have expected the following: >> >> What is now your L.pbw_basis() I expected to be >> L.universal_enveloping_algebra(). This would match what the >> representation string is telling you: >> >> sage: L.pbw_basis() >> Universal enveloping algebra of Lie algebra of ['A', 2] in the Chevalley >> basis in the Poincare-Birkhoff-Witt basis >> >> >> >> What is now your L.universal_enveloping_algebra() is just another >> (isomorphic) realization. Therefore it could be accessed in this way: >> >> L.universal_enveloping_algebra().as_nc_polynomial_ring() >> >> matching what the representation string is telling you: >> >> sage: L.universal_enveloping_algebra() >> Noncommutative >> Multivariate Polynomial Ring in b0, b1, b2, b3, b4, b5, b6, b7 over >> Rational Field, nc-relations: {b5*b0: b0*b5 - b4, b6*b3: b3*b6 + 2*b6, >> ................. >> >> Furthermore, conversion maps between these two realization (in both >> directions) are desirable. The access to the PBW-basis would be >> >> L.universal_enveloping_algebra().basis() >> >> for which a shorthand L.pbw_basis() maybe be implemented (or not). >> >> That is both horrible to work with and practically impossible to do. You > require *every* implementation returned of UEA to know how to go to a PBW > basis (and in principle, from). There is no reasonable way to expect the > Lie algebra to know how to do this, and you would have to (IMO needlessly) > subclass, e.g., NC poly ring, which is generally not a UEA. Also, while NC > poly ring is generic, it would only work for finite-dimensional Lie > algebras. We could do this with a category for UEAs, but I do not see any > benefit to having this overhead and complications. Also, what about the > cases where the only reasonable implementation of the UEA is the PBW basis? > What about when there are multiple realizations*? Why should the UEA > require anything special about the implementation? For the places where I > do need the specialized things, that is why there is the separate > pbw_basis(). > > Also, by being in the category of ModulesWithBasis(), the .basis() must > return the distinguished basis object, not an isomorphic algebra (since we > consider categories to be like abstract classes and defining the API). > > Also, think about it this way, say we have a global function PBWBasis. It > would naturally take in a Lie algebra (and optional ordering of the basis) > as input. Now in many ways L.pbw_basis() is equivalent to pbw_basis(L) and > the PBW basis is strongly correlated to the Lie algebra. So it is natural > IMO to have such a method and as a primary entry point. > > Best, > Travis > > * - Although to be fair, this is currently something that will need to be > addressed with the current framework. However, there is a possible > approaches by returning an algebra that has multiple realizations. > > -- > You received this message because you are subscribed to a topic in the > Google Groups "sage-devel" group. > To unsubscribe from this topic, visit https://groups.google.com/d/ > topic/sage-devel/XK-RxN3_qvY/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > sage-devel+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at https://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.