#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.

Reply via email to