#10052: Improve the implementation of the Steenrod algebra
-----------------------------------------------------------------------+----
Reporter: jhpalmieri |
Owner: AlexGhitza
Type: enhancement |
Status: needs_review
Priority: major |
Milestone: sage-4.6.1
Component: algebra |
Keywords: steenrod, notebook
Author: John Palmieri |
Upstream: N/A
Reviewer: |
Merged:
Work_issues: minor docstring issues, problems with sub-Hopf algebras |
-----------------------------------------------------------------------+----
Changes (by jhpalmieri):
* status: needs_work => needs_review
Comment:
Replying to [comment:10 niles]:
> > > * problems with coercion:
> >
> > I don't know how to fix this: it has to do with the implementation (or
lack thereof) of tensor products. I don't think it's particular to the
Steenrod algebra, so I'd like to have it dealt with on another ticket.
> >
>
> That sounds reasonable -- I'll try to work out the issue and put up a
ticket (unless you already know what the problem is).
I don't know what the ticket is, although some of the sage-combinat people
probably do.
> > > * printing of elements: to be consistent with the rest of sage,
perhaps multiplication should print as `*`:
> >
> > I understand what you're saying, but I think that printing this way is
ugly. (This was one of the reasons for #9370.) If you really want, I can
change it, but I'd rather not.
>
> Well, I'm not sure if this is a decision that should depend solely on my
opinion or yours; my thinking is that we should opt for consistency over
aesthetics unless there is a really good reason not to. Every other ring
in Sage prints multiplication as `*` -- do you have a good reason to
reverse that convention for the Steenrod algebra?
I would interpret this another way: you include a `*` when you need to in
order to prevent ambiguity. In a situation where you can have polynomial
generators called 'xy' and 'yx' (which would be terrible choices, but
anyway), you have to include `*` so that you you can read `xy * yx`
properly. So you need `*` in a polynomial algebra, or in any algebra in
which the generators have user-specified names. But for the Steenrod
algebra, there are no such possibilities of ambiguity, so you don't need
the `*`.
That's my justification, anyway.
A different way to interpret it: symbols like "Q_{0} Q_{1} P(1,3,2)" could
be viewed as atomic: they are basis elements for the Steenrod algebra. So
it's reasonable to print them without asterisks. Then the question is
whether to insist on a `*` between a scalar and a basis element, which I
just think looks bad, although it is mostly the convention in Sage.
A third view: the existing implementation of the Steenrod algebra doesn't
use `*`. I haven't heard any comment about this before, so I don't think
it's confused anyone so far. So for consistency :), we should keep it as
is.
----
I'll keep thinking about the `inject_variables` issue, also. Meanwhile,
I'm attaching a revised version of the v3 patch; compared to the last one,
this just fixes some typos and cleans up the documentation a little. It
also changes the file sage/categories/coalgebras_with_basis.py, to get rid
of a warning when building the docs. This passes all tests on sage.math,
and it passes selected tests on OS X and Solaris. (I haven't had time to
run a full test suite on these other platforms, but tests pass on all
files which I think should be affected.)
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10052#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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.