#18678: Implement convolution_product for HopfAlgebras
-------------------------------------+-------------------------------------
Reporter: alauve | Owner:
Type: enhancement | Status: needs_work
Priority: minor | Milestone: sage-6.8
Component: categories | Resolution:
Keywords: days65, | Merged in:
convolution product | Reviewers:
Authors: Aaron Lauve | Work issues:
Report Upstream: N/A | Commit:
Branch: | a80d67fec7ca9965cc8963c2fb2000a97a569cf5
u/alauve/implement_convolution_product_for_hopfalgebras| Stopgaps:
Dependencies: |
-------------------------------------+-------------------------------------
Changes (by {'newvalue': u'Aaron Lauve', 'oldvalue': u'alauve'}):
* cc: nthiery, virmaux, jhpalmieri, nborie, mshimo, tscrim, elixyre
(added)
* author: alauve => Aaron Lauve
Old description:
> Description to come (we're working live at Sage Days 65).
New description:
In the study of Hopf algebras (both graded and finite dimensional), one is
led to look at convolution powers of the identity, and convolution
products more generally. These should be implemented in `bialgebras.py`.
Of possible future utility is the iterated coproduct, so I define that as
well.
--
Comment:
All,
I have merged #18350 with this ticket. Some comments/questions for people
in-the-know to weigh-in on...
* I have moved `.adams_operator()` to `bialgebras.py`, and overwrote it
using code from Amy Pang (''amypang''). Then in `hopf_algebras.py` I
overwrote the bialgebras version, allowing for negative integer powers.
(E.g., the (-2)nd convolution power of the identity is none other than the
2nd power of the antipode.)
* In fact, while adams operators naturally belong in `bialgebras.py`, the
present code actually belongs in `bialgebras_with_basis.py`---as it uses
`.module_morphism()` and `.apply_multilinear_morphism()`---but this would
require more rewriting than I feel qualified to handle.
* '''Easy fix?''' When poking around for an algebra without basis---on
which to test a preliminary version of my code---I noticed that Sage
doesn't know that `QQ[x]` is a module over `QQ` (and hence, one cannot
build ``QQ[x].tensor(QQ[x])`. Crazy.
* '''Easy fix?''' Similarly, even though `B = FreeAlgebra(QQ,a,b)` is
robust enough that `B.tensor(B)` doesn't throw errors, quotients are out-
of-bounds again. Putting `C = B.quotient_ring((a*b-b^2,))`, I get an
AttributeError when asking for `C.tensor(C)`.
* I would like to add some morphism functionality at the parent level
before setting ticket to "needs_review": given linear morphisms R,S,T for
a bialgebra B, create their convolution product, a new morphism, via `RST
= B.convolution_product(R,S,T)`. However, it seems ticket #15832 will have
a lot of overlap with such code, so I'll hold off on implementing it
unless somebody suggests otherwise.
* If anybody can explain why iterated coproduct followed by iterated
product is slower than Amy Pang's code, I'd love to hear it.
A 'thanks' in advance for any comments.
-- Aaron
--
Ticket URL: <http://trac.sagemath.org/ticket/18678#comment:11>
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.