#10963: Axioms and more functorial constructions
-------------------------------------+-------------------------------------
Reporter: nthiery | Owner: stumpc5
Type: enhancement | Status: needs_review
Priority: major | Milestone: sage-6.2
Component: categories | Resolution:
Keywords: days54 | Merged in:
Authors: Nicolas M. Thiéry | Reviewers: Simon King, Frédéric
Report Upstream: N/A | Chapoton
Branch: | Work issues: To be merged
public/ticket/10963-doc- | simultaneously with #15801
distributive | Commit:
Dependencies: #11224, #8327, | 72735421026786100353f4756b16874e73a9cfe6
#10193, #12895, #14516, #14722, | Stopgaps:
#13589, #14471, #15069, #15094, |
#11688, #13394, #15150, #15506, |
#15757, #15759, #16244 |
-------------------------------------+-------------------------------------
Comment (by darij):
Replying to [comment:685 nthiery]:
> Replying to [comment:683 darij]:
> > OK, I guess I don't understand the inner workings of `__mul__` and
`__rmul__`. Could you explain them to me?
>
> I am not sure I can do better than:
>
> https://docs.python.org/2/reference/datamodel.html
No, what I mean is this:
{{{
from sage.structure.element import get_coercion_model
import operator
return get_coercion_model().bin_op(left, right, operator.mul)
}}}
What does `get_coercion_model` actually do?
> > If the Modules *category* is suited for nonsymmetric bimodules
(without having to manually override certain non-abstract methods in every
subcategory), then my edit on that file indeed should be reverted; thanks
for spotting that. But there still should be warning signs around this
class that it really allows for bimodules.
>
> I reverted the change, and replaced it with a bunch of warnings.
Very well. I'd only put a WARNING in the doc of Modules rather than just a
TODO. Basically, we _don't know_ so far whether Modules will stand for
bimodules or symmetric bimodules, and we are asking for users to assume
neither. This is a bug, not just a task that has to be eventually done.
> Looking up wikipedia, VectorSpaces are actually defined as left-vector
> spaces. So I guess that's not so bad. Really it's saying that you can
> do all your usual linear algebra on the left or on the right at you
> preference.
I don't understand what you are saying here, and I'm not sure if you are
understanding what I was saying. A bimodule over a field is an additive
group with *two commuting* vector space structures. For example, you can
make the field QQ(x) of rational functions in x over the rational numbers
QQ into a QQ(x)-QQ(x)-bimodule as follows:
r m = r * m (product of rational functions) for r in the ring QQ(x) and m
in the bimodule QQ(x);
m r = m * r(x^2) (again product of rational functions) for r in the ring
QQ(x) and m in the bimodule QQ(x).
As a left QQ(x)-module, QQ(x) has basis (1) (just consisting of one
element). As a right QQ(x)-module, it has basis (1, x). So "left bases"
and "right bases" are two different things, and I don't see how a notion
of a "basis" of a (non-symmetric) bimodule can be made sense of.
Similarly for duals.
--
Ticket URL: <http://trac.sagemath.org/ticket/10963#comment:686>
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.