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

Reply via email to