Changes between Initial Version and Version 1 of Ticket #16247


Ignore:
Timestamp:
04/27/14 03:57:01 (6 years ago)
Author:
darij
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #16247

    • Property Keywords matrices added; removed
    • Property Dependencies changed from to 10963
  • Ticket #16247 – Description

    initial v1  
    1 We have `LeftModules` and `RightModules` functorial constructions (not sure if since #10963 or already before), and they should be used. `Modules` implements left and right multiplication to be *the same*, which causes misleading and counterintuitive non-associativity issues.
     1We have `LeftModules` and `RightModules` functorial constructions, and they should be used. `Modules` implements left and right multiplication to be *the same*, which causes misleading and counterintuitive non-associativity issues.
    22
    33I'm currently running the (short) doctests of src/sage with a commit that adds a warning every time Modules(A) is called for A noncommutative. I'll post the results once it's done. So far:
     
    1212----------------------------------------------------------------------
    1313}}}
     14It seems that matrices over noncommutative rings are the main culprit here -- or, rather, matrix spaces being cast as modules over the base rings. They should be bimodules! The reason why this doesn't blow up in the user's face (well, as far as I can tell) is that (I guess) the matrix space classes override the `*` operator to do the right thing instead of use the defaults from the `Modules` category.
     15
     16Apparently people have been aware of this for a while; the following warning message is doctested for and not written by me:
     17{{{
     18    doctest:...: UserWarning: You are constructing a free module
     19    over a noncommutative ring. Sage does not have a concept
     20    of left/right and both sided modules, so be careful.
     21    It's also not guaranteed that all multiplications are
     22    done from the right side.
     23    doctest:...: UserWarning: You are constructing a free module
     24    over a noncommutative ring. Sage does not have a concept
     25    of left/right and both sided modules, so be careful.
     26    It's also not guaranteed that all multiplications are
     27    done from the right side.
     28}}}
     29(We do have left/right/bi-modules now.)
     30
     31There are some tracebacks I don't really understand... can it be that some methods in Sage construct matrices consisting of matrices? There's nothing wrong about that; I just think the constructor for the respective matrix spaces should pick the right category for that.