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