#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:                     |  e07d789ade59bfc8f0475a9ed9bb9216aac0a5ca
  u/alauve/implement_convolution_product_for_hopfalgebras|     Stopgaps:
   Dependencies:  #18350             |
-------------------------------------+-------------------------------------
Changes (by tscrim):

 * dependencies:   => #18350


Comment:

 Replying to [comment:11 alauve]:
 > I have merged #18350 with this ticket.

 I set this as a dependency.

 > * 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.)

 I would make these changes on #18350 directly (I'd recommend `git cherry-
 pick` the commit with that change in #18350 if it's in an isolated commit,
 otherwise you'll have to deal with the merge conflict).

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

 Then I would move the method into `BialgebrasWithBasis` and put an
 `@abstract_method(optional=True)` on an empty `adams_operators` in
 `Bialgebras` (on #18350).

 > * '''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.

 Sage is full of fun oddities like that. Personally I'm not opposed to
 changing the category to `Algebras(QQ).WithBasis()`, but even with that,
 I'd think there's still more work to do to get `QQ[x].tensor(QQ[x])` to
 work...

 > * '''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)`.

 What is `a` and `b`? I think there is an abuse going on, but as of right
 now I cannot even construct `B`.

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

 I would work on #15832 and either create a follow-up with the additional
 code or just add that code directly to #15832.

 > * If anybody can explain why iterated coproduct followed by iterated
 product is slower than Amy Pang's code, I'd love to hear it.

 I would add an `AUTHORS:` block and give Amy the credit for her code. I
 have no idea at this point why this is. Try running `%prun the_command` to
 get timing information and look through that data for hints. Also what
 exactly are you testing this with? What is your timings (in particular,
 the approximate slowdown factor)?

--
Ticket URL: <http://trac.sagemath.org/ticket/18678#comment:13>
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